Webbrowser post ile Forumlara login olmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 01:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen orhancc » 05 Eki 2010 09:53

Kod: Tümünü seç

procedure TMyForm.Button1Click(Sender: TObject);
var
  nForms: integer;
begin
  nForms := NumberOfForms(WebBrowser.Document as IHTMLDocument2);
  ShowMessage('Form count: ' + IntToStr(nForms));
end;

azur
Üye
Mesajlar: 7
Kayıt: 05 Eki 2010 06:59

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen azur » 05 Eki 2010 07:06

konu burada açılmışken bende yeni konu açmayayım dedim...

arkadaşlar bende şöyle bir şey yapmak istiyorum bilmiyorum uğraşanınız oldumu hiç...

googleda arama yapıp sonuçlarda istediğimi clickletmek istiyorum fakat arama yapınca sonuçların yerleri değişiyor...

@mrmarman hocam bu konuda bir fikriniz varmı acabe?

darkfeeL
Üye
Mesajlar: 14
Kayıt: 03 Eki 2010 07:16

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen darkfeeL » 05 Eki 2010 10:53

@orhancc evet sayfada 4 adet form var. Fakat message adlı textareayı doldurmak için bu yeterli olmuyor..

McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 05:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT » 31 Mar 2011 12:15

mrmarman yazdı:Merhaba...

ID'sine ulaşamadıysanız çalışan fonksiyonu siz çalıştırın.

