• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

IE'de yaptığım işlemleri webbrowser1 üzerinde yapmak

  • Konbuyu başlatan Konbuyu başlatan YUSUF44
  • Başlangıç tarihi Başlangıç tarihi

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,065
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Arkadaşlar, çiftçilerin gelir hesaplaması için kullandığım bir dosyam var. Daha önce burda birkaç defa paylaştım ve olgun hale geldi.

Bu dosyada aşağıdaki kodlarda Tarım Bakanlığı'nın çiftçi kayıt sistemine bağlanıp çiftçinin ürettiği ürünleri görebiliyorum.

Kod:
Dim IE As Object


Sub bekle()
    With IE
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
    End With
End Sub



Sub ie_olustur()
     Set IE = CreateObject("InternetExplorer.Application")
     IE.Visible = True
    'IE.Visible = False
     IE.Navigate "http://cks.tarim.gov.tr/"
     Call bekle
End Sub

Sub CKS_Sorgula()
        tcno = Range("d6").Value
        
        With IE
           IE.Visible = False
           'Kullanıcı Adı Bölümü
           Set objcollection = .Document.getElementsByTagName("input")
           i = 0
           Do While i < objcollection.Length
              If objcollection(i).Name = "txtKullaniciAd" And objcollection(i).ID = "txtKullaniciAd" Then
                 objcollection(i).Value = "kullanıcıadım"
                 Exit Do
              End If
              i = i + 1
           Loop
           'Şifre Bölümü
           Set objcollection = .Document.getElementsByTagName("input")
           i = 0
           Do While i < objcollection.Length
              If objcollection(i).Name = "txtParola" And objcollection(i).ID = "txtParola" Then
                 objcollection(i).Value = "şifrem"
                 Exit Do
              End If
              i = i + 1
           Loop
           'Tek kullanımlık Şifrey cihazdan Alma ve Girme Bölümü
           Dim veri As String
veri = InputBox(prompt:="Tek kullanımlık şifreyi giriniz", Title:="Şifrematik", Default:="Buraya yazınız")

                  'Tek Kullanımlık Şifre Bölümü
           Set objcollection = .Document.getElementsByTagName("input")
           i = 0
           Do While i < objcollection.Length
              If objcollection(i).Name = "txtOTP" And objcollection(i).ID = "txtOTP" Then
                 objcollection(i).Value = veri
                 Exit Do
              End If
              i = i + 1
           Loop
                   
                   Application.Wait Now + TimeSerial(0, 0, 1)
        
         
'Butona Basıyoruz
           Set objcollection = .Document.getElementsByTagName("input")
           i = 0
           Do While i < objcollection.Length
              If objcollection(i).Name = "btnGiris" And objcollection(i).Type = "submit" Then
                 objcollection(i).Click
                 Exit Do
              End If
              i = i + 1
        Loop
        Call bekle
        Application.Wait Now + TimeSerial(0, 0, 1)
         Application.Wait Now + TimeSerial(0, 0, 1)
        IE.Navigate "https://cks.tarim.gov.tr/CKS/TemelCKS/IsletmeBilgileri/UretimSezonuIsletmeKaydi.aspx"
          Application.Wait Now + TimeSerial(0, 0, 1)
          IE.Visible = True
          'TC kimlik no Bölümü
           Set objcollection = .Document.getElementsByTagName("input")
           i = 0
           Do While i < objcollection.Length
              If objcollection(i).Name = "ctl00$O$KG_USIK$TB_TCKimlikNo" And objcollection(i).ID = "ctl00_O_KG_USIK_TB_TCKimlikNo" Then
                 objcollection(i).Value = tcno
                 Exit Do
              End If
              i = i + 1
           Loop
            'Butona Basıyoruz
           Set objcollection = .Document.getElementsByTagName("input")
           i = 0
           Do While i < objcollection.Length
              If objcollection(i).Name = "ctl00$O$B_Devam" And objcollection(i).Type = "submit" Then
                 objcollection(i).Click
                 Exit Do
              End If
              i = i + 1
        Loop
         Application.Wait Now + TimeSerial(0, 0, 1)
         Application.Wait Now + TimeSerial(0, 0, 1)
 Application.Wait Now + TimeSerial(0, 0, 1)
        Application.Wait Now + TimeSerial(0, 0, 1)
         Application.Wait Now + TimeSerial(0, 0, 1)
         
         Application.Wait Now + TimeSerial(0, 0, 1)
        'Arazi kaydını açıyoruz
           Set objcollection = .Document.getElementsByTagName("a")
           i = 0
           Do While i < objcollection.Length
              If objcollection(i).ID = "ctl00_M_LB_AraziBilgileri" Then
                 objcollection(i).Click
                 Exit Do
              End If
              i = i + 1
        Loop
        Application.Wait Now + TimeSerial(0, 0, 1)
        'Ürün dağılımını açıyoruz
        IE.Navigate "https://cks.tarim.gov.tr/CKS/TemelCKS/IsletmeBilgileri/AraziUrunlerDagilimi.aspx"

           
        Call bekle
        Application.Wait Now + TimeSerial(0, 0, 1)
    End With
End Sub

Bu kodlar her seferinde yeni bir internet explorer sayfası açıyor ve ondan sonra normal olarak çalışıyor. Ancak ben her seferinde yeni bir sayfa açmasındansa sayfa üzerine ekleyeceğim bir webbrowser nesnesi üzerinden aynı işlemleri yapmak istiyorum.

Bu arada işlem yapılan sitede hem IP kısıtlaması hem de tek kullanımlık şifre cihazıyla elde edilen şifre kullanıldığından maalesef sizler giremez ve sayfayı göremezsiniz.

Epey araştırma yaptım, bulduğum kodları denedim ama maalesef sonuca ulaşamadım. Hatta tek kullanımlık şifreden aldığım şifreyi girmeyi de bugün hallettim.

Nasıl bir düzenleme yapmalıyım ki kodlar webbrowser1 nesnesi üzerinde doğru olarak çalışsın?
 
Bir de sayfanın aşağıdaki kod bölümünde value=11 yani 2011 üretim sezonunu açılır listeden bir türlü seçtiremedim. Nasıl bir kod kullanmalıyım?

Kod:
<select name="ctl00$U$DDL_UretimSezonu" onchange="javascript:setTimeout('__doPostBack(\'ctl00$U$DDL_UretimSezonu\',\'\')', 0)" id="ctl00_U_DDL_UretimSezonu" style="font-family:Verdana;"> 				<option value="-1">Üretim Sezonu Seçiniz...</option> 				<option value="13">2013 Üretim Sezonu</option> 				<option selected="selected" value="12">2012 Üretim Sezonu</option> 				<option value="11">2011 Üretim Sezonu</option>

Normalde fareyle herhangi bir yılı seçtiğimizde doğrudan o yılın sayfası açılıyor.
 
Geri
Üst