Word Active X foreground in Windows 10
Posted: Mon Feb 19, 2018 12:45 pm
Hi ,
I have problem with show document in word when run on W10 64bit. There run word on bottom belt as background and user must click to it to show document.
When run on w7 , word window show correct in foreground.
I tried several combinations, but no effect. What is wrong ?
I was looking for some parameter, (setforeground...), but any effect.
Here is part of code, if you can look and tell some tip, thanks
static FUNCTION WordFillDocument(cFile,aData,cSaveAs,cSaveAsPdf,nBearb,acnz1)
LOCAL oWord,oBM,oDoc,lWordFinished:=.F.,x
LOCAL cCakaj
LOCAL bSaveErrorBlock,oError // ošetrenie na chyby počas spracovania alebo zápisu do Wordu, PDF,
*default nBearb to 0
oWord := CreateObject("Word.Application")
* kontrola či je Word nainštalovaný
IF Empty( oWord )
MsgBox( "Microsoft Word nie je nainštalovaný, dokument sa nedá vytvoriť !" )
DC_Impl(cCakaj)
return .f.
ENDIF
oWord := oWord:dynamicCast(ActiveXObject())
oWord:Quit := {||lWordFinished := .T.}
oWord:visible := .F. // nezobrazuje word dokument počas spracovania
lWordFinished := .F.
oWord:documents:open( cFile, .F., .T. ) // toto som upravil podľa fóra news alaska
oDoc := oWord:ActiveDocument
oBM := oDoc:Bookmarks
// Replace the Bookmark with a new value
ReplaceBookmark(oBM , "CISLO_ZMLUVY" , aData[1] )
* ošetrenie na chyby počas tvorby a zápisu
bSaveErrorBlock:=ErrorBlock( {|e| Break(e)} ) // definovanie error bloku
BEGIN SEQUENCE
// Uloženie zmien do nového dokumentu DOC
IF(ValType(cSaveAs)=="C")
oDoc:saveas(cSaveAs)
ENDIF
// Uloženie zmien do nového dokumentu PDF
lulozitajpdf:=.T.
lulozitajpdf:=.F.
if lulozitajpdf==.T.
oDoc:ExportAsFixedFormat( cSaveasPdf, 17 )
cRet := cSaveasPdf
endif
sleep(10) // tu časové oneskorenie asi aby stihol zatvoriť dokument
* prepnutie na viditeľné zobrazenie dokumentu
oWord:visible := .T. // zobrazuje word dokument počas spracovania
*oWord:WindowState := 1 // toto je maximize
*oWord:WindowState := 2 // toto je minimize
oWord:WindowState := 3 // toto je normal
oWord:Activate()
oDoc:Activate() // skúšam 19.2.2018
* toto potrebné ako čakacia slučka aby nepustilo ďalej ako modal, čaká na ručné zatvorenie wordu
Do While !lWordFinished
nEvent:=AppEvent( @mp1, @mp2, @oXbp )
Enddo
RECOVER USING oError
oznam("Pozor! , súbor nie je možné uložiť, overte, či nie je dokument otvorený v inom okne")
END SEQUENCE
ErrorBlock(bSaveErrorBlock) // Restore old error code block
* zatvorenie vzorového dokumentu
oDoc:destroy()
sleep(30)
oWord:destroy()
sleep(30)
RETURN .t.
I have problem with show document in word when run on W10 64bit. There run word on bottom belt as background and user must click to it to show document.
When run on w7 , word window show correct in foreground.
I tried several combinations, but no effect. What is wrong ?
I was looking for some parameter, (setforeground...), but any effect.
Here is part of code, if you can look and tell some tip, thanks
static FUNCTION WordFillDocument(cFile,aData,cSaveAs,cSaveAsPdf,nBearb,acnz1)
LOCAL oWord,oBM,oDoc,lWordFinished:=.F.,x
LOCAL cCakaj
LOCAL bSaveErrorBlock,oError // ošetrenie na chyby počas spracovania alebo zápisu do Wordu, PDF,
*default nBearb to 0
oWord := CreateObject("Word.Application")
* kontrola či je Word nainštalovaný
IF Empty( oWord )
MsgBox( "Microsoft Word nie je nainštalovaný, dokument sa nedá vytvoriť !" )
DC_Impl(cCakaj)
return .f.
ENDIF
oWord := oWord:dynamicCast(ActiveXObject())
oWord:Quit := {||lWordFinished := .T.}
oWord:visible := .F. // nezobrazuje word dokument počas spracovania
lWordFinished := .F.
oWord:documents:open( cFile, .F., .T. ) // toto som upravil podľa fóra news alaska
oDoc := oWord:ActiveDocument
oBM := oDoc:Bookmarks
// Replace the Bookmark with a new value
ReplaceBookmark(oBM , "CISLO_ZMLUVY" , aData[1] )
* ošetrenie na chyby počas tvorby a zápisu
bSaveErrorBlock:=ErrorBlock( {|e| Break(e)} ) // definovanie error bloku
BEGIN SEQUENCE
// Uloženie zmien do nového dokumentu DOC
IF(ValType(cSaveAs)=="C")
oDoc:saveas(cSaveAs)
ENDIF
// Uloženie zmien do nového dokumentu PDF
lulozitajpdf:=.T.
lulozitajpdf:=.F.
if lulozitajpdf==.T.
oDoc:ExportAsFixedFormat( cSaveasPdf, 17 )
cRet := cSaveasPdf
endif
sleep(10) // tu časové oneskorenie asi aby stihol zatvoriť dokument
* prepnutie na viditeľné zobrazenie dokumentu
oWord:visible := .T. // zobrazuje word dokument počas spracovania
*oWord:WindowState := 1 // toto je maximize
*oWord:WindowState := 2 // toto je minimize
oWord:WindowState := 3 // toto je normal
oWord:Activate()
oDoc:Activate() // skúšam 19.2.2018
* toto potrebné ako čakacia slučka aby nepustilo ďalej ako modal, čaká na ručné zatvorenie wordu
Do While !lWordFinished
nEvent:=AppEvent( @mp1, @mp2, @oXbp )
Enddo
RECOVER USING oError
oznam("Pozor! , súbor nie je možné uložiť, overte, či nie je dokument otvorený v inom okne")
END SEQUENCE
ErrorBlock(bSaveErrorBlock) // Restore old error code block
* zatvorenie vzorového dokumentu
oDoc:destroy()
sleep(30)
oWord:destroy()
sleep(30)
RETURN .t.