Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Word Handle OLE (https://www.delphipraxis.net/160293-word-handle-ole.html)

WizoHulk 6. Mai 2011 07:59

Word Handle OLE
 
Hallo,

Wie kann ich eine Word-Instanz aus meiner Taskleiste holen?
ich habe es schon mit diesen versucht, aber leider kennt OLE diese Funktion nicht.
Delphi-Quellcode:

   {* Prüfe ob instanz vorhanden ist *}
   Word            := GetActiveOleObject('Word.Application');
   //WordHandle      := FindWindow('Microsoft Word',nil);
   WordHandle      := Word.Hwnd;
   Word.WindowState := wsNormal;
   Word.Visible := True;
   SetForegroundWindow(WordHandle);
kurioser weise haut diese mit Excel wunderbar hin
Delphi-Quellcode:
  Excel            := GetActiveOleObject('Excel.Application');
    ExcelHandle      := Excel.Hwnd;         {* Handle wird ermittelt *}
    Excel.WindowState := SW_SHOWNORMAL;      {* Fenster wird aus der Taskleiste geholt *}
    SetForegroundWindow(ExcelHandle);        {* Fenster wird in den Vordergrund geholt *}
weiss jemand wie ich dieses Problem lösen kann?

WizoHulk 6. Mai 2011 08:05

AW: Word Handle OLE
 
Fehler behoben

War mal wieder DAU.
hier die Lösung
Delphi-Quellcode:
WordHandle      := FindWindow(nil,'Microsoft Word');
Hatte nach nen Klassennamen gesucht und nicht nach den Fensternamen.

Sorry für den unsinnigen Thread.

rollstuhlfahrer 6. Mai 2011 08:36

AW: Word Handle OLE
 
Vielleicht doch noch was: Du hast für die beidem Office-Programme komplett unterschiedliche herangehensweisen, wie du das Fenster wieder sichtbar machst (1. wsNormal + Visible, 2. nur SHOW_...). Da ja das gleiche Ziel zu erreichen gesucht ist, könntest du auch eine Funktion bauen, die entweder aus Konstanten-Arrays sich die Werte holt und du dann nur einen Enum (z.B. AppWord, AppExcel, ...) übergibst oder du baust eine Funktion, der du dann 'Word.Application' und den ganzen Rest mitgibst.

Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz