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 »

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

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen mrmarman »

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 ....Resim
tayipk
Üye
Mesajlar: 284
Kayıt: 27 Kas 2013 11:32

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen tayipk »

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 »

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 10:42
Konum: İstanbul
İletişim:

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen SimaWB »

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 »

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 »

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: 3077
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen sabanakman »

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: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: E-Bildirge Captcha Resmi Alma Sorunu

Mesaj gönderen greenegitim »

noname2040 yazdı: 29 Mar 2018 04: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