Autor Beitrag
klezmor
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: Fr 23.09.05 18:40 
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 163

Windows.:siXPack:.
Delphi7 Professional
BeitragVerfasst: Fr 23.09.05 18:50 
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

ausblenden Delphi-Quelltext
1:
ShellExecute(Application.Handle, 'open''C:\Test.txt'nilnil, SW_SHOW);					

oder
ausblenden Delphi-Quelltext
1:
ShellExecute(Handle, 'open''C:\Test.txt'nilnil, SW_SHOW);					



Grüße
Seraph

_________________
Wer früher stirbt ist länger tot!
klezmor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: 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?
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 23.09.05 21:12 
Hallo,

schau mal dort, am Ende des Tipps:
dsdt: Fehlercodes von ShellExecute

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Fr 23.09.05 21:19 

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
klezmor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: 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"

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
klezmor Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 558


delphi 6 personal delphi 2005 personal
BeitragVerfasst: 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.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Fr 23.09.05 22:24 
user profile iconklezmor hat folgendes geschrieben:
shellexecute(handle,'open',PCHAR('C:\Learnmaster 500.exe'),nil,nil,SW_SHOW);

machs so dann gehts:
ausblenden Delphi-Quelltext
1:
shellexecute(handle,'open',PCHAR('"C:\Learnmaster 500.exe"'),nil,nil,SW_SHOW);					

_________________
es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...