全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1359
推到 Plurk!
推到 Facebook!

如何利用檔案總管開啟TXT檔?

尚未結案
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-12-13 01:58:53 IP:220.137.xxx.xxx 未訂閱
弟已經完成一個可以編輯及繪圖的程式,開檔及存檔都沒有問題, 不過有一個技術問題尚無法克服,懇請前輩高手指點迷津... 就是在檔案總管按右鍵.內容.變更.開啟檔案.指定弟寫的程式.exe後, 在檔案總管雙擊一個檔名時,也正常的啟動程式了, 可是一直無法自動開啟此檔案,都還需用OpenDialog來開啟, 這原因是因為我的程式無法獲得檔案總管雙擊時的FileName, 請問有無方法或對策來解決此技術問題? (因為要開啟的檔案是由別的程式呼叫ShellExe來開啟,所以只能改變檔案總管的開啟檔案選擇用我寫的程式)
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-12-13 16:52:04 IP:220.130.xxx.xxx 未訂閱
 
程式之間是不是可以藉由command line parameter來傳遞檔名?      ParamStr()
  
  ParamCount()    
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-12-13 22:11:58 IP:61.56.xxx.xxx 未訂閱
如過是要直接指定檔案關聯來開啟,我的作法是應用程式必須能接受參數,然後直接修改機碼達到檔案關聯的目的。例如指定*.abc檔案由我的應用程式開啟:
    const MyAppPath = 'C:\WINNT\MyProgram.exe';    procedure TForm1.SetFileAssociation;
var reg:TRegistry;
    FileType_:string;
begin
  reg:=TRegistry.Create;
  reg.RootKey:=HKEY_CLASSES_ROOT;
  try
    if reg.OpenKey('.abc',true) then
      begin
        if reg.ReadString('')='' then reg.WriteString('','MyFileFormat');
        FileType_:=reg.ReadString('');
        reg.CloseKey;
        if reg.OpenKey(FileType_ '\Shell\open\command',true) then
          begin
            reg.WriteString('',MyAppPath ' "%1"');
            reg.CloseKey;
            SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST,nil,nil);
          end;
      end;
  finally
    reg.Free;
  end;
end;
系統時間:2024-05-02 8:07:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!