Dosyayi programıyla açmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Dosyayi programıyla açmak
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ı?
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
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:
Kolay gelsin.
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;
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)
Saygılar
[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)

Saygılar
Bu şekilde oluyor
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;
Teşekkürler!