AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OLE Office 2007 in den Vordergrund bringen

Ein Thema von hoika · begonnen am 24. Feb 2012 · letzter Beitrag vom 24. Feb 2012
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#1

OLE Office 2007 in den Vordergrund bringen

  Alt 24. Feb 2012, 08:17
Hallo #,

unter Office 2000/2003 reicht ein WordObject.Visible:= True,
um Word nach dem Erzeugen per OLE in den Vordergrund zu bringen.
Unter Office 2007 klappt das nicht.
Word ist immer im Hintergrund meines Programmes.

Im Netz findet man dazu auch keine Lösung,
das Problem ist aber bekannt.

Und nun ?
Komme ich vielleicht an das Fensterhandle ran ?
Dazu muss ich noch sagen, das Word auch normal (also zusätzlich) geöffnet sein kann,
es als 2 mal offen sein kann.


ein ratloser
Heiko
Heiko

Geändert von hoika (24. Feb 2012 um 09:28 Uhr)
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: OLE Office 2007 in den Vordergrund bringen

  Alt 24. Feb 2012, 10:45
Hallo #,
Dazu muss ich noch sagen, das Word auch normal (also zusätzlich) geöffnet sein kann,
es als 2 mal offen sein kann.
Das WordObject ist ja ein Objekt vom Typ Word.Application. Damit kann man doch den Fensternamen ändern (um ihn von der anderen Word-Instanz zu unterscheiden) und dann mit den entprechenden API-Funktionen den Fensterhandle zu bekommen und mit (war es?) SetWindowPos das Fenster nach vorne holen.

Hier hab ich das in VBA mal mit Excel gemacht.
Code:
Public Declare Function ApiFindWindow Lib "user32" _
           Alias "FindWindowA" (ByVal lpClassName As Any, _
                               ByVal lpWindowName As String) As Long

Function GetHandle() As Long
  Dim OldCap As String
  OldCap = Application.Caption
  Application.Caption = "ABCDEFGHIJKLMNOP"
  GetHandle = ApiFindWindow("XLMAIN", Application.Caption)
  Application.Caption = OldCap
End Function
Ralph
  Mit Zitat antworten Zitat
fxfx

Registriert seit: 9. Feb 2006
Ort: Kirchberg
5 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: OLE Office 2007 in den Vordergrund bringen

  Alt 24. Feb 2012, 10:50
Hallo

Könnte auch mit WordObject.Activate funktionieren.

Franz
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: OLE Office 2007 in den Vordergrund bringen

  Alt 24. Feb 2012, 11:34
Hallo,

Das Activate hatte ich schon probiert, keine Chance ...

mit dem Titel klappt es !!!

Einfach als Titel eine GUID genommen und NIL für ClassName.

aHandle:= FindWindow(NIL, PAnsiChar(sCap));
Danke !!!


Heiko
Heiko

Geändert von hoika (24. Feb 2012 um 13:10 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 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