日期:2014-05-20  浏览次数:20980 次

如何让C# 控制台程序关闭按钮无效
我主要是想当用户点击控制台程序的右上角时,控制台程序不关闭,必须输入指定的字符,控制台才关闭。请高手帮忙!

------解决方案--------------------
用FindWindow查找控制台窗口,用找到后的窗体句柄调用GetSystemMenu,然后调用RemoveMenu把关闭窗体移除后关闭控钮就灰到不可用了.
------解决方案--------------------
Private Shared SC_CLOSE As Integer = &HF060
Private Shared MF_BYCOMMAND As Integer = &H0

<DllImport( "USER32.DLL ")> _
Private Shared Function _
GetSystemMenu(ByVal argWnd As IntPtr, ByVal argRevert As Integer) As IntPtr
End Function

<DllImport( "USER32.DLL ")> _
Private Shared Function _
RemoveMenu(ByVal argMenu As IntPtr, ByVal argPosition As Integer, ByVal wFlags As Integer) As Integer
End Function

调用:
Dim aoMenu As IntPtr = GetSystemMenu(Me.Handle, 0)
RemoveMenu(aoMenu, SC_CLOSE, MF_BYCOMMAND)