Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
2 - PROFAN-Programmierung

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Neuerer Beitrag  |  Älteres Thema 
 Winexec usw...
Autor: Karl-Jürgen Hilger (---.77.1.pool.telefonica.de)
Datum:   19.04.22 13:52

Hi,

mir fehlt es an Ahnung, warum sich einige Programme mit winexec, shellexec oder run aufrufen lassen, andere aber nicht, auch wenn der Rückgabewert der Funktion ein Gelingen signalisiert.

Ich wollte mir gerne einen kleinen Gamelauncher basteln, scheitere schon beim simplen Start des Games, welches aber auch mit Parametern gestartet werden soll.

MSDN sagt, die API für winexec sei auf dem Abstellgleis, man solle CreateProcess
benutzen. Hat das jemand schon erfolgreich gemacht, vielleicht mit Beispiel?

Hier im Forum hatte jemand den Tip, shellexec mit Parameter "runas" zu testen, das brachte bei mir aber auch nichts, da Zugriffsberechtigungen wohl nicht das Problem sind.

Freut mich, wenn jemand mit mehr oder besserer Erfahrung rund um das Thema was dazu sagt.

Danke und Ostergruß
KJ



Beitrag beantworten
 
 Re: Winexec usw...
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   19.04.22 18:17

Und nur einfach
Shell "programmname parameter"

Also, ich hatte mit Shell bzw. ShellExec noch keine Probleme.

H.Brill
XProfan X4 + FreeProfan

Beitrag beantworten
 
 Re: Winexec usw...
Autor: Karl-Jürgen Hilger (---.77.1.pool.telefonica.de)
Datum:   19.04.22 18:29

