C 開啟系統的關機 重啟對話方塊

2021-08-22 20:22:25 字數 1069 閱讀 7288

csdn上的問題:

要求顯示系統的關機/重啟對話方塊,即「開始->關機...」所出來的對話方塊

在網上搜尋了一下,shell32.dll中存在著微軟未公開的幾個函式:

shrestartsystemmb@12@59noname

shshutdowndialog@4@60noname

shrundialog@24@61noname

shchangeicondialog@16@62noname

shgetextension@4@31noname

shaddbackslash@4@32noname

shgetfilename@4@34noname

shpathisrelative@4@40noname

shpathi***e@4@43noname

shfileexists@4@45noname

shgetpathargs@4@52noname

shgetshortpathname@4@92noname

shobjectproperties@16@178noname

等等,那也許第60個函式就是想要的功能了。

因為以前經常用rundll32來執行dll庫中的函式,所以嘗試了一下:

rundll32.exe shell32.dll @60 執行結果:丟失條目 @60

使用depends檢視shell32.dll,在e列中會有個#,vb匯出函式時也用#,繼續嘗試

rundll32.exe shell32.dll #60 執行成功,出來了系統的關機對話方塊

所以程式設計時,也可以匯出這個函式調喚系統的關機對話方塊,參考:

下面是**:

[dllimport("shell32.dll",entrypoint="#60")]

internal

static

extern

intshshutdowndialog(intsig);

/**/

//////呼叫關閉對話方塊

///

///public

static

intinvokeshutdowndialog()

Qt自已建立開啟系統對話方塊

我們可以根據系統的對話方塊顯示內容,我們自己建立一些類似功能的介面,相對簡單如下 標頭檔案 ifndef customdeletefiledialog hpp define customdeletefiledialog hpp include include include include incl...

開啟對話方塊開啟多個檔案

專案中需要開啟多個檔案,注意的地方1 ofn allowmultiselect 2 m ofn.lpstrfile要分配大點的記憶體 我發現 用ctrl a全選檔案,檔名按從小到大加進去。用shift新增檔案,檔名不是按從小到大加進去的。cstring strfilepath cstring str...

MFC 實現開啟檔案對話方塊 儲存檔案對話方塊

cfiledialog cfiledialog bool bopenfiledialog,lpctstr lpszdefext null,lpctstr lpszfilename null,dword dwflags ofn hidereadonly ofn overwriteprompt,lpct...