Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
ВнизПодскажите, как связать свой тип файлов к своей программе? Найти похожие ветки
← →
mmms (2007-07-16 14:18) [0]Есть свой формат файла, хотелось бы что бы в контексном меню проводника при нажатии правой клавиши мыши появлялся доп. пункт, при нажатии на который программа получала вызов + в качестве переметра - имя файла. Подскажите? Сморел в Delphi World, но что то ничего не нашел.
← →
asdddd (2007-07-16 14:23) [1]uses
Registry;
procedure AddFileMenue(FilePrefix, Menue, Command: string);
var
reg: TRegistry;
typ: string;
begin
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey("." + FilePrefix, True);
typ := ReadString("");
if typ = "" then
begin
typ := Fileprefix + "file";
WriteString("", typ);
end;
CloseKey;
OpenKey(typ + "\shell\" + Menue + "\command", True);
WriteString("", command + " "%1"");
CloseKey;
Free;
end;
end;
procedure DeleteFileMenue(Fileprefix, Menue: string);
var
reg: TRegistry;
typ: string;
begin
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_CLASSES_ROOT;
OpenKey("." + Fileprefix, True);
typ := ReadString("");
CloseKey;
OpenKey(typ + "\shell", True);
DeleteKey(Menue);
CloseKey;
Free;
end;
end;
{ Example / Beispiel:}
procedure TForm1.Button1Click(Sender: TObject);
begin
{ Register the Menuepoint: }
AddFileMenue("rtf", "Edit with Notepad", "C:\Windows\system\notepad.exe");
{
If you now click with the right mousebutton on a *.rtf-file then
you can see a Menuepoint: "Edit with Notepad".
When Click on that point Notepad opens the file.
Wenn man nun mit der rechten Maustaste im Explorer auf eine *.rtf-Datei Clickt,
dann erscheint dort der Menuepunkt "Edit with Notepad".
Beim Clicken darauf, цffnet Notepad diese Datei.
}
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
{
Unregister the Menuepoint / Undo your changes in the Registry:
Lцscht den Menuepunkt wieder aus der Registry:
}
DeleteFileMenue("rtf", "Edit with Notepad");
end;
Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php
← →
Dib@zol © (2007-07-16 14:26) [2]procedure TryIntegrate;
const
HKCR = HKEY_CLASSES_ROOT;
FileNick = "File_type";
fileType = "Файл для моей проги!!!";
open = "Атткрыть!";
ext = ".123";
iconNum = "0";
var
HK, TK : HKEY;
lps : PChar;
begin
if RegOpenKey(HKCR, ext, HK)<>0 then begin // No key!
RegCreateKey(HKCR, ext, HK);
RegSetValue(HK, nil, REG_SZ, FileNick, length(FileNick));
RegCloseKey(HK);
RegCreateKey(HKCR, FileNick, HK);
RegSetValue(HK, nil, REG_SZ, fileType, length(fileType));
RegCreateKey(HK, "DefaultIcon", TK);
lps:=PChar(ParamStr(0)+","+iconNum);
RegSetValue(TK, nil, REG_SZ, lps, length(lps));
RegCloseKey(TK);
RegCreateKey(HK, "shell", TK);
RegCreateKey(TK, "open", TK);
RegSetValue(TK, nil, REG_SZ, open, length(open));
RegCreateKey(TK, "command", TK);
lps:=PChar(ParamStr(0)+" %1");
RegSetValue(TK, nil, REG_SZ, lps, length(lps));
RegCloseKey(TK);
RegCloseKey(HK);
end;
end;
← →
mmms (2007-07-16 16:12) [3]
[1] asdddd (16.07.07 14:23)
[2] Dib@zol © (16.07.07 14:26)
Спасибо за код, премного благодарен!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c