问题描述
在网上看到一个例程,把“AboutMe”加到窗口的系统菜单,程序如下,vb.net的:PublicClassForm1'–引用Win32ApiPrivateDeclareFunctionGetSystemMenuLib"user32"(ByValhWndAsIntPtr,ByValbRevertAsInt32)AsInt32PrivateDeclareFunctionInsertMenuLib"user32"Alias"InsertMenuA"(ByValhMenuAsInt32,ByValnPositionAsInt32,ByValwFlagsAsInt32,ByValwIDNewItemAsInt32,ByVallpNewItemAsString)AsInt32PrivateConstMF_BYCOMMAND=&H0&PrivateConstMF_BYPOSITION=&H400&PrivateConstMF_STRING=&H0&PrivateConstMF_SEPARATOR=&H800&PrivateConstWM_SYSCOMMAND=&H112PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadInsertMenu(GetSystemMenu(Me.Handle,False),0,MF_BYPOSITIONOrMF_SEPARATOR,2001,"")InsertMenu(GetSystemMenu(Me.Handle,False),0,MF_BYPOSITIONOrMF_STRING,2002,"AboutMe(&A)")EndSubProtectedOverridesSubWndProc(ByRefmAsSystem.Windows.Forms.Message)'类化窗口--覆盖WndProc过程Ifm.Msg=WM_SYSCOMMANDThenIfm.WParam.ToInt32=2002ThenMsgBox("AboutContext",vbInformation,"About...")EndIfEndIf'调用窗口默认的处理过程MyBase.WndProc(m)EndSubEndClass
突发奇想,能不能给记事本的系统菜单加入“Aboutme”呢?用spy++找到记事本的句柄,替换了InsertMenu里的me.handle,发现记事本的系统菜单加入了“Aboutme”,但是点击“Aboutme”没有任何反应,不会弹出MsgBox,请问这是为什么,要怎么样才能实现?
解决方案
解决方案二:
他是本进程的,你是跨进程的,你的消息只是在本进程用,所以没反应,你注册一个全局消息试试
解决方案三:
引用1楼bdmh的回复:
他是本进程的,你是跨进程的,你的消息只是在本进程用,所以没反应,你注册一个全局消息试试
怎么做全局消息?这个不懂啊!