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:

"Nachladen" von Dateien

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



Anmeldungsdatum: 21.07.2008
Beiträge: 4

BeitragVerfasst am: 21.07.2008, 22:38    Titel: "Nachladen" von Dateien Antworten mit Zitat

Heyho,


also mein Problem ist folgendes:
Ich möchte von meinem Basic-Programm (FreeBasic) ein Script-Starten. FreeBasic soll dann solange warten, bis das entsprechende Makro abgearbeitet und das Programm wieder geschlossen ist. Dabei tauchen im Moment für mich zwei unüberwindbar scheinende Hürden auf:

(1) Kann ich in FreeBasic nur ".EXE"-Files aufrufen? Oder auch dabei auch bestimmte Parameter angeben? (Unter Windows würde hier ein Doppelklick auf die Datei reichen und das entsprechende Programm würde die Datei ausführen).
In FreeBasic ist mir bisher nur gelungen, das Programm zu starten (es soll aber wie gesagt gleich eine bestimmte Datei dort geöffnet werden).

(2) Optimal wäre eine Lösung, mit der sich die Datei und das Programm aktivieren lässt und FreeBasic solange warten lässt, bis das Datei abgearbeitet/sich das Programm wieder schließt. Auch hier hab ich noch keine elegante Lösung gefunden weinen

Wäre toll, wenn mir jemand weiterhelfen könnte.

__________
wolkensteyn


Zuletzt bearbeitet von wolkensteyn am 21.07.2008, 22:59, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 21.07.2008, 22:44    Titel: Antworten mit Zitat

Hallo,

das funktioniert so:
Code:
PRINT "Starte den Editor."
SHELL "START /WAIT NOTEPAD.EXE C:\Dateien\Test.txt>NUL"
PRINT "Das Programm wurde beendet."
SLEEP: END


Ich verschiebe deinen Beitrag ins FreeBASIC/Windows-Forum. Du hast bei QBasic gepostet. zwinkern

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | 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
wolkensteyn



Anmeldungsdatum: 21.07.2008
Beiträge: 4

BeitragVerfasst am: 21.07.2008, 22:58    Titel: Mhm... Antworten mit Zitat

Mhm...

@Sebastian: Danke für die schnelle Antwort! lächeln

Kann das sein, dass es eine Beschränkung bei den Buchstaben gibt, was die Pfadlänge angeht? ich bekomme jedenfalls eine Fehlermeldung beim ersten Ausprobieren und da erscheint der Pfad nur verkürzt...

Okay, Leerzeichen scheint er nicht zu vertragen - hab die Namen gekürzt, aber erst als ich die Leerzeichen weggemacht habe, hat es geklappt.

Gegenwärtig habe ich das Problem, dass das FreeBasic-Programm nur recht eigenwillig sein Betrieb wieder aufnimmt (Manchmal funzt es - manchmal nicht; bei zwei SHELL-Aufrufen hintereinander klappt es nie. Zufall? - hat jemand ne Idee, an was das liegt?

__________
wolkensteyn
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 22.07.2008, 00:46    Titel: Antworten mit Zitat

Wenn der SHELL-Befehl auf ein Leerzeichen stößt, interpretiert er das dahinter als neuen Parameter. Sonst müsstest du den Dateinamen nochmal in Anführungszeichen einschließen.
Unter Linux gibt es auch die Möglichkeit, Leerzeichen zu schützen. Keine Ahnung, ob Windows das ebenfalls zur Verfügung stellt.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 22.07.2008, 09:50    Titel: Antworten mit Zitat

Hallo,

mit dem SHELL-Befehl kann man nur ein Programm mit einem Parameter starten. Läuft das Programm erst mal, hat man mit SHELL keinen Einfluss mehr darauf, was es macht. Das bedeutet, dass man dem Programm mit SHELL keine Anweisung geben kann, nach Öffnen der Datei irgendwas damit zu machen oder die nächste Datei zu laden, sofern diese Funktionalität nicht direkt über Kommandozeilenparameter des ersten Programmaufrufs zu erreichen ist.

Zur Fernsteuerung von Programmen Dritter müsste man sich einiger WinAPI-Funktionen bedienen. Das ist gar nicht so einfach. Im Prinzip funktioniert das ähnlich wie die Programme, die ein Sternchenpasswort aus einem Eingabefeld irgendeiner Anwendung auslesen können. Man benötigt das jeweilige Handle und kann dann auf "fremde" Controls zugreifen.

Zurück zu SHELL: Der Pfad zur zu öffnenden Datei sollte idealerweise im 8.3-Format angegeben werden. Weil man den bei Dateien mit "langem" Pfadnamen nicht unbedingt weiß, gibt es eine Funktion, um den zu ermitteln. Eine erweiterte Fassung meines Beispiels sähe so aus: http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=654 (Längere Codes poste ich immer in dieser Code-Ablage, weil sie da gleich farblich hervorgehoben werden und direkt downloadbar sind => übersichtlicher und komfortabler. zwinkern )

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | 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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen 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