Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

parameterübergabe an programme

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
code



Anmeldungsdatum: 19.01.2005
Beiträge: 154

BeitragVerfasst am: 11.05.2005, 13:46    Titel: parameterübergabe an programme Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Mecki
Igel


Anmeldungsdatum: 10.09.2004
Beiträge: 985
Wohnort: Niederbayern

BeitragVerfasst am: 11.05.2005, 14:00    Titel: Antworten mit Zitat

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. verwundert
» Geld verdienen im Netz + ICQ.
» Firefox!
» 100€ zu gewinnen
» FreeBASIC.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name Yahoo Messenger MSN Messenger
PeterHarder



Anmeldungsdatum: 27.03.2005
Beiträge: 45
Wohnort: Deutschland

BeitragVerfasst am: 12.05.2005, 00:13    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 12.05.2005, 15:24    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 12.05.2005, 15:26    Titel: Antworten mit Zitat

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... cool

Viele Grüße!
Sebastian
_________________

Der Markt regelt das! | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
code



Anmeldungsdatum: 19.01.2005
Beiträge: 154

BeitragVerfasst am: 12.05.2005, 16:14    Titel: Antworten mit Zitat

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. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 28.05.2005, 17:43    Titel: Parameter-Übergabe Antworten mit Zitat

@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 zwinkern
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz