Web sayfasından gelen masajı yakalama hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Web sayfasından gelen masajı yakalama hakkında

Mesaj gönderen adelphiforumz »

Selamlar

Program içerisine gömülmüş bir web browser üzerinden açılan sayfanın içerisinde
kullanıcı sil butonuna bastıktan sonra emin misiniz şeklinde mesaj çıkıyor
bu mesajda kullanıcının ne sectiğini nasıl yakalıyabilirim.

Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
kimimben
Üye
Mesajlar: 129
Kayıt: 28 Oca 2016 04:41
Konum: İstanbul

Re: Web sayfasından gelen masajı yakalama hakkında

Mesaj gönderen kimimben »

Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Web sayfasından gelen masajı yakalama hakkında

Mesaj gönderen adelphiforumz »

kimimben yazdı:Test etmedim.
http://stackoverflow.com/a/11893847
Selamlar hocam
eğer yapılanları yanlış anlamadıysam burdaki örnekte
ekrana gelen mesaja sendmesaj gönderiyor ve istenen tuşa otomatik bastırılabiliyor
benim aradığım ise ekrana gelen mesajda basılan tuşun hangisinin olduğunu anlayabilmek
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
kimimben
Üye
Mesajlar: 129
Kayıt: 28 Oca 2016 04:41
Konum: İstanbul

Re: Web sayfasından gelen masajı yakalama hakkında

Mesaj gönderen kimimben »

adelphiforumz yazdı:
kimimben yazdı:Test etmedim.
http://stackoverflow.com/a/11893847
Selamlar hocam
eğer yapılanları yanlış anlamadıysam burdaki örnekte
ekrana gelen mesaja sendmesaj gönderiyor ve istenen tuşa otomatik bastırılabiliyor
benim aradığım ise ekrana gelen mesajda basılan tuşun hangisinin olduğunu anlayabilmek
Esselamü aleyna ve alekümmüsselam.
Şimdi test ettim.
Eğer sayfa içersinde javascript fonksiyonu olan confirm ile bir mesaj çıkartılıyorsa, stackoverlow da verilen cevap üzerinden bir çözüm üretebilirsiniz.

Şöyle ki;
Confirm komutu kullanan bir sayfa olduğunu varsayarsak;
test.html

Kod: Tümünü seç

<!DOCTYPE html>
<html>
<body>
<h1>test</h1>
<p>test</p>
<script>
   function sil()
   {
       if (confirm('emin misiniz ?'))
       {
            document.getElementById("sonuc").innerHTML = "Sonuç TRUE";	
       }
      else
       {
		 document.getElementById("sonuc").innerHTML = "Sonuç FALSE";	
       }
   }	
</script>
<button type="button" onclick="sil();">Sil</button>
<div id="sonuc"></div>
</body>
</html>

Kod: Tümünü seç

unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.OleCtrls, SHDocVw, Vcl.StdCtrls,
  COmObj, ActiveX, Vcl.ExtCtrls;

type
  IDocHostShowUI = interface(IUnknown)
    ['{c4d244b0-d43e-11cf-893b-00aa00bdce1a}']
    function ShowMessage(hwnd: THandle; lpstrText: POleStr;
      lpstrCaption: POleStr; dwType: longint; lpstrHelpFile: POleStr;
      dwHelpContext: longint; var plResult: LRESULT): HRESULT; stdcall;
  end;

  TShowMessageEvent = function(Sender: TObject; hwnd: THandle;
    lpstrText: POleStr; lpstrCaption: POleStr; dwType: longint;
    lpstrHelpFile: POleStr; dwHelpContext: longint; var plResult: LRESULT)
    : HRESULT of object;

  TWebBrowser = class(SHDocVw.TWebBrowser, IDocHostShowUI)
  private
    fOnShowMessage: TShowMessageEvent;
  protected
    function ShowMessage(hwnd: THandle; lpstrText: POleStr;
      lpstrCaption: POleStr; dwType: longint; lpstrHelpFile: POleStr;
      dwHelpContext: longint; var plResult: LRESULT): HRESULT; stdcall;
  published
    property OnShowMessage: TShowMessageEvent read fOnShowMessage
      write fOnShowMessage;
  end;

  TForm2 = class(TForm)
    WebBrowser1: TWebBrowser;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public

  end;

var
  Form2: TForm2;
  hr: HRESULT;

implementation

{$R *.dfm}

function TWebBrowser.ShowMessage(hwnd: THandle;
  lpstrText, lpstrCaption: POleStr; dwType: Integer; lpstrHelpFile: POleStr;
  dwHelpContext: Integer; var plResult: LRESULT): HRESULT;
begin
  Result := S_OK;
  plResult := MessageBox(hwnd, lpstrText, lpstrCaption, MB_OKCANCEL);

  if plResult = ID_OK then
  begin
    Form2.Memo1.Lines.Add('ID_OK');
  end;

  if plResult = IDCANCEL then
  begin
    Form2.Memo1.Lines.Add('IDCANCEL');
  end;

end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('file:///'+ExtractFilePath(Application.ExeName)+'test.html');
end;

end.
Resim

Son olarak ShowMessage methodu için açıklamalar.
A pointer to an LRESULT that indicates what button the user clicked (taken from the MessageBox IDxxx constants).
Başka bir alternatif doküman Custom WebBrowser Message Boxes

Tabi nasıl bir mesaj çıktığı hayal gücümüze bırakıldığı için, belki de yazdıklarım anlamsız veya sorunuzun cevabı olmayabilir.
Dosya ekleri
WbDialog.7z
(61.24 KiB) 76 kere indirildi
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Web sayfasından gelen masajı yakalama hakkında

Mesaj gönderen adelphiforumz »

Selemlar
"kimimben" ellerine sağlık tam olarak yapmaya çalıştığım buydu.
Hayırlı günlerin olsun
teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
kimimben
Üye
Mesajlar: 129
Kayıt: 28 Oca 2016 04:41
Konum: İstanbul

Re: Web sayfasından gelen masajı yakalama hakkında

Mesaj gönderen kimimben »

adelphiforumz yazdı:Selemlar
"kimimben" ellerine sağlık tam olarak yapmaya çalıştığım buydu.
Hayırlı günlerin olsun
teşekkürler
Rica ederim.
CTRL+C CTRL+V dışında yaptımız birşey yok.
ShowMessage methodunun dwType parametresini de alert gibi javascript mesajları için kontrol etmekte fayda var.
Cevapla