Entwickler-Ecke
Windows API - Parameterliste von shellexecute
klezmor - Fr 23.09.05 18:40
Titel: Parameterliste von shellexecute
Ich bin soeben in der Suche auf den Befehl shellexecute gestoßen.
Es gibt zwar enorm viele Threads über dieses Thema, aber ich finde keinen wo mir detailliert erklärt wird, wie diese procedure funktioniert.
Vielleicht kann mir jemand von euch eine vollständige Erklärung der Parameterliste von shellexecute geben. Eine Bitte noch wenn es nicht einen thread geben sollte, der genau dieses Thema behandelt, so verweist mich bitte nicht auf die Suchfunktion, denn die hat mich schon zur Verzweiflung gebracht.
MFG Klezmor
Seraph - Fr 23.09.05 18:50
Titel: Re: Parameterliste von shellexecute
Klar hier:
Mit ShellExecute(Application.Handle, 'Open', 'Pfad\Datei', nil, nil, Zeigeart);
kannst du alles öffnen, was dein Betriebssystem mit einem Doppelklick ausführen kann!
für Zeigeart kannst du die arten angeben, wie das Fenster aufgerufen wird:
SW_MAXIMIZE zeigt das Fenster im Vollbild
SW_SHOW zeigt das Fenster im Normalen Modus
SW_MINIMIZE zeigt das Fenster minimiert
uses
ShellAPI
Delphi-Quelltext
1:
| ShellExecute(Application.Handle, 'open', 'C:\Test.txt', nil, nil, SW_SHOW); |
oder
Delphi-Quelltext
1:
| ShellExecute(Handle, 'open', 'C:\Test.txt', nil, nil, SW_SHOW); |
Grüße
Seraph
klezmor - Fr 23.09.05 19:37
Danke das hat mir schon weiter geholfen, aber du weißt nicht zufällig für was die anderen Parameter stehen oder?
klezmor - Fr 23.09.05 21:24
Ja danke das hilft mir ein wenig, aber die einzelnen Parameter verstehe ich trotzdem nicht so ganz, z.B. was ist ein handle usw.. die Pfadangaber erklärt sich natürlich von selbst und die Form des Öffnens auch aber der Rest leuchtet mir noch nicht richtig ein
uall@ogc - Fr 23.09.05 21:32
hatte nicht mal jemand genau geschrieben was handles sind? oli(asarbad) oder so.
handles sind integers (zahlen) aus einer bestimmten tabelle
im beispiel ist das ein window handle, d.h. ne zahl in der windowhandle tabelle
z.b. 12423 was dann auf das fenster des firefox "zeigt"
du gibst normalerweise da nen handle von deinem programm an (form1.handle) bei einer messagebox oder sonst irgendwas was das programm, welches du mit SHellExeCute geöffnet hast wird dann bei dem Fenster/Nachricht als Titel z.b. das gewählt was du angegeben hast.
als Bsp. hat dein Programm als fenster "BlaFrom"
du rufst jetzt den firefox auf mit Shellexecute (frorm1.handle,....)
jetzt zeigt der firefox ne nachricht an mit MessageBoxA(0,'hallo',nil,0);
da der 3. parameter nil ist wird von MSB der text des fesnters angenommen, das es mit shellexecute aber nen neues handle zugewisen bekommen hat wird dann ne MessageBox angezeigt mit dem titel "BlaFrom" anstatt "Firefox"
klezmor - Fr 23.09.05 21:43
ich weiß nicht ob ich mich zu undeutlich ausdrücke, aber eigentlich will ich nur wissen, was die einzelnen Parameter in der shellfunktion für eine Funktion haben.
Was ein handle ist habe ich jetzt einigermaßen verstanden, aber wenn ich versuche ein programm wie dieses: shellexecute(handle,'open',PCHAR('C:\Learnmaster 500.exe'),nil,nil,SW_SHOW); aufzurufen, so passiert bei mir gar nichts.
Wenn ich wüsste für was die beiden nil stehen könnte mir das vielleicht weiter helfen.
Delete - Fr 23.09.05 21:54
Also ich weiß ja nicht, was ist daran so unverständlich wenn im MSDN diese Paramter mit
lpParameters und
lpDirectory erklärt werden. Dazu steht dann da noch:
Zitat: |
If the lpFile parameter specifies an executable file, lpParameters is a pointer to a null-terminated string that specifies the parameters to be passed to the application.
|
und
Zitat: |
Pointer to a null-terminated string that specifies the default directory.
|
retnyg - Fr 23.09.05 22:24
klezmor hat folgendes geschrieben: |
shellexecute(handle,'open',PCHAR('C:\Learnmaster 500.exe'),nil,nil,SW_SHOW); |
machs so dann gehts:
Delphi-Quelltext
1:
| shellexecute(handle,'open',PCHAR('"C:\Learnmaster 500.exe"'),nil,nil,SW_SHOW); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!