in DOS vom Programm aus Link ins Internet?
-
Hi,
zur zeit arbeite ich wiedermal unter DOS, um ein altes Programm insofern aufzuwerten, dass es noch einen Menüpunkt zur HOmepage bekommt.
Z.Z. sieht das also ganz dos-mäßig so aus:
settextcolor(7);
outtextxy( 300, 300, "Zur Homepage" );Doch das ist jetzt eben nur der Text. Meine Nutzer können dort schon Enter drücken, jedoch passiert noch nichts. Ich würde als um folgenden Code bitten:
Wie öffne ich vom DOS-Programm aus den Browser (wahrscheinlich IE) mit einer bestimmten URL?
-
system ("D:\\Programme\\Intern~1\\IEXPLORE.EXE http://www.c-plusplus.net");
[edit] formatierung.. [/edit]
[ Dieser Beitrag wurde am 02.01.2003 um 12:16 Uhr von elise editiert. ]
-
@elise: system ist ungünstig, weil evtl. Standard-Browser übergangen werden. Besser ist die API-Funktion ShellExecute().
-
stimmt.. ok, no system,
manchmal will ich windows.h nicht mit dabei haben..z.B. mein djgpp fährt sie nicht mehr.
dann gibts noch die möglichkeit..
char prog[]="D:\\Programme\\Internet Explorer\\IEXPLORE.EXE"; execl( prog, prog,"http://www.c-plusplus.net", NULL );
-
aber ich weiß den pfad des Browsers (z.B. IE) vom jeweiligen Nutzer doch nicht)
kann ich denn ganz normal die ShellExecute(...); funktion auch in DOS (???) benutzen? Die benutze ich ja auch bei meinen Windowsprogrammen, aber dass das auch in dos geht, wusste ich nicht... muss ich etwas spezielles einbinden bzw. wie ist der code nun für shellexecute und dos?
-
wenn der pfad nicht bekannt ist.. nutze madys vorschlag
#include <windows.h> int main(){ ShellExecute(NULL, "open", "http://www.c-plusplus.net/", NULL, NULL, SW_SHOW); }
du programmierst dos? dann würde der ie nicht da sein
-
SO ICH HABE WINDOWS.H INCLUDIERT; ABER FEHLER: FUNCTION "SHELLEXECUTE" SHOULD HAVE A PROTOTYPE !
Was ist FALSCH? (SORRY WEGEN DER GRO?EN SCHRIFT; PROBLE_E _IT DER TASTATUR)
-
schreib ShellExecute richtig
und hör auf zu schreien
-
genau so schreib ich es, es ist kopiert von deinem code, also genau richtige syntax; (die großschreibung kam nur von dem tastaturproblem)
HILFE.
-
ShellExecute funktioniert nicht unter DOS. DOS ist nicht multitaskingfähig, also muss dein Programm beendet werden, bevor ein Browser gestartet wird. Hast du überhaupt einen textbasierten DOS-Browser?
-
wenn shellexecute nicht funktiont, wie mach ichs dann? geht es so, dass ich im code dort, wo ich auf homepage klickt, erst exitte (also schließe) und dann shellexecute aufrufe? naja, selbst die syntax funktioniert ja nichtmal
-
mal genau erklären:
ist hier die dosbox am start ? (was ich vermute) oder "richtiges dos"??
welcher compiler?
so long
ps: ich bin davon ausgegangen, daß du mit dosbox unter windows arbeitest, damit du den ie überhaupt ansprechen kannst...
[ Dieser Beitrag wurde am 02.01.2003 um 15:45 Uhr von elise editiert. ]
-
ich arbeite unter windows mit dem Compiler/dos-styled IDE "Borland C++ Dos", ganz ähnlich wie Turbo Pascal aufgebaut, also mit blauem Codefenster, etc. Ich arbeite also nicht unter Dos, sondern mit "Borland C++ Dos", wobei die Exe-dateien aber trotzdem noch von Win9x ausgeführt werden können. Wie rufe ich nun den IE aus so einem Programm heraus aus?
-
HILFEEEEEEEEEEEEEEEEEEEEEEE; ELIIIIIIIIIIIIIISEEEEEEEEEEEEEEEE?
-
Was muss ich jetzt in die Routine schreiben, damit ich eine bestimmte Homepage mit dem Standardbrowser öffnen lassen kann? ShellExecute geht nicht, und Elises andere Vorschläge taugen insofern leider auch nichts, da man den Pfad vom Browser direkt angeben muss, und der mir natürlich nicht für alle Personen bekannt ist.
-
entweder du modelst dein programm um in ein windowsprogramm (konsole unter visual studio zum bleistift ist eins..) und verwendest ShellExecute
oder du bist - wie ich mit meinem djgpp- ohne window.h, dann könntest du im allergrössten notfall noch
system("start http://www.c-plusplus.net" );
machen, dann nimmt er die aktuelle verknüpfung des compis für browser.
aber alles nur unter windows, NICHT unter dos , logo
wie es dann mit execl noch gehen könnte, daß er die verknüpfung nutzt, weiß ich nicht.
und hör auf so laut zu reden.
-
Original erstellt von elise:
**...
wie es dann mit execl noch gehen könnte, daß er die verknüpfung nutzt, weiß ich nicht.und hör auf so laut zu reden.**
Ich hab' das mal über Start->Ausführen versucht:
cmd.exe /c "start www.ix.de"
Ich könnte mir vorstellen, dass das auch mit anderen Start-Funktionen funktioniert.
btw: Die Geschichte mit 'start' zu machen ist echt clever...
-
C:\>start www.mady.de
Die Datei "www.mady.de" kann nicht gefunden werden.C:\>cmd /c "start www.mady.de"
Die Datei "www.mady.de" kann nicht gefunden werden.:p
-
Die Sache funktioniert natürlich nur in der DOS-Konsole.
cmd.exe gibt's erst ab WinNT. Bei Win9x musst Du "command.com /c" schreiben. Sorry.
EDIT: start gibt's IMHO auch erst seit WinNT ?!?
[ Dieser Beitrag wurde am 03.01.2003 um 11:34 Uhr von mady editiert. ]
-
Offenbar scheint hier nicht ganz klar zu sein, was möglich ist und was nicht:
1. Fall:
Q: Du arbeitest unter Windows, und versuchst dort das "integrierte DOS" (keinem weiter sagen ;)) also die Konsole aufzurufen und über sie eine Website aufzurufen die im Standardbrowser startet.
A: Entweder du benützt wie oben gezeigt:
#include <windows.h> ShellExecute ( NULL , "open" , "http://www.c-plusplus.net/" , NULL , NULL , SW_SHOW );
Solange Websites mit dem Standardbrowser verbunden sind, wird dieser auch aufgerufen.
Oder du benützt system:
system ( "start http://www.c-plusplus.net" );
2. Fall:
Q: Du arbeitest unter echtem DOS und versuchst von dort auf das Internet zuzugreifen.
A: Keine Antwort möglich, bevor du uns nicht sagst, wie du von dort aus auf das Internet zugreifst.
---
Wenn hier nicht bald geklärt wird um was es überhaupt geht, schließ ich hier...
MfG SideWinder