- 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.
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?
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?
