Shell startet Anwendung nicht

Carndret

Erfahrenes Mitglied
Wieso funktioniert die Shell Funktion nur bei bestimmten Programmen?
Ich will eine .exe eines Spiels (DAoC) aufrufen und er macht gar nichts (außer das die Maus kurz auf "beschäftigt" umschaltet). Das Notepad kann ich aber z.B. starten.
Liegt das vielleicht daran das bei den Eigenschaften (vom Icon der Exe) bei "Ausführen in" das Verzeichnis (im alten DOS-Stil) enthalten ist (E:\DARKAG~1).
Wie kann ich diese Anwendung dann trotzdem starten.
 
Zeig mal den Code, sonst wird es schwer Dir auch zu helfen.

Aber aus dem Hinweis mit dem "Ausführen in..." schliesse ich mal, dass Du nicht versuchst, die Anwendung selbst zu öffnen, sondern nur eine Verknüpfung dahin.
Das dürfte mit der Shell-Funktion Probleme geben, weil die nur richtige Anwendungen starten kann.
 
So siehts aus:
Code:
Private sAppName As String, sAppPath As String

Private Sub Form_Load()
  sAppName = "Dark Age of Camelot"
  sAppPath = "E:\Shrouded Isles\camelot.exe"
End Sub
und er macht gar nichts (außer das mit der Maus).
 
Ach ich Depp, natürlich fehlt da ein Stück Code. Ich hab im oberen Post den Button nicht mit reinkopiert.
Das ist der Code bei dem nichts passiert (jedenfalls nicht bei der Anwendung):

Code:
Private sAppName As String, sAppPath As String

Private Sub Form_Load()
  sAppName = "Dark Age of Camelot"
  sAppPath = "E:\Shrouded Isles\camelot.exe"
End Sub


Private Sub Command1_Click()
  Shell sAppPath, vbNormalFocus
End Sub
 
Zuletzt bearbeitet:
Sorry das ich den Thread nochmal aus der Versenkung hol, aber ich hab auch desbezüglich eine Frage, und bevor ich extra nen neuen Thread aufmach frag ich hier:

Wie kann ich überhaupt eine exe datei ausführen
 
Ist ja klar, dass sich da nichts tut, nach dem Ende der Form_Load-Prozedur löscht er den Variableninhalt wieder. So muß es aussehen:
Code:
Private Sub Command1_Click()
 Private sAppName As String, sAppPath As String

 sAppName = "Dark Age of Camelot"
 sAppPath = "E:\Shrouded Isles\camelot.exe"

 Shell sAppPath, vbNormalFocus
End Sub
Alles in der gleichen Sub, so gehts.


Der Doc!
 
Nein es muss nicht in der gleichen Sub stehen, die Variablen wurde auf Modul-Ebene deklariert und behält daher innerhalb des ganzen Forms mit all seinen Subs ihre Gültigkeit.

Bei mir Funktioniert das Beispiel von Carndret übrigens.
Aber es scheint so das Shell keine Leerzeichen im Pfad mag, also mit der Dos-Schreibweise sollte es gehen.

mfG
 
Zurück