GLBasic forum

Other languages => GLBasic - de => Topic started by: amarliani on 2009-Aug-13

Title: SHELLCMD() Problem
Post by: amarliani on 2009-Aug-13
Ich hab zur Abwechslung mal wieder ein Brett vorm Kopf.

Folgendes Problem: Ich hab ein Startmen? f?r ein paar Spiele geschrieben. Meine Maschinen laufen alle auf Win XP. Die Spiele starte ich mit diesem Code:

Code (glbasic) Select
SETCURRENTDIR(verzeichnis$)
ok = SHELLCMD(exe$, TRUE, TRUE, rv)
SETCURRENTDIR("..")


verzeichnis$ enth?lt z.B. "./NimmDrei", exe$ enth?lt z.B. "NimmDrei.exe".

wobei jedes Spiel in einem eigenen Unterverzeichnis des Startmen?-Verzeichnisses liegt. Auf meinem Entwicklungsrechner klappt auch alles wunnebar. Sobald ich das aber auf den anderen Rechner (Win XP Home, 512MB) ?bertrage, geht nix mehr. Ich seh am Taskmanager zwar, dass das Spiel dort als Task gelistet ist, aber weder wird das Startmen? ausgeblendet noch wird das Spiel eingeblendet, sondern alles bleibt h?ngen, oft sogar so gr?ndlich, dass nur ein Neustart des Rechners hilft. Starte ich das Spiel manuell ohne das Startmen?, dann l?uft es auch auf dem anderen Rechner. Nur eben der Aufruf aus dem Starter heraus geht nicht.

Hat irgendwer eine Idee, was da h?ngen k?nnte?
Title: Re: SHELLCMD() Problem
Post by: Kitty Hello on 2009-Aug-13
old$ = GETCURRENTDIR()
...

SETCURRENTDIR(old$) // statt ".."
Title: Re: SHELLCMD() Problem
Post by: amarliani on 2009-Aug-14
Hatt ich auch schon probiert, hilft nix. Auch Spielereien mit AUTOPAUSE helfen nicht. Es scheint so, als wenn das aufgerufene Programm zwar gestartet wird, aber nie den Focus bekommt. Wenn ich ?ber den Taskmanager das Startmen? kille, l?uft dahinter dann ganz normal das aufgerufene Spiel. Wenn nicht vorher alles komplett h?ngengeblieben ist. Noch irgend eine Idee? Was genau macht SHELLCMD eigentlich?
Title: Re: SHELLCMD() Problem
Post by: Kitty Hello on 2009-Aug-14
ShellCmd macht CreateProcess
Title: Re: SHELLCMD() Problem
Post by: amarliani on 2009-Aug-14
Ich hab keinen Fehler finden k?nnen, und es l?uft immer noch nicht...  :'( Hab einen anderen Weg genommen: Ich schreib mir eine Batch-Datei mit dem zu startenden Programm und Commandline-Args f?r die R?ckkehr zu meinem Startprogramm und ruf die dann mit SHELLEND auf. So klappts immerhin. Aber kann ich irgendwie die Anzeige der Command-Line-Fenster zwischen den Programmstarts unterdr?cken?