skojarzenie rozszerzenia z programem

0

Witam

Znalazlem tutaj bardzo fajny artykul o przypisywaniu rozszerzen do plikow w rejestry, chcialem go lekko przerobic ale natrafilem na schody, a mianowicie: przypisuje plik o rozszerzeniu *.axyz4 do Scalc (Openoffice) i bierze mi go za plik tekstowy a jest on plikiem typu DBase. Jak mu nadac inny atrybut pliku??

var moje_rozszerzenie, sciezka_prog : String; //rozszerzenie naszego pliku
Reg : TRegistry;
begin
//teraz rejestrujymy swoje rozszerzenie
moje_rozszerzenie := 'axyz4'; //nazwa rozszerzenia
sciezka_prog := 'C:\Program files\OpenOffice.org 2.2\Program\scalc.exe'; // sciezka ikony
//Teraz definiujemy to rozszerzenie w rejestrze
try
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.OpenKey('.' + moje_rozszerzenie, True); //tworzy klucz w rejestrze o nazwie dla nas np ".xyz"
Reg.WriteString('', AnsiUpperCase(moje_rozszerzenie) + 'dbase'); //tworzy wartoϾ zawierajaca
//nazwe klucza w rejestrze gdzie bed¹
//znajdowa³y siê dane na
//temat naszego pliku dla nas "XYZfile"
Reg.CloseKey(); //zamykamy ten klucz i idziemy dalej
Reg.OpenKey(AnsiUpperCase(moje_rozszerzenie) + 'file', True); //tworze powy¿szy klucz
//teraz podaje opis naszego pliku
Reg.WriteString('','Plik '+moje_rozszerzenie); //w miejsce kropek podajesz nazwê swojego programu
Reg.CloseKey(); //zamykamy ten klucz i idziemy dalej
//teraz przypisujemy plikowi ikonê
Reg.OpenKey(AnsiUpperCase(moje_rozszerzenie) + 'file\DefaultIcon', True);
Reg.WriteString('',sciezka_prog + ',0');
Reg.CloseKey(); //zamykamy ten klucz i idziemy dalej
//teraz tworzymy mo¿liwoœæ otwierania pliku w naszym programie
Reg.OpenKey(AnsiUpperCase(moje_rozszerzenie) + 'file\shell\open', True);
Reg.WriteString('','&Otwórz'); //etykieta pozycji w menu kontekstowym
Reg.CloseKey();
Reg.OpenKey(AnsiUpperCase(moje_rozszerzenie) + 'file\shell\open\command', True);
Reg.WriteString('',sciezka_prog + ' "%1"');
Reg.CloseKey();
finally
Reg.Free;
end;

0

z tego co wiem z praktyki nie da rady - OO sam sprawdza typ pliku i otwiera go w - jego zdaniem - najlepszym module.

1 użytkowników online, w tym zalogowanych: 0, gości: 1