İnternet tarayıcıları açma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

İnternet tarayıcıları açma

Mesaj gönderen brs »

Selam

Kod: Tümünü seç

 ShellExecute(self.WindowHandle, 'Open', PChar('www.google.com.tr'), Nil, Nil, SW_hide);


ile windows internet explorer tarayıcıyı buton ile istenilen sayfa açılıyor diğer tarayıcılarıda Firefox, Yandex, Google chore buton ile nasıl açtırabilirim ve aynı zamanda buton ile tekrar kapatmak mükün mü?
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: İnternet tarayıcıları açma

Mesaj gönderen SimaWB »

Yazdığınız şekilde çalıştırdığınızda bilgisayarda varsayılan tarayıcı ne ise onunla açılır. Yani sizin bilgisayarda IE açılmış olabilir ama benim bilgisayarda Chrome açılır.
Tarayıcıyı özellikle belirtmek isterseniz, hangi tarayıcı ile açacaksanız onun EXE'sinin tam yolunu bilmelisiniz. Örneğin benim bilgisayarımda Chrome
C:\Program Files (x86)\Google\Chrome\Application
altında kurulmuş vaziyette. Chrome'la bir linki açmak istersem

Kod: Tümünü seç

ShellExecute(
        0,
        'open',
        PWideChar('C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'),
        PWideChar('https://www.google.com.tr/'),
        nil,
        SW_SHOW);
yazmalıyım. Diğer tarayıcıları da aynı şekilde çalıştırabilirsiniz.
There's no place like 127.0.0.1
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: İnternet tarayıcıları açma

Mesaj gönderen brs »

Elinize sağlık hocam, fakat her kullanıcının exe yolu faklıdır " PWideChar('C:\Program Files\Google\Chrome\Application\chrome.exe')," bende bu şekilde bunu daha pritik yolu olma olasılığı var mı acaba aklıma tarayıcıyı değiştirmek geldi ama sanırım imkansız, bendeki tarayıcı Google Chrome ama buton ile açmak istediğimde intenet exproler ile açılıyor...

Kod: Tümünü seç

ShellExecute(self.WindowHandle, 'Open', PChar('www.google.com.tr'), Nil, Nil, SW_hide);
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: İnternet tarayıcıları açma

Mesaj gönderen SimaWB »

Tarayıcıların bilgisayarda nerede kurulu olduğunu Registry'den öğrenebilirsiniz.
Registry'de HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall içerisinde kurulu programların listesi vardır.
Bunların DisplayName özelliklerine bakarak (Örn. Chrome için "Google Chrome") hangi tarayıcıyı istiyorsan bulursun.
Sonra InstallLocation özelliğine bakarak nereye kurulduklarını bulabilirsin.
There's no place like 127.0.0.1
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Re: İnternet tarayıcıları açma

Mesaj gönderen Serhat »

Hocam bu konuyu bende arastirdim fakat birsey bulamadim bir ornek verirmisiniz
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: İnternet tarayıcıları açma

Mesaj gönderen G.Arkas »

Serhat yazdı:Hocam bu konuyu bende arastirdim fakat birsey bulamadim bir ornek verirmisiniz
SimaWB olayı çok net açıklamış. Registry'den verilen anahtarları okuyup tüm browser-ların path-lerine ulaşabilirsin.

Registry'den veri okuma ve yazma ile ilgili buradan faydalanabilirsiniz.

http://delphi.about.com/od/windowsshell ... gistry.htm
Resim
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: İnternet tarayıcıları açma

Mesaj gönderen brs »

Bu kodla google chrome ve mozilla ve bir çok program yolunu alıyorum fakat internet explorer ortada yok..

Kod: Tümünü seç

procedure TForm1.Button3Click(Sender: TObject);
var
  MyList: TStringList;
  MyRegistry: tregistry;
  i: Integer;
  Str: string;
