Browserda Urlleri memoya aktarma...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

Selam delphi ye bir kaç yıl ara vermiştim şimdi tekrar başladım uzun bir ara verince birçok şeyi unutmuşum, üstatlar sizler yardımcı olursanız sevinirim…

Delphide "WebBrowser" ve "InternetExplorer.Application" yöntemleri yerine ben tarayıcı olarak mozilla firefox kullanıyorum, ShellExecut yöntemiyle firefox aktif hale geliyor buraya kadar sorun yok, açılan sayfadaki tüm urlri memoya aktarma istiyorum fatak "J := IE.document.links.length" itibaren kodlamada hata alıyorum...

Verilen Hata:
with message 'Invalid variant operation'. Process Browser.exe (4320)

Kod: Tümünü seç

procedure TForm8.AraClick(Sender: TObject);
var
  I, J: Integer;
  IE: Variant;
  Link: String;
begin
  ShellExecute(0, 'open', 'Firefox.exe',
    Pchar('https://www.google.com.tr/search?q=' + 'araba'), '', SW_Normal);
  begin
    Sleep(3000);
    Application.ProcessMessages;
    J := IE.document.links.length;
    for i := 0 to J - 1 do
    begin
      Link := IE.document.links.item(I);
      Memo1.Lines.Add(IE.document.links.item(I));
    end;
  end;
end;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen unicorn64 »

IE adlı variat değişkenine değer atamadan erişmye çalışıyorsunuz... kodu debug edip J := IE.document.links.length; satırında IE nin değerine bakarsanız nil olduğunu görürsünüz
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

Merhaba " kodu debug edip J := IE.document.links.length; satırında IE nin değerine bakarsanız nil olduğunu görürsünüz" ne demek istediğinizi anlayamadım sizden ricam kod olarak açıklaya bilirmisiniz...
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen unicorn64 »

J := IE.document.links.length;
satırından önce IE değişkenine herhangi bir atama yapmadığınız için IE değişkeni boş/anlamsız/yok hükmünde...

ShellExecute ile firefoxu açtırmış olmanız açılan uygulamaya erişim için yeterli değil, muhtemelen kodu başka yerden kopyala/yapıştır yaptınız ve kodu aldığınız yerde InternetExplorer.Application kullanılmıştı yani IE değişkenine atama vardı...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

Konu güncel,





Not: "ücret" karşılığında çözmek isteyen olursa özelden irtibata geçebilir...
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen warder »

dogan yazdı:Delphide "WebBrowser" ve "InternetExplorer.Application" yöntemleri yerine ben tarayıcı olarak mozilla firefox kullanıyorum...
Bu kullanıma ait sonuç aldığınız başka örnek uygulama veya kodunuz var mı?
Yoksa kullanmak istiyorum mu demek istediniz?
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

Klasik web ortamında bulunan aşağıdaki kod örneği olan Internet Explorer ile linkleri alabiliyorum, ben firefox, yandex ve chrome browserları kullanarak bu linkleri almak istiyorum bu mümkün mü?

Kod: Tümünü seç

procedure TForm8.Button4Click(Sender: TObject);
Var
  I, N: Integer;
  IEApp: OleVariant;
begin
  if (VarIsEmpty(IEApp)) then
  begin
    IEApp := CreateOleObject('InternetExplorer.Application');
    IEApp.Visible := True;
  end;
  IEApp.Navigate('https://www.google.com.tr/search?q=' + 'telefon');
  while Cardinal(IEApp.readyState) <> 4 do
    Sleep(1000);
  N := Cardinal(IEApp.document.links.length);
  for i := 0 to N - 1 do
    Memo1.Lines.Add(string(IEApp.document.links.item(i).href));
end;
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen brs »

Selam viewtopic.php?f=2&t=30483 incele sanırım olmamış belki fikir verebilir...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen brs »

Birde Chromium araştır
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

Selam arkadaşlar bir el atacak kimse yokmu delphiden tekrardan hevesim soğmaya başladı Allah rızası biri yardım ettsin


bu kodlarla sadece url alanındaki bir linki alabiliyorum bana raporlama için firefox browserı kullanarak googda çıkan arama sonuçlarının tüm urlri memo içine aktarma istiyorum saygılarımla...

Kod: Tümünü seç

procedure TForm3.Button5Click(Sender: TObject);
var
  DDE: TDDEClientConv;
begin
  DDE := TDDEClientConv.Create(nil);
  try
    if DDE.SetLink('FIREFOX', 'WWW_GetWindowInfo') then // Tamam
    begin
      Memo1.Lines.Add(DDE.RequestData('0xFFFFFFFF,sURL,sTitle'));
    end;
  finally
    DDE.Free;
  end;
end;
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen unicorn64 »

google da arama sonuçlarını neden firefoxu kullanarak almaya çalışıyorsunuz, özel bir sebebi varmıdır? delphideki webbrowser bu iş için yeterli olacaktır zaten...
şu linki bir inceleyin isterseniz

yada IdHttp ile sayfayı çekseniz ve dönen html i parse etseniz?
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

unicorn64 yazdı:google da arama sonuçlarını neden firefoxu kullanarak almaya çalışıyorsunuz, özel bir sebebi varmıdır? delphideki webbrowser bu iş için yeterli olacaktır zaten...
şu linki bir inceleyin isterseniz

yada IdHttp ile sayfayı çekseniz ve dönen html i parse etseniz?

Selam google veya yandex arama motoru olur fark etmez burada asıl olan browserlar yandex, firefox, opera browserlardan birini kullanıcı isteğine göre
seçecek ve url leri alacak neden delphi webbrowser kullanmak istemiyorum derseniz bilgisayarda var olan yandex, firefox veya opera browserlardan birini seçerek işlemini yapacak...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen SimaWB »

Benim anlamadığım birşey var:
ShellExecute ile bowser'ı siz açtırdığınıza göre açılacak sayfası biliyorsunuz. Değil mi?

Eğer öyleyse; kullanıcı Firefox'u seçsin ve açılsın ama siz arka planda TWebBrowser'la o sayfası açıp içerisinden istediklerinizi alabilirsiniz.
There's no place like 127.0.0.1
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

SimaWB yazdı:Benim anlamadığım birşey var:
ShellExecute ile bowser'ı siz açtırdığınıza göre açılacak sayfası biliyorsunuz. Değil mi?

Eğer öyleyse; kullanıcı Firefox'u seçsin ve açılsın ama siz arka planda TWebBrowser'la o sayfası açıp içerisinden istediklerinizi alabilirsiniz.
Hocam bunu nasıl yapacağım lütfen yardımcı olun...
Kullanıcı avatarı
dogan
Üye
Mesajlar: 173
Kayıt: 17 Eki 2014 10:11

Re: Browserda Urlleri memoya aktarma...

Mesaj gönderen dogan »

Neyse sonunda Bitti Teşekkür Edirim İlginize...
Cevapla