|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
code
Anmeldungsdatum: 19.01.2005 Beiträge: 154
|
Verfasst am: 11.05.2005, 14:46 Titel: parameterübergabe an programme |
|
|
also ich wollte mit freebasic extrene programme aufrufen, und ihnen parameter übergeben. mit run und chain kann ich die programme zwar aufrufen, aber ich kann keine parameter übergeben.
also hab ichs mit shell probiert. das geht auch, allerdings bin ich auf das 8.3 format von dos angewiesen, sprich ich kann keine leerzeichen in der adressleiste eigeben. bei run und chain ist das nicht so.
mich stört irgendwie dieses alte format, und ich dachte bei freebasic (ist ja 32 bit) kann ich auch adresszeilen mit leehrzeichen verwenden.
kann ich also irgenwie ein programm aufrufen mit parameter, ohne shell? |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
Verfasst am: 11.05.2005, 15:00 Titel: |
|
|
du kannst einen Aufruf entweder so: C:\Progra~1\Mozill~1\firefox.exe
oder so: "C:\Programme\Mozilla Firefox\firefox.exe" machen.
Auch bei Windows werden solche Pfade oftmals mit Anführungsstrichen umgeben.
Für den SHELL-Aufruf kannst du ja schlecht schreiben:
SHELL "COPY "C:\eigene dateien\*.bmp" A:", denn das beißt sich mit den
Anführungszeichen von SHELL. Daher ASCII-Codes verwenden.
Code: | SHELL "COPY "+CHR$(34)+"C:\eigene dateien\*.bmp"+CHR$(34)+" A:" |
Grüßle,
Mecki _________________ » Yodl.de: So sucht man gestern.
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de |
|
Nach oben |
|
|
PeterHarder
Anmeldungsdatum: 27.03.2005 Beiträge: 45 Wohnort: Deutschland
|
Verfasst am: 12.05.2005, 01:13 Titel: |
|
|
Ja, Mecki hat völlig recht, wenn ein langer Dateiname Leerzeichen enthält, musst du die Pfadangabe in Anführungszeichen klammern. Außer "Shell" kannst du auch die Api-Funktion "WinExec" verwenden.
Liebe Grüße
Peter _________________ Deutsche Mailingliste für freeBASIC: de.groups.yahoo.com/group/free-basic.
Zum Anmelden einfach eine leere E-Mail an free-basic-subscribe@yahoogroups.de senden. |
|
Nach oben |
|
|
Dusky_Joe
Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 12.05.2005, 16:24 Titel: |
|
|
Solange du nur einen Dateinamen, evtl mit pfad übergeben musst, ist shell ganz gut geeignet. bei mehreren parametern würde ich aber eher dazu raten, die daten in einer tmp-file auszulagern.
Zitat: | mich stört irgendwie dieses alte format, und ich dachte bei freebasic (ist ja 32 bit) kann ich auch adresszeilen mit leehrzeichen verwenden.
kann ich also irgenwie ein programm aufrufen mit parameter, ohne shell? |
Versuchs mal mit EXEC.
http://fb.exp-soft.de/r.php?s=EXEC#1
Achte darauf, dass es eine Funktion ist. du wirst also einen errorlevel zurückbekommen.
Wenn du ein eigenes Programm aufrufst, das auch in FB geschrieben ist, kannst du per
END Errorlevel
selbst bestimmen, welcher Errorlevel zurückgegeben wird, was die Kommunikation der Progs erleichtert. _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 12.05.2005, 16:26 Titel: |
|
|
Hallo.
Meckis Variante ist sicherlich am besten, aber es gäbe auch noch
Code: | Declare Function ShellExecute Lib "shell32.dll" _
Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal _
lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long |
WinAPI rules...
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
code
Anmeldungsdatum: 19.01.2005 Beiträge: 154
|
Verfasst am: 12.05.2005, 17:14 Titel: |
|
|
ok danke. ich wollt halt einfach wissen, ob ich auch programme mit parameter aufrufen kann(ohne shell). also funktioniert das nur mit der win-api. da ich die nicht behhersch, werd ich mich halt mal wieder shell benutzen. |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 28.05.2005, 18:43 Titel: Parameter-Übergabe |
|
|
@code
Wenn es denn gar so schlimm ist mit API-Aufruf und so,
versuch doch einfach folgendes:
-Das Programm erstellt eine Batch-Datei mit dem gewünschten
Programm-Aufruf(inkl. Parameter)
(Muß natürlich Schreibrechte haben, vielleicht in %Tmp% ??)
-Ist die Datei erstellt, kann das Programm sie ausführen und danach
wieder löschen
-Vielleicht geht sogar eine Fehlerweiterleitung ??
Da bei mir VBScript erlaubt ist, würde ich ein VBScript bevorzugen..
Dies ist mit Sicherheit nicht die eleganteste Methode, aber wenn alle
(anderen) Stricke reißen, immerhinque durchführbar
Ich hoffe, hier werden sie geholfen.
Tschauiii
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|