Öntanımlı browser ile sayfa açmak..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Merchant
Üye
Mesajlar: 102
Kayıt: 17 Eki 2006 01:51

Öntanımlı browser ile sayfa açmak..

Mesaj gönderen Merchant »

Merhaba, programdan internet sayfası açmak istiyorum. Ancak bunu tanımlı olan browser ile nasıl yapabilirim ?

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
winexec('C:\Program Files\Internet Explorer\iexplore.exe www.delphiturkiye.com',SW_MAXIMIZE);
end;
Yukarıdaki kod sadece explorer için geçerli. Ben hangi browser o an ön tanımlı ise onunla açmasını istiyorum.

Kolay gelsin
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Ben şahsen Registry'den varsayılan browser hangisi ise onu öğrenip onunla açıyorum. Sen de böyle deneyebilirsin.

Kod: Tümünü seç

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\HTTP\shell\open\command
anahtarından buluyorum.
Resim
Resim ....Resim
Kullanıcı avatarı
Merchant
Üye
Mesajlar: 102
Kayıt: 17 Eki 2006 01:51

Mesaj gönderen Merchant »

Cevap için teşekkür ederim ancak bir sorum daha olucak, Verdiğiniz cevaba göre aşağıdaki linkteki yazıyı inceledim. Registryde bulunan (varsayılan) değere nasıl ulaşabilirim ?

http://www.delphiturkiye.com/index.php?page=regini.htm

Teşekkür ederim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Bulduğun linkte oldukça detaylı ve güzel anlatılmış.

Kod: Tümünü seç

var
   Browser: string;
begin
   with TRegistry.Create do
   try
     RootKey := HKEY_LOCAL_MACHINE;
     Access  := KEY_QUERY_VALUE;
     if OpenKey('\SOFTWARE\Classes\HTTP\shell\open\command', False)
       then Browser := ReadString('') ;
     CloseKey;
   finally
     Free;
   end;
end;
- Kodu ile ilgili kaydı çekebilirsin. Geriye bazı string operasyonları ile Browser'in ne olduğunu tespit etmek kalıyor. Onu da sana bırakayım. :o
Resim
Resim ....Resim
Kullanıcı avatarı
Merchant
Üye
Mesajlar: 102
Kayıt: 17 Eki 2006 01:51

Mesaj gönderen Merchant »

Halletim sanırım. İlgilendiğiniz için teşekkür ederim.
Mysterio
Üye
Mesajlar: 44
Kayıt: 18 Eki 2006 01:42

Mesaj gönderen Mysterio »

Bu kod delphi 6 da çalışıyor ama delphi 7 de hata verdi.
Üzerinde uğraşacak vaktim olmadı.
bu kodla direkt olarak aktif web browser ile sayfa açılıyor

var
st:pchar;
adres:string;
begin
adres:='www.yahoo.com';
st:=Pchar(adres);
shellexecute(handle,'open',st, nil,nil,sw_show);
end;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Uses'a ShellApi eklersen sorun olmaz. Ek olarak kodlarını Code bloğuna alırsan boşuk formtın bozulmaz.

Kod: Tümünü seç

var // Uses ShellApi
  st    : pchar;
  adres : string;
begin
  adres := 'www.yahoo.com';
  st    := Pchar(adres);
  shellexecute(handle,'open',st, nil,nil,sw_show);
end;
- Bu son örnek evet default web browser ile açar ama açık olan mevcut bir sayfa varsa yenisini değil açık olan üzerinde browse eder.

- Registry'den aramamızın sebebi, yeni bir sezon gibi davranmayı sağlamaktır.

- Browser bulunduğunda kullanımı ise

Kod: Tümünü seç

ShellExecute(0, 'open', PChar(Browser), PChar(URL), nil, SW_SHOWNORMAL) ;
şeklinde olacaktı.
Resim
Resim ....Resim
Mysterio
Üye
Mesajlar: 44
Kayıt: 18 Eki 2006 01:42

Mesaj gönderen Mysterio »

Hay eline sağlık. Yaw 1 haftadır Visual Basic öğrenmeye çalışıyorum. Çıldırdım.

Kafa durdu.

Delphi ile 1 satırda yaptığım bir sürü şeyi, internette araştırarak, bir sürü satır yazarak yapabildiğimi gördükçe aklım almıyor.
Mysterio
Üye
Mesajlar: 44
Kayıt: 18 Eki 2006 01:42

Mesaj gönderen Mysterio »

Yaptık bir iyilik. bu da yeni pencerede açan kod. :)

uses
Registry, ShellAPI;

function BrowseURL(const URL: string) : boolean;
var
Browser: string;
begin
Result := True;
Browser := '';
with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT;
Access := KEY_QUERY_VALUE;
if OpenKey('\htmlfile\shell\open\command', False) then
Browser := ReadString('') ;
CloseKey;
finally
Free;
end;
if Browser = '' then
begin
Result := False;
Exit;
end;
Browser := Copy(Browser, Pos('"', Browser) + 1, Length(Browser)) ;
Browser := Copy(Browser, 1, Pos('"', Browser) - 1) ;
ShellExecute(0, 'open', PChar(Browser), PChar(URL), nil, SW_SHOW) ;
end;

//Usage
BrowseURL('http:delphi.about.com') ;
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@Mysterio bu kod süprizlere açık onu hatırlatayım. 8)

- Yukarda verdiğim registry anahtarından yola çıkarsan daha doğru olacak. Keza sonradan kurulan her browser bu verdiğin anahtarda değişiklik yapmıyor. DivXTurk projem için deneme / yanılma ile buduğum anahtardır bu yukarda verdiğim. Bilginize :o
Resim
Resim ....Resim
Cevapla