VC中建立程式的關聯檔案

2021-06-08 08:24:11 字數 1429 閱讀 2619

當我們雙擊乙個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...