測試環境:vc++ 6.0
批處理執行到一半就被強行關閉,實在是令編寫者不爽的事情。本教程就是讓大家學會,如何在控制台程式中無效化關閉按鈕。同樣,通過小改小動,也可以寫出屬於自己的第三方工具,讓批處理呼叫後達到無效化關閉按鈕的效果。
(注意:在任務管理器和工作列右鍵中還是可以關掉的)
關閉按鈕,是在系統選單中的。通過api函式enablemenuitem可以給關閉按鈕加上多種效果,包括無效化和灰化。
enablemenuitem需要得到選單的控制代碼,這就需要用到api函式getsystenmenu。getsystemmenu可以給出指定視窗的系統選單。
接下來,只需要獲得控制台視窗的控制代碼了。可以參考文章:vc 獲取控制台視窗的控制代碼(hwnd)
那麼,控制台視窗的控制代碼為hwnd的話,將關閉按鈕無效化的完整**為:
hmenu hmenu;
hmenu=getsystemmenu(hwnd,false);
enablemenuitem(hmenu,sc_close,mf_grayed|mf_bycommand);
同理,還可以將視窗的其他屬性灰化和無效化。
360雲盤
控制台 禁用關閉按鈕
控制台中禁止使用右上角的關閉按鈕,下面是核心 1 dllimport user32.dll entrypoint findwindow 2 extern static intptr findwindow string lpclassname,string lpwindowname 3 dllimpo...
vc 控制台視窗程式設計 自定義控制台視窗
include include include define rtn ok 1 define rtn err 0 int consoletest fillconsoleoutputcharacter hout,binfo.dwsize.x binfo.dwsize.y,pos,null 向視窗中填充...
沒有控制台視窗的控制台程式
include include pragma comment linker,subsystem windows entry maincrtstartup int main int argc,char argv 編譯後執行程式會彈出乙個訊息框,而沒有背後的控制台視窗。再看看下面的 include in...