![]() |
Shellexecute Stringvariabel anstatt stattische Dateiangabe
Schon wieder ich...
Ich hab nun immer noch ein Problem, das Programm was ich schreibe fügt nämlich mithilfe von String addieren ein eigendne Pfad sowie Ortsangabe zusammen. Auf Deutsch muss ich ins ShellExecute nun einen String benutzen wenn es so laufen soll wie ich es will und nicht eine Eingabe wie 'c:\windows\datei.exe'. Nur kommt dann immer der Fehler Inkompatible Typen: 'String' und 'PAnsiChar'. Statische Möglichkeit
Delphi-Quellcode:
Doch ich möchte die Dynamische Variante und mit z (string) diesen Pfad verwenden, dabei ist z.b. z := 'c:\windows\system32\notepad.exe';.
ShellExecute(Handle, 'open', 'c:\windows\datei.exe', nil, nil, SW_SHOWNORMAL);
Delphi-Quellcode:
Weiß wer weiter wie ich dieses Problem löse?
ShellExecute(Handle, 'open', z, nil, nil, SW_SHOWNORMAL);
|
Re: Shellexecute Stringvariabel anstatt stattische Dateianga
Hallo Jessa,
Ein TypeCasting sollte hier helfen:
Delphi-Quellcode:
Gruß Hawkeye
ShellExecute(Handle, 'open', PChar(z), nil, nil, SW_SHOWNORMAL);
|
Re: Shellexecute Komandozielen Programm ausführen
Oh danke, das war ein guter Weg. Nun wie ist es denn mit Programmen mit Konsolenbefehlen?
"net start dienstname" z.b. wenn man ihn in der Konsole (CMD) aufruft? Leider klappt es bisher nicht. |
Re: Shellexecute Stringvariabel anstatt stattische Dateianga
dann mußt du den 4. parameter auch verwenden (der bei dir nil is).
der gib die parameter an. der 3. parameter gibt nur das zu startende file an. du müsstest also
Delphi-Quellcode:
bzw. wenn du auch was sehen willst
ShellExecute(0, 'open', 'net', 'user', nil, SW_SHOW);
Delphi-Quellcode:
machen
ShellExecute(0, 'open', 'cmd', ' /k net user', nil, SW_SHOW);
|
Re: Shellexecute Stringvariabel anstatt stattische Dateianga
Nun der Befehl funktioniert und die gewünschte Funktion auch nur mit folgenden Problemen:
1. Es öffnen sich 2 Konsolen, eine führt den Befehl aus die andere sagt das es schon ausgeführt wird. 2. Wie kann ich Shellexecute veranlassen darauf die cmd (Konsole) wieder zu schließen? |
Re: Shellexecute Stringvariabel anstatt stattische Dateianga
Hallo,
zu 2.: Mit dem Parameter /C (zu den anderen). Gruß, ManuMF |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr. |
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