已經實作了雙擊檔案后可以打開關聯的應用程式,但是現在設定應用程式只能開啟一個,那么問題來了:
如果應用程式先打開了,那么雙擊檔案后要怎么將檔案的資訊傳給程式?哪位大神指導一下,謝謝!
下面是實作的代碼:
//注冊表關聯檔案
QString strRegeditPath = "HKEY_CURRENT_USER\\Software\\Classes";
QString className = "km.ktf";
QString appPath = QApplication::applicationFilePath();
appPath.replace('/','\\');
QString extName = ".ktf";
QString extDesName = "ktf檔案";
QSettings setting(strRegeditPath,QSettings::NativeFormat);
//判斷注冊表是否已經存在
QString qsValue = setting.value("/" + className + "/.",true).toString();
if (!qsValue.isEmpty()){
qDebug()<<"qsValue = "<<qsValue;
return;
}
// 在...Classes\類別下創建一個新的類別,并設定該類別打開檔案時的呼叫引數
setting.setValue("/" + className + "/Shell/Open/Command/.","\"" + appPath + "\" \"%1\"");
// 檔案型別描述
setting.setValue("/" + className + "/.",extDesName);
// 設定該類別的默認圖示默認圖示
setting.setValue("/" + className + "/DefaultIcon/.",appPath + ",0");
// 關聯ext 和 類別
setting.setValue("/" + extName + "/OpenWithProgIds/" + className,"");
// 立即保存該修改
setting.sync();
uj5u.com熱心網友回復:
簡單的方法就是:使用共享記憶體,在記憶體中設定標識,讀取該標識則可判斷程式是否已經運行。uj5u.com熱心網友回復:
這個是設定程式只運行一個的吧,我想問的是如果程式已經開啟了,我雙擊檔案后,要如何把檔案關聯到開啟的這個程式,而不用另外開啟,就像先運行了word程式,然后雙擊一個word檔案后,怎么將這個檔案直接在這個開啟的word程式里開啟
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/72476.html
標籤:Qt
上一篇:QT呼叫vs編譯的庫 出現的錯誤Building MFC application with /MD[d] (CRT dll version) requires
下一篇:Android ndk報錯 急求
