deutschsprachige FoxPro User Group
Forum View
Home
  
  Bringwindowtotop- #17834 in section [742574]
Sec: (51) MS-Visual FoxPro 9.0
Von: Hartmut Eckert
An: Thomas Geissler
Am/Um: 21.02.2020 16:46:40

Hallo Thomas,

wie gesagt rufe ich beim verlassen einer Textbox die Rechtschreibprüfung von Word auf.Da das gesuchte Fenster vor "doc.CheckSpelling()" nicht vorhanden ist und der Code erst nach schliessen des Fensters weiter ausgeführt wird starte ich zum suchen des Fensters einen Timer. Der findet auch das Fenster , aber in den Vordergrund bring ich es halt ums verwecken nicht. Hab ich das Fenster aber einmal angeklickt erscheint es automatisch dann bei weiteren aufrufen automatisch im Vordergrund. Nur halt beim ersten Aufruf der Rechtschreibprüfung bleibt das Fenster verdeckt.Ich hab auch schon mit Sleep(1000) Pausen eingebaut und eine extra exe nur zum suchen des Fensters und in den Vordergrund bringen gebaut. Gefunden wird das Fenster immer , nur in den Vordergrund kommts mit den verschiedensten versuchen nicht.

Thisform.timer1.Enabled= .T.


oWord=CREATEOBJECT("Word.Application")
oword.Visible=.f.
doc=oword.Documents.Add
Range=doc.Range
range.Text=Thisform.text1.value
doc.Activate()

doc.CheckSpelling()
Thisform.text1.Value=doc.range.text
doc.close(.f.)
oword.Visible=.f.
oword.quit()


und im Timer

DECLARE Sleep IN kernel32 INTEGER dwMilliseconds

loShell = CREATEOBJECT("wscript.shell")
LOCAL lnHandle
SET TALK off


declare integer FindWindow in win32API string @ cClass, string @ cTitle
lnHandle=FindWindow(0,"Rechtschreibung: Deutsch (Deutschland)")

IF lnHandle>0
loShell.AppActivate("Rechtschreibung: Deutsch (Deutschland)")
Sleep(500) && 1 second
loShell.AppActivate("Ontop")
Sleep(500) && 1 second
loShell.AppActivate("Rechtschreibung: Deutsch (Deutschland)")
This.Enabled= .F.
endif
****************************************************************
&&oder
LOCAL lnHandle
SET TALK off
Thisform.text1.Value="nix"
Thisform.text1.refresh()
WAIT WINDOW "nix" timeout 1
declare integer FindWindow in win32API string @ cClass, string @ cTitle
lnHandle=FindWindow(0,"Rechtschreibung: Deutsch (Deutschland)")

DECLARE Long BringWindowToTop in Win32API Long


BringWindowToTop(lnHandle)




DECLARE INTEGER SetActiveWindow IN user32 INTEGER

SetActiveWindow(lnHandle)

declare SetForegroundWindow in Win32api integer

SetForegroundWindow(lnHandle)




&&SetWindowPos(lnHandle, 0, 0, 0, 0, 0, WINDOWHIDE)
loShell = CREATEOBJECT("wscript.shell")
loShell.AppActivate("Rechtschreibung: Deutsch (Deutschland)")




&&declare integer FindWindow in win32API string @ cClass, string @ cTitle
&&hwnd=FindWindow(0,"Rechtschreibung: Deutsch (Deutschland)")
&&DECLARE BringWindowToTop IN WIN32API as TopWindow
&&DECLARE INTEGER BringWindowToTop IN Win32API INTEGER HWND

&&BringWindowToTop(HWND)
Thisform.text1.Value=STR(lnHandle)
IF lnHandle>0
loShell = CREATEOBJECT("wscript.shell")
loShell.AppActivate("Rechtschreibung: Deutsch (Deutschland)")
endif

Grüße

Hartmut




Hartmut Eckert   18.02.2020 17:07
Thomas Holste  20.02.2020 12:36
Hartmut Eckert  20.02.2020 14:00
Thomas Geissler  20.02.2020 16:13
Hartmut Eckert  21.02.2020 16:46
Peter Pledel  22.02.2020 12:55
Hartmut Eckert  24.02.2020 10:33
Christian Isberner  21.02.2020 07:04
Hartmut Eckert  21.02.2020 16:48
Christian Isberner  24.02.2020 12:37
  
zurück zum Forum