Главная страница
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.027 c
8-1163045712
Lilu
2006-11-09 07:15
2007.08.12
DirectDraw и вывод текста под углом


9-1157737951
аматор
2006-09-08 21:52
2007.08.12
Низкий ФПС


2-1184331273
Wander
2007-07-13 16:54
2007.08.12
video в Делфи


15-1184238277
Михаил Сергеевич
2007-07-12 15:04
2007.08.12
Предложение создать среду разработки аналогичную 1С


1-1180448040
DevilDevil
2007-05-29 18:14
2007.08.12
TListBox.MultySelect.DragDrop.