Kod: Tümünü seç

    (WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript( 'openLoginPopup()', 'JavaScript' ); // Uses MSHTML eklenecek

peki arkadaşım bu kodu nasıl webbrowserin içinde çalıştırabilirim, bu kodu yazdığımda popup şeklinde programın dışında açılıyor
Bazen sesini duyurabilmen için,
Susman gerekir...

McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 05:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT » 31 Mar 2011 03:30

Arkadaşlar dünden beri arıyorum, https://ebeyanname.gib.gov.tr kısmına

Kod: Tümünü seç

webbrowser1.Navigate('https://ebeyanname.gib.gov.tr/giris.html');

While WebBrowser1.ReadyState <> READYSTATE_Complete do
  Application.ProcessMessages;

(WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript( 'openLoginPopup()', 'JavaScript' );
yaptığımda açılan pencereyi popup şeklinde açıyor ve bu nedenle otomatik giriş yaptıramıyorum, webbrowserin içinde nasıl gösterebilirim bunu
Bazen sesini duyurabilmen için,
Susman gerekir...

orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 01:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen orhancc » 31 Mar 2011 07:37

Javascriptin zaten popup açıyor kodu değiştirmen lazım. Fonksiyon adından belli.

McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 05:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT » 31 Mar 2011 07:47

işte hangi fonksiyon getirirsem popup şeklinde acılmaz
Bazen sesini duyurabilmen için,
Susman gerekir...

Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4717
Kayıt: 09 Ara 2003 08:13
Konum: Ankara
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen mrmarman » 31 Mar 2011 08:42

Bu işlemleri yapmak için (yani Web sayfalarına hükmetmekten bahis) HTML ve JAVASCRIPT yapısına hakimiyet gerekir.

Verdiğin (ebeyenname) sitesini senin için inceledim. Sen de incelersen header kısmında kullanılan javascript fonksiyonlarının bulunduğu ( delphi'de SUB - UNIT gibi bir yapı olduğunu göreceksin )

Kod: Tümünü seç

	<script type="text/javascript" src="js/index.js"></script>
satırını göreceksin. Bu js dosyası içinde senin istediğin kod bloğu (fonksiyon vs.) barındırılır.

Bu bloğu indirmek için adres satırına aynen src yazdığı şejkilde root domainden işletmelisin. Yani

Kod: Tümünü seç

https://ebeyanname.gib.gov.tr/js/index.js
adresini elde edersin. Bunu yazdığında kullanılan kod bloğu bilgisayarına akar.

Senin örneğindeki kod bloğu aşağıda şekildedir.

Kod: Tümünü seç

var messages = new Array();
var labels = new Array();
messages['AJAX_SITE_ILE_BAGLANTI_SAGLANAMADI']="Site ile bağlantı sağlanamadı."
messages['AJAX_SITE_GECERSIZ_CEVAP_DONDU']="Site geçersiz bir cevap döndü. Lütfen çağrı merkezine haber veriniz."
messages['AJAX_GUVENLI_CIKIS_YAPILIYOR']="Güvenli çıkış yapılıyor..."
messages['AJAX_EBYNDEN_CIKIS_YAPILIYOR']="E-Beyanname' den çıkışınız yapılıyor. Lütfen kendi güvenliğiniz için GÜVENLİ ÇIKIŞ seçeneğini kullanmaya özen gösteriniz."
messages['AJAX_GIRIS_YAPILIYOR']="Giriş yapılıyor..."
messages['AJAX_EBYNDEN_CIKIS_YAPILDI']="Başarılı bir şekilde E-Beyanname' den çıkış yapıldı."
labels['MENU_BEYANNAMEARA']="Beyanname Ara";

function openLoginPopup() {
	window.open("giris.html", "_blank", "top=0,left=0,status=1,history=no,toolbar=0,location=0,directories=0,menubar=0,scrollbars=yes,resizable=yes,width=1029,height=780");
}

function duyurular(adr) {
	document.getElementById('duyuruFrm').src = adr + ".html";
}

Burada openLoginPopup() fonksiyonunda yer alan window.open javascript komutu ne işe yarıyor onları incele :
Referans için link vereyim : http://www.javascript-coder.com/window- ... open.phtml

Senin için mercek altına aldığım bu site ile ilgili bir önermede bulunmak istiyorum. :idea: Bu login sayfasını açabilmek için illaki de referans sitesi olan ebeyenname.gib.gov.tr adresine girmek zorunda değilsin. Aşağıda vereceğim örneği denersen ne demek istediğimi anlayacaksın.

Dikkatini çekmek istediğim nokta "_blank" olanı. Bunu SELF veya PARENT vererek de alabilirsin ancak yeni açılan pencerenin HTML kodlarını ve JS kodlarını indirip incelemen lazım. Çünkü eğer boş değil de bir referans içeriyorsa giriş ekranına dönülsün gibisinden bir kontrolle karşılaşman oldukça muhtemel.

Bir buton ekle ve şunları yaz.

Kod: Tümünü seç

  Webbrowser1.Navigate('about:blank');
  While WebBrowser1.ReadyState <> READYSTATE_Complete do
    Application.ProcessMessages;
  (WebBrowser1.Document as IHTMLDocument2).parentWindow.execScript( 'window.open("https://ebeyanname.gib.gov.tr/giris.html", "_blank", "top=0,left=0,status=1,history=no,toolbar=1,location=1,directories=1,menubar=1,scrollbars=yes,resizable=yes,width=1029,height=780")', 'JavaScript' );

Başarılar.
Resim Resim

McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 05:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT » 31 Mar 2011 09:20

söylediklerinizi inceledim direk bağlanıyorum fakat webbrowser içinde değilde popup olarak çıkartıyor... self veya parent olarak girdiğimde ise index.html kısmına dönüyor ve webbrowserin içinde gösteriyor. Birtürlü giris.html webbrowser içinde gösteremedim
Bazen sesini duyurabilmen için,
Susman gerekir...

Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4717
Kayıt: 09 Ara 2003 08:13
Konum: Ankara
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen mrmarman » 01 Nis 2011 08:27

yineliyorum,
@mrmarman yazdı:Dikkatini çekmek istediğim nokta "_blank" olanı. Bunu SELF veya PARENT vererek de alabilirsin ancak yeni açılan pencerenin HTML kodlarını ve JS kodlarını indirip incelemen lazım. Çünkü eğer boş değil de bir referans içeriyorsa giriş ekranına dönülsün gibisinden bir kontrolle karşılaşman oldukça muhtemel.
Tüm siteyi inceleyecek vaktim olsaydı konunun ilgili / henüz ilgi sahibi olmayan herkesin anlayabilmesi için paket program yazardım ancak sana vizyon sağlamak için cevap yazdım. :idea:
Resim Resim

McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 05:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT » 02 Nis 2011 12:23

Arkadaşlar birşey sorucam

Kod: Tümünü seç

webbrowser1.Navigate( 'http://login.live.com/login.srf?wa=wsignin1.0&rpsnv=11&ct=1248279367&rver=5.5.4177.0&wp=MBI&wreply=http:%2F%2Fmail.live.com%2Fdefault.aspx&lc=1055&id=64855&mkt=tr-TR' );
While webbrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages;
webbrowser1.OleObject.Document.GetElementByID('login').Value:=edit1.Text;
webbrowser1.OleObject.Document.GetElementByID('passwd').Value:=edit2.Text;
webbrowser1.OleObject.Document.GetElementByID('SI').Click;
Şu şekilde login olunuyor, fakat ikinci denemede hata veriyor, çıkış yapılmadığı için hotmailden...

formu kapattığımda hotmailden de logout yapması için hangi kodu yazmalıyız
Bazen sesini duyurabilmen için,
Susman gerekir...

bkantur
Üye
Mesajlar: 44
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen bkantur » 12 Ara 2017 01:46

Kod: Tümünü seç

Form=00 item=01 - Name="keywords"
Form=00 item=02 - Name=""
Form=01 item=01 - Name="username"
Form=01 item=02 - Name="password"
Form=01 item=03 - Name="autologin"
Form=01 item=04 - Name="viewonline"
Form=01 item=05 - Name="redirect"
Form=01 item=06 - Name="sid"
Form=01 item=07 - Name="login"
Webbrowser içinden nasıl bu şekilde liste alabiliyoruz. GetFormFieldNames fonksiyonunu denedim ama bana bir sonuç döndürmedi boş olarak geri geldi. Yardımcı olursanız sevinirim

Cevapla