Entwickler-Ecke
Windows API - Problem mit Shellexecute und String
icedre - So 24.04.05 14:11
Titel: Problem mit Shellexecute und String
Hallo,
ich hab da ein Problem:
und zwar möchte ich ein Programm mit Shellexecute starten, der Code dafür ist folgender:
Delphi-Quelltext
1:
| ShellExecute(Application.Handle, 'open', 'C:\WINDOWS\explorer.exe', '-s -t 2', nil, SW_SHOW); |
Anstatt der genauen Pfadangabe "C:\WINDOWS\explorer.exe" , möchte ich an der Stelle einen String angeben, in dem der Pfad zum Programm steht.
Wie kann ich jetzt den String dort mit einbringen ?
So:
Delphi-Quelltext
1:
| ShellExecute(Application.Handle, 'open', pfad_string, '-s -t 2', nil, SW_SHOW); |
funktioniert es jedenfalls nicht... :cry:
Vielen Dank, icedre
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.Moderiert von
Christian S.: Topic aus VCL (Visual Component Library) verschoben am So 24.04.2005 um 14:13
Harry M. - So 24.04.05 14:14
wo wird denn pfad_string inizalisiert??
versuch es mal so
Delphi-Quelltext
1:
| ShellExecute(Application.Handle, 'open', 'explorer.exe', 'c:\winnt', nil, SW_SHOW); |
die pfadangabe mut du extra setzten und für was die parameter welche du angegeben hast??
Gausi - So 24.04.05 14:42
Titel: Re: Problem mit Shellexecute und String
Wenn ich das richtig in Erinnerung habe, werden bei Shellexecute PChars erwartet, also muss man ggf. ein Typecast durchführen:
Delphi-Quelltext
1:
| ShellExecute(Application.Handle, 'open', PChar(pfad_string), '-s -t 2', nil, SW_SHOW); |
icedre - So 24.04.05 14:49
Hallo,
danke.
Wenn ich es mit PCChars mache öffnet er mir immer das ein und selbe Verzeichnis, egal, was im String steht.
C:\Programme\Borland\Delphi6\Projects
Sprint - So 24.04.05 14:50
Titel: Re: Problem mit Shellexecute und String
icedre hat folgendes geschrieben: |
Anstatt der genauen Pfadangabe "C:\WINDOWS\explorer.exe" , möchte ich an der Stelle einen String angeben, in dem der Pfad zum Programm steht.
Wie kann ich jetzt den String dort mit einbringen ? |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var strApp: String; strParam: String; begin
strApp := 'C:\WINDOWS\SYSTEM32\NOTEPAD.EXE'; strParam := 'C:\BOOT.INI'; ShellExecute(GetDesktopWindow, 'open', PChar(strApp), PChar(strParam), nil, SW_SHOWNORMAL);
end; |
Fabian W. - So 24.04.05 15:15
Kann es sein das es was ShellExecute 'Tausende' verschiedene Möglichkeiten gibt?
Ich hab jetzt schon mindestens 5 verschiedene Möglichkeiten gesehn. Ist doch klar dass es da zun Problemen kommen kann.
Delete - So 24.04.05 15:24
Fabian W. hat folgendes geschrieben: |
| Kann es sein das es was ShellExecute 'Tausende' verschiedene Möglichkeiten gibt? |
Nein! Es gibt nur den einen Befehl, und dessen Parameter sind auch fest vorgegeben. Wenn du mal davon ausgehst, dass der Aufruf eines Programms, einer Webseite oder einer Email-Adresse letztlich alle das gleiche Ziel haben (das Programm zu öffnen, die Webseite anzuzeigen, ein Email-Fenster zu öffnen), und wenn du alle ohnehin falschen Beispiele vergisst (nach dem Motto: "Ich habe ShellExecute so aufgerufen, aber es klappt nicht" :lol:), dann bleibt nur eine Möglichkeit übrig. ;)
icedre - So 24.04.05 15:56
So,
alles klar, es funktioniert:
Delphi-Quelltext
1: 2:
| sollprog:='C:\WINDOWS\explorer.exe'; ShellExecute(Application.Handle, 'open', PChar(sollprog), nil, nil, SW_SHOW); |
Vielen Dank :)
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!