Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.044 c
2-1184245623
ScorpioN2
2007-07-12 17:07
2007.08.12
Поменять имя программе


2-1184854326
kyro
2007-07-19 18:12
2007.08.12
Можно ли в дбшрид дважды загрузить данные


15-1184560988
de.
2007-07-16 08:43
2007.08.12
БД


15-1184498103
ламер2007
2007-07-15 15:15
2007.08.12
Win2003


1-1181049672
maxistent
2007-06-05 17:21
2007.08.12
Импорт процедур из EXE...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский