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 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen orhancc »

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 07:59

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen azur »

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 08:16

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen darkfeeL »

@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 06:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT »

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 06:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT »

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 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen orhancc »

Javascriptin zaten popup açıyor kodu değiştirmen lazım. Fonksiyon adından belli.
McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 06:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT »

işte hangi fonksiyon getirirsem popup şeklinde acılmaz
Bazen sesini duyurabilmen için,
Susman gerekir...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen mrmarman »

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 ....Resim
McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 06:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT »

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: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen mrmarman »

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 ....Resim
McVeLeT
Üye
Mesajlar: 65
Kayıt: 22 May 2005 06:45
Konum: Bursa

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen McVeLeT »

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: 47
Kayıt: 23 Kas 2013 04:45
Konum: Balıkesir

Re: Webbrowser post ile Forumlara login olmak

Mesaj gönderen bkantur »

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