Konu: window.alert() uyari mesajini okumak
Oturtana kadar çok vakit kaybettim. Umarım birilerin işine yarar:
Diyelim Vfp içinden bir Browser açıyorsunuz ve bir internet sitesine giriyorsunuz, orda programınız birkaç işlemler yapıyor ....
.. ve birden bir PopUp penceresi programın akışını kesiyor. Bu durumda bu PopUp'da ne yazdığını öğrenip, program akışına yeni yön vermeniz lazım.
Not: Vereceğim kod sadece yol haritası amacını taşıyor. Bu nedenle user32 Declarasyonlarını vs. geçiyorum. Bu tür uygulamarı yapmak istiyen kişi zaten onları bilir.
Bu PopUp pencerelerin başlıklarında hep "Microsoft Internet Explorer" yazar. İlk işimiz bu pencerin handle bulmak.
Bu handle ile sonra o pencerin içindeki class'ları sorgulıyabiliriz.
#DEFINE GW_NEXT 2
LOCAL nHandle, nLng, cTxt
nHandle = FindWindow(0, "Microsoft Internet Explorer")
IF nHandle != 0
nHandle = FindWindowEx(nHandle, 0,"Static", 0)
DO WHILE nHandle != 0
nLng = GetWindowTextLength(nHandle)
cTxt = REPLICATE(CHR(0) , nLng +1)
nLng = GetWindowText( nHandle,@cTxt, nLng +1)
cTxt = IIF(nLng=0, "", LEFT(cTxt,nLng))
IF !EMPTY(cTxt)
THISFORM.text1.VALUE = cTxt
Exit
ENDIF
nHandle= GetWindow(nHandle, GW_NEXT )
ENDDO
ENDIF
Ben GetWindowText'e cTxt değişkenini 'by reference' yerine 'by value' pasladığım için, saatlerce ekran başında kafamı kaşıdım.
Not: FireFox GUI işini tamamen kendi kontrol altında tutuğu için, bu kod sadece İE ile çalışır.