Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi *.bat execute!?! (https://www.delphipraxis.net/49396-%2A-bat-execute.html)

leddl 10. Jul 2005 21:45

Re: *.bat execute!?!
 
Ah, okay. Ich hab das damals immer mit Arrays of Char gelöst. Hatte mir extra mal ne Funktion geschrieben, um den "komplizierten" Aufruf von ShellExecute zu vereinfachen. :mrgreen:

Delphi-Quellcode:
function ExecuteFile(Handle : HWND; FileName, Params : String) : Boolean;
Var Datei, Parameter : Array[0..800] of Char;
Begin
  If FileExists(FileName) Then
  Begin
      StrPCopy(Datei,FileName);
      StrPCopy(Parameter,Params);
      ShellExecute(Handle,'open',Datei,Parameter,nil,SW_NORMAL);
      Result := true;
  End
  Else
    Result := false;
End;
PS: Ja, es heißt "compilieren". ;)

DGL-luke 10. Jul 2005 21:54

Re: *.bat execute!?!
 
tja leddl... schlecht, wenn man nichts von PChar weiss. :mrgreen: :lol:

PChar gibt glaube ich die anfangsadresse des strings zurück, allerdings ohne den reference count zu erhöhen, was ja ideal für solche funktionsaufrufe ist.

leddl 11. Jul 2005 00:32

Re: *.bat execute!?!
 
Ich geb zu, daß ich von PChars nicht allzuviel weiß. Hauptsache, ich weiß, wie ich einen bekomm. :mrgreen:
Allerdings hab ich da dunkel irgendwas im Kopf, daß ich damals gezwungenermaßen auf das Array of Byte umgestiegen bin. Hab aber keine Ahnung mehr, was genau das war.

CodenameCookie 11. Jul 2005 11:59

Re: *.bat execute!?!
 
Ok Leute habe es nu so erstmal gelöst:

Delphi-Quellcode:
ShellExecute(Application.Handle,PChar('open'),PChar('bla.exe'),PChar(0),nil,SW_NORMAL);
So nun geht es um einen ClanBot , er muss auf dem server einen GameServer starten mit Befehlszeile in etwa so "bla.exe -pwCLANWAR" ... habe versucht es so zu lösen:

Delphi-Quellcode:
ShellExecute(Application.Handle,PChar('open'),PChar('bla.exe -pwCLANWAR'),PChar(0),nil,SW_NORMAL);
aber er öffnet die .exe nicht , denke ma die Befehlszeile muss extra "angemeldet" werden , jmd eine Idee ?!

Danke im Vorraus

CC :-D

100nF 11. Jul 2005 12:08

Re: *.bat execute!?!
 
hi,

vielleicht so?
Delphi-Quellcode:
ShellExecute(Application.Handle,PChar('open'),PChar('bla.exe'),PChar('-pwCLANWAR'),nil,SW_NORMAL);

leddl 11. Jul 2005 12:10

Re: *.bat execute!?!
 
Anscheinend haste dich nich sonderlich damit beschäftigt ;)
Denn - in deinem Fall - der 3. PChar-Parameter steht für die zu übergebenden Parameter. Daher mußt du diese eben auch genau dort übergeben, und nicht im Dateinamen.

@urbanbruhin:
Nich nur vielleicht, das sollte so klappen :mrgreen:

DGL-luke 11. Jul 2005 12:10

Re: *.bat execute!?!
 
DA musst du dir mein erstes bsp. noch mal ansehen ;)

Delphi-Quellcode:
shellexecute(application.handle,
    'open',
    PChar( extractfilepath(paramstr(0))+'1.bat'),
    '-bla - foo -bar x', //das hier ist es - verständlich, oder? ;)
    '',
    SW_HIDE)

CodenameCookie 11. Jul 2005 13:03

Re: *.bat execute!?!
 
Zitat:

Zitat von urbanbruhin
hi,

vielleicht so?
Delphi-Quellcode:
ShellExecute(Application.Handle,PChar('open'),PChar('bla.exe'),PChar('-pwCLANWAR'),nil,SW_NORMAL);

Vielen Dank so funzt.es - @Luke jo ThX , is mir ned so aufgefallen ;) .

CC :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz