Dosyayi programıyla açmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Dosyayi programıyla açmak

Mesaj gönderen salvation »

Atıyorum, .sti uzantılı dosyaların yaptığımız programla açılmasını nasıl sağlarız? Regedit ten olcak diye biliyorum, ama çok uğraştım bir sürü yere eklemeler yaptım yinede olmadı?
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

eğer registiry den nerelerde değişiklik yaptığını biliyorsan sağ tuştan birlikte aç komutunu kullanarak (her zaman bu programla aç seçeneği aktif olacak) manuel olarak aç daha sonra hangi değişikliklerin yapıldığını kontrol et
Bilgi paylaşıldıkça güzeldir.
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Mesaj gönderen salvation »

bende aynen öyle yaptım, 5-6 yerde değişikliğini yakaladım ve bende aynı şeyleri yaptım ama olmadı. Demekki başkabiyerlerdede yapıyo bişeyler. Önce hangi programla açılacaksa onu tanıtıyo, sonra o dosya uzantısını açmak istiyosak onun içinde programın adını falan veriyo. Ama dediğim gibi biyerlerde daha bişeyler yapıyo. Yakalayabildiklerimi registry de arama yaparak buldum
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hazır kod buldum, bazı yerler ingilizce kusura bakma.

How do I create a file association for my application?

Answer:
In Win32, create a new registry entry under the
HKEY_CLASSES_ROOT root key that points to the file
extension, the command line to invoke, and the icon to
display. Under Win16, simply file extension and the command
line to invoke in the [Extensions] sections of Win.ini.

Example:

Kod: Tümünü seç

uses
  Registry, {For Win32}
  IniFiles; {For Win16}

{For Win32}
procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CLASSES_ROOT;
  reg.LazyWrite := false;
 {Add Program Support}
  reg.OpenKey('.bor\shell\open\command',
              true);
{Invoke the program passing the file name as the first parameter}
  reg.WriteString('',
                 'C:\Program Files\Borland\Delphi 3\Project1.exe %1');
 {Add Icon Display}
  reg.CloseKey;
  reg.OpenKey('.bor\DefaultIcon',
              true);
{Use the first icon in the executable to display}
  reg.WriteString('',
                  'C:\Program Files\Borland\Delphi 3\Project1.exe,0');
  reg.CloseKey;
  reg.free;
end;

{For Win16}
procedure TForm1.Button2Click(Sender: TObject);
var
  WinIni : TIniFile;
  WinIniFileName : array[0..MAX_PATH] of char;
  s : array[0..64] of char;
begin
  GetWindowsDirectory(WinIniFileName, sizeof(WinIniFileName));
  StrCat(WinIniFileName, '\win.ini');
  WinIni := TIniFile.Create(WinIniFileName);
  WinIni.WriteString('Extensions',
               'bor',
               'C:\PROGRA~1\BORLAND\DELPHI~1\PROJECT1.EXE ^.bor');
  WinIni.Free;
  StrCopy(S, 'Extensions');
  SendMessage(HWND_BROADCAST, WM_WININICHANGE,
       0, LongInt(@S));
end;
Kolay gelsin.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

+ 1 not daha, tabii programınıda verilen parametredeki dosyayı açacak şekilde ayarlamalısın.

Kolay gelsin.
Vampire
Üye
Mesajlar: 9
Kayıt: 21 Nis 2004 06:45
İletişim:

Mesaj gönderen Vampire »

iis üzerine php kurdunmu bilmiyorum hiç denemedimde gerçi ordaki işlemleri denersen belki o uzantı programınla açılır.. denemek lazım :)
<?
print "success";
?>
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

vampir
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="C:\\php\\php.exe"
gibi birşey diyorsun ama program yazarken parametresinde belirtmeyip ona göre işlem belirtmezsen (zaten Adminin de dediği gibi ) imkanı yok hayatta açamazsın ama öteki tarafta belki (minik bir espiri) :lol:

Saygılar
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
Kullanıcı avatarı
salvation
Üye
Mesajlar: 303
Kayıt: 22 Mar 2004 01:57
Konum: Eskişehir
İletişim:

Bu şekilde oluyor

Mesaj gönderen salvation »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;
  reg.RootKey := HKEY_CLASSES_ROOT;
  reg.LazyWrite := false;
  {Add Program Support}
  reg.OpenKey('.bor\shell\open\command',true);
  {Invoke the program passing the file name as the first parameter}
  reg.WriteString('','C:\stok\Stok.exe %1');
  {Add Icon Display}
  reg.CloseKey; 
  reg.OpenKey('.bor\DefaultIcon',true);
  {Use the first icon in the executable to display}
  reg.WriteString('','C:\stok\Stok.exe,0');
  reg.CloseKey;
  reg.free;

end;
Bu şekilde çalışıyor. Bilg.yeniden başlatıldığındada programın ikonunu alıyor..

Teşekkürler!
Cevapla