我写了一个类似记事本的程序,保存文件后怎样双击保存的文件,然后调用这个程序打开读取里面的内容呢?

解决方案 »

  1.   

    写个注册表文件file.reg,加入系统注册表。如下
    REGEDIT
    HKEY_CLASSES_ROOT\.文件扩展名 = 文件类型名称
    HKEY_CLASSES_ROOT\文件扩展名.Document\shell\open\command = 可执行文件名 %1
    HKEY_CLASSES_ROOT\文件扩展名.Document\shell\open\ddeexec = [open("%1")]
    HKEY_CLASSES_ROOT\文件扩展名.Document\shell\open\ddeexec\application = 可执行文件名缩写HKEY_CLASSES_ROOT\文件扩展名.Document = 文件类型名称
      

  2.   

    需要兩個:
    1.注冊文件關聯;//這一步是為了讓你在雙擊是得到文件的路徑參數;
    2.將路徑參數傳遞給你自己寫的程序;
    //這裡你可以在窗體的Create或者Show中判斷paramstr(1)這個參數,得到雙擊的文件名稱,打開之...
      

  3.   

    var
      lphKey: HKEY;
      sKeyName: string;
      sKeyValue: string;
    begin
      sKeyName := 'myfile';
      sKeyValue := '我的文档';
      RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);
      RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0);
      sKeyName := '.xyz';
      sKeyValue := 'myfile';
      RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);
      RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0);
      sKeyName := 'myfile';
      sKeyValue := 'c:\Windows\NotePad.exe %1';
      RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey);
      RegSetValue(lphKey, 'shell\open\command', REG_SZ, pchar(sKeyValue), MAX_PATH);
    end;