Search  
Thursday, May 24, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Office Automation  Focus pe un doc...
 Focus pe un document word
 
 1/28/2009 11:25:33 PM
User is offlinedalinx
124 posts
5th


Focus pe un document word
 (N/A)

Va salut !

Cum pot obtine focus pe un document word deschis din Visual Fox 9.0 ?

Va multumesc mult pentru intelegere !

 1/29/2009 2:25:55 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Focus pe un document word
 (Romania)
Interesanta intrebare :) Am sapat un pic prin API si am gasit cum se poate face. Probabil ca exista mai multe metode, dar cea pe care am gasit-o functioneaza bine asa ca n-are rost sa caut mai mult.

In esenta iti trebuie doua functii API si un mod de a identifica fereastra care te intereseaza. Deci:

Declare Integer FindWindow In User32 String, String && chestia asta o sa intoarca handle-ul ferestrei, daca ii dai clasa ferestrei si caption-ul ei; mai multe despre asta, un pic mai jos
Declare SetForegroundWindow In User32 Integer && chestia asta pune focusul pe fereastra al carei handle e specificat ca parametru.
loWord = Createobject("Word.Application")

* Pasul 1 - trebuie sa gasim fereastra si sa obtinem handle-ul ei:
* Acum o sa apelez FindWindow trimitand doi parametri: clasa ferestrei si titlul ei.
* Clasele ferestrelor create de aplicatiile Office sunt documentate aici: http://users.skynet.be/am044448/Programmeren/VBA/vba_class_names.htm
lnHandle = FindWindow("OpusAPP",loWord.Caption)
* Pasul 2 - incerc sa aduc fereastra aia in fata. Este evident ca trebuie facuta vizibila in prealabil:
If lnHandle = 0
* n-am gasit fereastra - e ceva in neregula cu clasa sau cu caption-ul, sau (posibil) cu word-ul insusi (poate l-a inchis userul)
Else
    loWord.Visible = .T.
    SetForegroundWindow(lnHandle)
Endif


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Office Automation  Focus pe un doc...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement