BASIC

Author Topic: SHELLCMD() Problem  (Read 1805 times)

Offline amarliani

  • Mr. Polyvector
  • ***
  • Posts: 115
    • View Profile
SHELLCMD() Problem
« 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?

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10708
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: SHELLCMD() Problem
« Reply #1 on: 2009-Aug-13 »
old$ = GETCURRENTDIR()
...

SETCURRENTDIR(old$) // statt ".."

Offline amarliani

  • Mr. Polyvector
  • ***
  • Posts: 115
    • View Profile
Re: SHELLCMD() Problem
« Reply #2 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?

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10708
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
Re: SHELLCMD() Problem
« Reply #3 on: 2009-Aug-14 »
ShellCmd macht CreateProcess

Offline amarliani

  • Mr. Polyvector
  • ***
  • Posts: 115
    • View Profile
Re: SHELLCMD() Problem
« Reply #4 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?