begin
  ListBox4.Clear;
  MyRegistry := tregistry.Create;
  MyList := TStringList.Create;
  with MyRegistry do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    if OpenKey('Software\Microsoft\Windows\CurrentVersion\Uninstall', False) = True
    then
      GetKeyNames(MyList);
    CloseKey;

    for i := 0 to MyList.Count - 1 do
    begin
      RootKey := HKEY_LOCAL_MACHINE;
      OpenKey('Software\Microsoft\Windows\CurrentVersion\Uninstall\' +
        MyList[i], False);
      Str := ReadString('InstallLocation');
      if Str <> '' then
        ListBox4.Items.Add(ReadString('InstallLocation'));
      CloseKey;
    end;
  end;
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: İnternet tarayıcıları açma

Mesaj gönderen SimaWB »

Şu şekilde daha iyi biz çözüm buldum internette:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\
dizininde uygulamaların kurulu olduğu klasörler listeleniyor.
Örneğin bende chrome.exe adında bir KEY var ve onun içindeki Path değeri Chrome'un nereye kurulu olduğunu gösteriyor. Aynı şekilde IEXPLORE.EXE KEYi altında da Path değerinde IE'nin kurulu olduğu klasör var. Firefox bende kurulu değil ama sanırım onun için de aynı şey geçerlidir.
There's no place like 127.0.0.1
Kullanıcı avatarı
hido
Üye
Mesajlar: 268
Kayıt: 29 Mar 2014 04:32

Re: İnternet tarayıcıları açma

Mesaj gönderen hido »

Merhaba Hocam bende (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\) google de araştırdım ama doğru düzgün bir şey bulamadım link paylaşır mısınız...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: İnternet tarayıcıları açma

Mesaj gönderen SimaWB »

Yukarıda brs'nin verdiği kodlarda Registry'den bilgi nasıl okunur var. Ben sadece okumanız gereken registry keyini gösterdim...
En son SimaWB tarafından 30 Ağu 2014 05:11 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
There's no place like 127.0.0.1
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: İnternet tarayıcıları açma

Mesaj gönderen brs »

Hocam kusura bakmayın aklıma takıldı "DirectoryExists" ile kontrol etmek daha mantıklı değil mi özel bir durum yok ise,
Bir çok bilgisayarlarda adres ('C:\Program Files\Google\Chrome\Application\chrome.exe') şeklindedir...

Kod: Tümünü seç

procedure TForm3.SpeedButton1Click(Sender: TObject);
begin
  if not DirectoryExists('C:\Program Files\Google\Chrome\Application\chrome.exe')   then
    showmessage('Dosya bulundu');
  else
    showmessage('Dosya bulunamadı')
end;
Not DirectoryExists klasör olsada olmasada benim bilgisayrda bulundu olarak çıkıyor :)
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: İnternet tarayıcıları açma

Mesaj gönderen SimaWB »

brs yazdı:Hocam kusura bakmayın aklıma takıldı "DirectoryExists" ile kontrol etmek daha mantıklı değil mi özel bir durum yok ise
Özel durum varsa ne olacak? Kullanıcı kurulum esnasında hedef klasörü farklı seçti ise?
Ben sizin probleminize çözüm tavsiyesinde bulundum. Elbetteki uygulamak yada uygulamamak size kalmış :wink:
There's no place like 127.0.0.1
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Re: İnternet tarayıcıları açma

Mesaj gönderen Serhat »

Hocam iki gun ben arastirdim birsey bulamadim maalesef imkansiz
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: İnternet tarayıcıları açma

Mesaj gönderen SimaWB »

Serhat yazdı:Hocam iki gun ben arastirdim birsey bulamadim maalesef imkansiz
İmkansız olan nedir anlamadım?
There's no place like 127.0.0.1
Kullanıcı avatarı
Serhat
Üye
Mesajlar: 203
Kayıt: 27 Tem 2014 11:10

Re: İnternet tarayıcıları açma

Mesaj gönderen Serhat »

İki koca gun arastirdim interneti girmedim site kalmamistir yok yok yok bende cozemedim
Cevapla