1

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.

Visual Fox Pro
#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.

Bir projenin bitmesi için 3 seçenek vardır: hızlı, ucuz, iyi. Bu seçeneklerden iki tanesini seçiniz.

2

Re: window.alert() uyari mesajini okumak

Mehmet;

Ellerine sağlık smile

Sürprizlerle dolusun...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü