E-Bildirge Captcha Resmi Alma Sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen kocivan » 11 Kas 2014 09:42

Merhabalar,
https://ebildirge.sgk.gov.tr/WPEB/amp/loginldap Sitesi ile uğraşıyorum. Daha önce webbrowser session ile ilgili sorun yaşamıştım yaşadığım sorunu Tinternetexplorer kullanarak çözdüm ancak bu seferde captcha resmini alırken sorun yaşıyorum webbowserda resim yeniden üretilmeden kaydediliyordu ancak Tinternetexplorer kullandığımda resmi kaydetmek istediğimde resim yeniden üretiliyor. Ancak ilginç olan programı ilk çalıştırdığım da ve explorer da ilk defa çalıştığında resmi kaydettiğimde farklı bir resim kaydediyorum explorerı kapatıp tekrar çalıştırdığımda doğru resim kaydediliyor. Sitedeki örnekleri inceleyerek URL den download etmeyi denedim ki bu yöntem webbrowserda sorun yaratmıyordu, src değerine göre resmi bulduğumda indirmeye çalıştım ondada farklı resim yüklendi Sayın mrmarman bir konuda bahsettiği ikinci bir webborwser kullanmayı denedim onda da farklı resim yüklendi. Daha önce böyle bir sorun yaşayıp ta çözüme ulaşmış biri var mı acaba?

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

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen mrmarman » 14 Kas 2014 01:23

Merhaba.

Forumda örnek vermiştim. bkz. bu link

Boş yeni bir proje açıp forma bir TImage bir Button bir de WebBrowser koyup aşağıdaki kodları yazar mısın...

Kod: Tümünü seç

USES MSHTML;

// Uses MSHTML
procedure AktifResimYukle_ARMAN( WebBrowser:TWebbrowser; strAra:String; Image:TImage );
var
  iSayac   : Integer;
  bmpResim : TBitmap;
begin
  if not Assigned( WebBrowser.Document ) then
    raise Exception.Create('HTML içerik gelmemiş...');
  if not Assigned ( (((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2)) then
    raise Exception.Create('HTML Gelmiş ama Body içermiyor...');
  for iSayac := 0 to ((((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2).getElementsByTagName('img') AS IHTMLElementCollection).Length-1 do
  begin
    if Pos( strAra, ((((((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2).getElementsByTagName('img') AS IHTMLElementCollection).item(iSayac, EmptyParam) as IHTMLElement) as IHTMLImgElement).src ) > 0 then
    begin
      bmpResim := TBitmap.Create;
        bmpResim.Height := ((((((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2).getElementsByTagName('img') AS IHTMLElementCollection).item(iSayac, EmptyParam) as IHTMLElement) as IHTMLImgElement).height ;
        bmpResim.Width  := ((((((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2).getElementsByTagName('img') AS IHTMLElementCollection).item(iSayac, EmptyParam) as IHTMLElement) as IHTMLImgElement).width ;
        (((((((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2).getElementsByTagName('img') AS IHTMLElementCollection).item(iSayac, EmptyParam) as IHTMLElement) as IHTMLImgElement) as IHTMLElementRender).DrawToDC(bmpResim.Canvas.Handle);
        Image.Picture.Assign( bmpResim );
      bmpResim.Free;
      Break;
    end;
  end;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  WebBrowser1.Navigate(  'https://ebildirge.sgk.gov.tr/WPEB/amp/loginldap'  );
  while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
  begin
    sleep(1);
    Application.ProcessMessages;
  end;

  AktifResimYukle_ARMAN( WebBrowser1, '/WPEB/PG', Image1 );
end;
Resim Resim

tayipk
Üye
Mesajlar: 284
Kayıt: 27 Kas 2013 11:32

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen tayipk » 14 Kas 2014 01:45

muharrem hocam çok uzun bir aradan sonra tekrar sizi görmek sevindirici :)
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.

Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen kocivan » 14 Kas 2014 01:06

Sayın Muharrem Bey cevap için teşekkür ederim ancak webbrowser kullanırken resmi alma konusunda sorun yaşamıyordum. Session sorunu yaşamamdan dolayı Tinternetexplorer kullanmaya başladım resim alma sorunu bundan sonra başladı. Ayrıca örneği daha önce denemiştim aşağıdaki satırda aşağıdaki hatayı veriyor.

Kod: Tümünü seç

    if Pos( strAra, ((((((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2).getElementsByTagName('img') AS IHTMLElementCollection).item(iSayac, EmptyParam) as IHTMLElement) as IHTMLImgElement).src ) > 0 then

Kod: Tümünü seç

[dcc32 Error] Unit1.pas(40): E2251 Ambiguous overloaded call to 'Pos'
  System.pas(28005): Related method: function Pos(const string; const string; Integer): Integer;
  System.pas(28165): Related method: function Pos(const WideString; const WideString; Integer): Integer;

Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 09:42
Konum: İstanbul
İletişim:

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen SimaWB » 14 Kas 2014 01:33

Kodu aşağıdaki şekilde değiştirirseniz bildirdiğiniz hatayı almazsınız:

Kod: Tümünü seç

if Pos( strAra, WideString(((((((WebBrowser.Document) as IHTMLDocument2).body as IHTMLElement2).getElementsByTagName('img') AS IHTMLElementCollection).item(iSayac, EmptyParam) as IHTMLElement) as IHTMLImgElement).src) ) > 0 then
There's no place like 127.0.0.1

Kullanıcı avatarı
kocivan
Üye
Mesajlar: 30
Kayıt: 29 Kas 2013 01:21

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen kocivan » 14 Kas 2014 08:32

Teşekkür ederim o şekilde düzelttiğim zaman hata vermedi. AktifResimYukle_ARMAN procedurünü Tinternetexplorer için nasıl düzenleye bilirim acaba? Biraz uğraştım ama pek bir sonuç alamadım.

noname2040
Üye
Mesajlar: 5
Kayıt: 24 Ara 2013 05:26

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen noname2040 » 29 Mar 2018 03:39

aynı satırda hata alıyorum
[dcc32 Error] Unit1.pas(44): E2010 Incompatible types: 'WideString' and 'Integer'
[dcc32 Warning] Unit1.pas(44): W1058 Implicit string cast with potential data loss from 'WideString' to 'ShortString'
[dcc32 Error] Unit1.pas(44): E2250 There is no overloaded version of 'Pos' that can be called with these arguments

Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3051
Kayıt: 17 Nis 2006 07:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen sabanakman » 11 May 2018 06:21

Bu resmi tekrar navigate ederek değişmesini sağlayıp (https://ebildirge.sgk.gov.tr/WPEB/PG) bunu ayrıca göstermek de çözüm olabilir belki. Resmi getirdikten sonra, çözmek için buraya bakmanızda fayda var :mrgreen: . viewtopic.php?f=3&t=37322
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .

Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 707
Kayıt: 28 Nis 2011 09:33
Konum: İstanbul

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen greenegitim » 11 May 2018 08:27

noname2040 yazdı:
29 Mar 2018 03:39
aynı satırda hata alıyorum
[dcc32 Error] Unit1.pas(44): E2010 Incompatible types: 'WideString' and 'Integer'
[dcc32 Warning] Unit1.pas(44): W1058 Implicit string cast with potential data loss from 'WideString' to 'ShortString'
[dcc32 Error] Unit1.pas(44): E2250 There is no overloaded version of 'Pos' that can be called with these arguments
pos - Ansipos olarak değiştiriniz.
Mücadele güzelleştirir!

Cevapla