Hallo,
wie finde ich denn das Handle einer mit opendocument geöffneten Datei?
Danke.
Josef
Handle finden bei opendocument
-
- Beiträge: 115
- Registriert: Sa 17. Mär 2007, 10:53
Re: Handle finden bei opendocument
Wozu das denn?
Du willst das Dateihandle, welches das fremde Programm für deine Datei benutzt???
http://www.tty1.net/smart-questions_de.html#goal
Du willst das Dateihandle, welches das fremde Programm für deine Datei benutzt???
http://www.tty1.net/smart-questions_de.html#goal
-
- Beiträge: 115
- Registriert: Sa 17. Mär 2007, 10:53
Re: Handle finden bei opendocument
Das Ziel ist, die opendocument-Datei mitsamt seiner Standard-Exe z. b. in ein Panel oder in ein Form "einfangen".
Wenn ich das Handle des Programms, mit dem die Datei geöffnet wird, habe könnte ich dann sowas machen:
Bei SumatraPDF ist das schon über die Paramterübergabe vorgesehen.
Aber auch hier bräuchte ich erst Mal das Handle der Standdard-Exe, besser wäre natürlich gleich noch, ich bekäme den EXE Namen, mit der die Datei aufgerufen wird.
In Delphi könnte man bei Programmen, die keinen solchen Parameteraufruf haben, das Ganze so machen:
Also zusammengefaßt:
ich bräuchte den Exe-Namen der Anwendung, die standard-mäßig dem Dateityp zugewiesen ist und das Handle.
Ich hoffe, es wird so deutlicher.
Danke
Josef
Wenn ich das Handle des Programms, mit dem die Datei geöffnet wird, habe könnte ich dann sowas machen:
Code: Alles auswählen
...
with TProcess.Create(nil) do
begin
CommandLine := pfad+'SumatraPDF.exe ' +
'-reuse-instance ' +
'-page 1 ' +
'-plugin ' + IntToStr(Panel3.Handle)+
' Varroa_2011.pdf';
Execute;
free;
end;
...
Aber auch hier bräuchte ich erst Mal das Handle der Standdard-Exe, besser wäre natürlich gleich noch, ich bekäme den EXE Namen, mit der die Datei aufgerufen wird.
In Delphi könnte man bei Programmen, die keinen solchen Parameteraufruf haben, das Ganze so machen:
Code: Alles auswählen
procedure TForm4.Button1Click(Sender: TObject);
var
hHandle: hWnd; //Handle auf das Window welches man einsperren möchte
begin
hHandle := FindWindow('notepad', nil); //In diesem Fall sperren wir das gute alte Notepad ein
Windows.SetParent(hHandle, panel3.Handle); //Wir setzen das Parent mit Windows.SetParent, da ein Aufruf
//von SetParent zur Folge hätte, dass wir die Methode von
//TWinControl aufrufen würden, was wir nicht wollen
ShowWindow(hHandle, SW_MAXIMIZE); //Einmal ShowWindow mit SW_MAXIMIZE als Parameter damit das Fenster
//sich über die ganze Form erstreckt
end;
Also zusammengefaßt:
ich bräuchte den Exe-Namen der Anwendung, die standard-mäßig dem Dateityp zugewiesen ist und das Handle.
Ich hoffe, es wird so deutlicher.
Danke
Josef
Re: Handle finden bei opendocument
Den Namen der Anwendung kann man herausfinden unter Windows.
Indem man Google benutzt, findet man z.B. das: http://www.gleitgeb.at/Delphitips/datei../11.html
Beim Rest passe ich, das ist mir zu wild...
Indem man Google benutzt, findet man z.B. das: http://www.gleitgeb.at/Delphitips/datei../11.html
Beim Rest passe ich, das ist mir zu wild...
