1

Konu: IE penceresi algılandmiyor

Herkese merhaba

* Program bir IE penceresi açıyor.
* Orda EXECSCRIPT ile bir JavaScript tetikliyor
* Bu tetikleme sonucu bir 2. İE penceresi açılıyor.
* Program 1. İE penceresini kapatıyor ve 2. pencere ile işlemler yapmaya başlıyor.

Sorunsuz çalışıyor. XP, Vista, Win7, 32bit veya 64bit. Yaklaşık 40 müşteride denendi.
Ama birkaç müşteride program 2. pencerenin açıldığını algılıyamiyor. Yani 2. pencere açılıyor, ama program belli bir süre sonra 2. penceryei algılamadığı için, işlemi durduruyor.
Müşteri bilgisayarına format atıp Windows'u tekrar yüklerse, program sorunsuz çalışıyor.

Sorun şurda:

Visual Fox Pro
oShell = CREATEOBJECT("Shell.Application")

oShellWin = oShell.WINDOWS
FOR nIdx = 0 TO oShellWin.COUNT
  objCurShellWin = oShellWin.ITEM(nIdx)
  IF TYPE('objCurShellWin') == "O" AND !ISNULL(objCurShellWin) THEN
    IF objCurShellWin.VISIBLE == FALSE
      LOOP
    ENDIF
    IF TYPE("objCurShellWin.HWND") == "N" AND ( objCurShellWin.HWND == nHandle )
      THIS.oIE.QUIT
      Sleep(500)
      DOEVENTS
      THIS.oIE = objCurShellWin
      IF !THIS.while_ie_busy(30)
        EXIT
      ENDIF
      lGefunden = TRUE
      EXIT
    ENDIF
  ENDIF
ENDFOR

Eskiden burası biraz daha sade idi. Ama bu sorun yüzünden "şunuda kontrol edeyim", "bunuda kontrol edeyim" derken birkaç IF THEN vs. eklendi.

Bu yukardaki kod yerine başka bir yöntem ile daha sağlıklı bir çözüm öneriniz varmı?

İlginiz için teşekkürler.
Mehmet

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

2

Re: IE penceresi algılandmiyor

Selam,
Yaşadığın sorunla ilgili bir fikrim yok ama, ExecScript le VFP kod bloklarını çalıştırabildiğimizi biliyordum . Bir IE penceresindeki Java kodlarını da tetikleyebildiğini bilmiyordum. Bunu yapabilmek için epey bir süre web i taradıktan sonra çalışan bir örnek yazamadım  ve vazgeçtim.

Ben şu şekilde yapmaya çalıştım.

oBrowser = CREATEOBJECT("InternetExplorer.Application")
obrowser.Visible = .t.
oBrowser.Navigate("www.xyz.com\xyz.htm")
oBrowser.Document.Script.javafonksiyonu(.T.) 

Sonuç  "Bilinmeyen ad"  hatası

Açılmış bir IE sayfasında mevcut java kodunu ExecScript le nasıl tetiklediğini gösterirsen sevinirim.

3

Re: IE penceresi algılandmiyor

Merhaba

Kısaltılmış şeklinde veriyorum; asıl koda birçok yerde kontrolar var. Ama bunlar kafa karışıtırır diye biraz sadeleştirdim.

Visual Fox Pro
THIS.oIE = CREATEOBJECT( "InternetExplorer.Application" )

  Sleep(200)
  DOEVENTS
  nResult = 0
  THIS.oIE.navigate2("www.herhangibiradres.com")
  Sleep(200)
  DOEVENTS
  THIS.oIE.MenuBar    = .F.
  THIS.oIE.AddressBar = .F.
  THIS.oIE.TOOLBAR    = .F.
  THIS.oIE.VISIBLE    = .T.
 
  THIS.oIE.DOCUMENT.parentWindow.EXECSCRIPT('javascript:window.open("entry.html",  "", "top=80,left=500,status=0,fullscreen=no,;
     titlebar=no,;
     history=no,;
     toolbar=0,;
     location=0,;
     directories=0,;
     menubar=0,;
     scrollbars=yes,;
     resizable=yes,;
     width=900,;
     height=600"
)')

Umarım yardımcı olabilmişimdir.

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

4

Re: IE penceresi algılandmiyor

Kod için teşekkürler. 

Verdiğin kodda bir html sayfası java koduyla açılıyor. Aslında benim istediğim şey , açılmış bir HTML içinde duran bir java fonksiyonunu tetiklemekti.

Yani www.falanca.com/filanca.html içindeki benim tarafımdan yazılmamış bir java fonksiyonunu tetiklemekti. Tabi yine aynı html üzerinden istediği parametreleri göndererek.  Parametre göndermede sorun yok ama bu parametreleri değerlendirecek olan fonksiyonu tetikleyemiyorum.

5

Re: IE penceresi algılandmiyor

Ali Bey,
"Java" mı?
"Javascript" mi?

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

6

Re: IE penceresi algılandmiyor

Javascript ise:
THIS.oIe.DOCUMENT.parentWindow.EXECSCRIPT('javascript:MySpecialFunction()')

Java ise: bilmiyorum

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

7

Re: IE penceresi algılandmiyor

JavaScript i kastetmiştim. Bunu deneyeceğim.  Umarım çalışır.
Çok teşekkürler.

8

Re: IE penceresi algılandmiyor

Problem UAC'den kaynaklanıyormuş.
Problemi şöyle çözdüm:
Makine XP ise, sorun yok.
XP'nin üzerinde ise: geçici olarak
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA 'yı sıfır yapıyorum, işim biter bitmez 1'e alıyorum.
Her seferinde Taskbar'da kısa bir uyarı mesajı geliyor ("bilgisayarınızı restart etmeniz gerekir"), ama hemen kayboluyor.

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