當我們雙擊乙個txt檔案的圖示時,系統就會用記事本開啟該檔案,這就是程式的關聯。那我們自己編寫的程式如何建立關聯檔案呢?
第一步:設定自己程式關聯的檔案型別
開啟資源下的string table,找到其中的idr_mainframe,雙擊該項,修改它的值,設它原來的值是:
texteditor\n\ntexted\n\n\ntexteditor.document\ntexted document
若你關聯的檔案型別為.txt,則把它改為:
texteditor\n\ntexted\n\n.txt\ntexteditor.document\ntexted document
第二步:在作業系統中註冊自己的程式
第三步:讀取外部的檔名
我們再把檔名讀入m_pathname中就行了,m_pathname = cmdinfo.m_strfilename;
以下為initinstance()函式中需要修改的部分:共加入了三條語句
csingledoctemplate* pdoctemplate;
pdoctemplate = new csingledoctemplate(
idr_mainframe,
runtime_class(ctexteditordoc),
runtime_class(cmainframe),
// main sdi frame window
runtime_class(ctexteditorview));
adddoctemplate(pdoctemplate);
enableshellopen();
//接收外部命令行
registershellfiletypes();
//在windows中註冊關聯檔案
// parse command line for standard shell commands, dde, file open
ccommandlineinfo cmdinfo;
parsecommandline(cmdinfo);
m_pathname = cmdinfo.m_strfilename;//讀取命令列中的檔名
// dispatch commands specified on the command line
if (!processshellcommand(cmdinfo))
return false;
第四步:利用收到的檔名開啟檔案
在文件類或視類的初始化部分檢測m_pathname的值,若它不是空串,則開啟並裝入該檔案:
如果你的文件是用序列化自動開啟的,也許不需要定義m_pathname,這一步可能也不需要做,這點我沒試過,你自己試試看吧。
第五步:在機器中找乙個關聯檔案,右鍵單擊它的圖示,從開啟方式中選擇你註冊過的程式。當然如果該類檔案原來沒有其它關聯程式,這一步可以不做,只要雙擊圖示就能開啟。
VC中建立程式的關聯檔案
當我們雙擊乙個txt檔案的圖示時,系統就會用記事本開啟該檔案,這就是程式的關聯。那我們自己編寫的程式如何建立關聯檔案呢?第一步 設定自己程式關聯的檔案型別 開啟資源下的string table,找到其中的idr mainframe,雙擊該項,修改它的值,設它原來的值是 texteditor n nt...
VC檔案關聯小結
最近的工程中要用到了vc中關於檔案關聯的操作,費了不少周折,這裡就簡單做乙個小結。1 使用enableshellopen自動完成登錄檔的註冊資訊 enable dde execute open enableshellopen registershellfiletypes true 通常情況下,也有加...
vc 實現檔案關聯
include include int main int argc,char argv 上面的函式是把字串中所有的 變為 char str 1 regsetvalue hkey classes root,exefile shell open command reg sz,lpctstr str,st...