Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

Подскажите, как связать свой тип файлов к своей программе?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
15-1184193958
Германн
2007-07-12 02:45
2007.08.12
Отрицательные стороны совка


9-1157313285
_Razor_
2006-09-03 23:54
2007.08.12
Текстурирование ландшафтов


2-1184581112
mmms
2007-07-16 14:18
2007.08.12
Подскажите, как связать свой тип файлов к своей программе?


15-1184703140
Витян
2007-07-18 00:12
2007.08.12
Delphi 7 и Windows Vista


2-1184396614
Officeman
2007-07-14 11:03
2007.08.12
Как изравить от такого разделителя ?