Ragnar Rehbein hatte hier im Jahre 2005 einen Beispielcode für CreateProcess
gepostet.
Einen Teil davon hab ich erfolglos für folgenden Test genommen.

 DEF CreateProcessA(10)    ! "Kernel32","CreateProcessA"
  DEF GetExitCodeProcess(2) ! "Kernel32","GetExitCodeProcess"
  DEF TerminateProcess(2)   ! "Kernel32","TerminateProcess"
  DEF ZeroMemory(2)         ! "Kernel32","RtlZeroMemory"
  DEF CloseHandle(1)        ! "Kernel32","CloseHandle"
   
  Declare lpCommandLine#
  Declare lpStartupInfo#
  Declare lpProcessInformation#
  Declare ExitCode#
  
  Declare Comline$
  Declare handle hPrg
   
  Proc CreateProcess
     Parameters CommandLine$
     Declare hProcess&
     Dim lpCommandLine#,Len(CommandLine$)+1
     Dim lpStartupInfo#,68
     ZeroMemory(lpStartupinfo#,68)
     Long lpStartupInfo#,0=68
     Dim lpProcessInformation#,16
     ZeroMemory(lpProcessInformation#,16)
     String lpCommandLine#,0=CommandLine$
     CreateProcessA(0,lpCommandLine#,0,0,0,0,0,0,lpStartupInfo#,lpProcessInformation#)
     hProcess&=Long(lpProcessInformation#,0)
     Dispose lpCommandLine#
     Dispose lpStartupInfo#
     Dispose lpProcessInformation#
     Return hProcess&
  EndProc
  
   ComLine$ = "e:\\!GAME\\ARMA Cold War Assault\\ColdWarAssault.exe"
   hPrg = CreateProcess(Comline$)
   CLS
   Print hPrg
   WaitInput
 


Es kommt ein Processhandle, aber sonst nix.
ABer auch schon mit den Profan-Befehlen gab es positive Rückgabewerte, ohne daß etwas passierte.



Beitrag beantworten
 
 Re: Winexec usw...
Autor: Karl-Jürgen Hilger (---.77.1.pool.telefonica.de)
Datum:   19.04.22 18:51

Hallo Heinz,

"Shell" versteht mein XProfan nicht.
Bei Dir geht das?

Beitrag beantworten
 
 Re: Winexec usw...
Autor: Arndt Lindner (80.150.206.---)
Datum:   19.04.22 19:05

Ich habe für diese Zwecke gute Erfahrungen mit winexec gemacht (XProfanX4).
Beispiel:

 declare longint ec, ex, string progt, paramt
 
 window 1000,200
 cls
 
   progt = "C:\\Windows\\System32\\notepad.exe"
   paramt = "C:\\Users\\Arndt\\test.txt"
   ec = winexec(progt+" "+paramt,1)
   print progt,"mit ProzessID",ec,"und Parameter",paramt,"gestartet"
   waitinput
   ex = Process("Kill", ec, 1)
   print "Prozess mit ProzessID",ec,"beendet"
   waitkey
 end
 

Möglicherweise gab es in früheren Versionen damit Probleme.

Gruß
Arndt

Beitrag beantworten
 
 Re: Winexec usw...
Autor: Karl-Jürgen Hilger (---.77.1.pool.telefonica.de)
Datum:   19.04.22 20:02

Ja, Arndt,
bei mir (ebenfalls XProfanX4) gehen die Standard-Win-Programme auch gut mit winexec oder shellexec.

Aber diese in meinem Fall anvisierte Game-Exe lässt offenbar irgendwelche Extratouren ablaufen.
Offenbar bekommt das fiese Teil genau mit, daß es nicht auf normale Art (per Doppelklick oder Verknüpfung) gestartet wird und reagiert darauf, indem es das Konfigurationsprogramm des Games startet, anstatt sich selbst.
Das hab ich jedenfalls die letzten Tests immer im Task Manager gesehen.
Die GUI des Setups öffnet sich aber nicht. Aber daher die positiven Rückgabewerte der Funktion.

Bei solchen Machenschaften ist son Hobbycoder wie ich natürlich sofort machtlos,
ich werde es noch mit Namensänderungen der Exe probieren, aber das wars dann auch. Schade.

Aber vielen Dank für Eure Gedanken dazu.

Gruß
KJ



Nachricht bearbeitet (19.04.22 20:05)

Beitrag beantworten
 
 Re: Winexec usw...
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   20.04.22 07:31

Hallo Karl-Jürgen,
Der Befehl SHELL gibt es doch schon ewig. Seit 1.0 sogar.

H.Brill
XProfan X4 + FreeProfan

Beitrag beantworten
 
 Re: Winexec usw...
Autor: Arndt Lindner (80.150.206.---)
Datum:   20.04.22 11:17

Es könnte verschiedene Ursachen für dieses Verhalten geben. Auf die Schnelle fallen mir folgende zwei Möglichkeiten ein:
1. Es muss vor dem Aufruf von winexec ein bestimmtes Verzeichnis (z.B. das Programmverzeichnis selbst) mit chdir angewählt werden, wo etwa eine Konfigurationsdatei steht.
2. Es gibt einen undokumentierten Parameter, der beim Start mit anzugeben ist.

Gruß
Arndt



Beitrag beantworten
 
 Re: Winexec usw...
Autor: Karl-Jürgen Hilger (---.77.1.pool.telefonica.de)
Datum:   20.04.22 13:38

Du hast natürlich recht, Heinz.
Da muß ich beim Tippen irgendwas verbockt haben.

Gruß
KJ

Beitrag beantworten
 
 Re: Winexec usw...
Autor: Karl-Jürgen Hilger (---.77.1.pool.telefonica.de)
Datum:   20.04.22 14:32


Volltreffer, Arndt!
Dein Chdir-Tip hat es offenbar voll gebracht.
Ich freu mich tierisch, daß ich mein kleines langgehegtes Projekt nicht schon im Ansatz beerdigen muß.

Vielen Dank fürs Reinschauen, Arndt!

Auch nochmal schönen Dank an Heinz, auf dessen Hilfe man auch immer hoffen darf.

Gruß
KJ



Beitrag beantworten
 Foren-Liste  |  Baumstruktur   Neuerer Beitrag  |  Älteres Thema 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org