当前位置: 首页 > 编程语言 > C#

在c#中使用WINAPI单击消息框的“确定”按钮分享

时间:2023-04-11 11:42:03 C#

C#学习教程:在c#中使用WINAPI点击消息框的“确定”按钮下面是我正在处理的代码。私人常量intWM_CLOSE=16;私人常量intBN_CLICKED=245;[DllImport("user32.dll",CharSet=CharSet.Auto)]publicstaticexternintSendMessage(inthWnd,intmsg,intwParam,IntPtrlParam);[DllImport("user32.dll",SetLastError=true)]publicstaticexternIntPtrFindWindowEx(IntPtrparentHandle,IntPtrchildAfter,stringclassName,stringwindowTitle);//这有效hwnd=FindWindow(null,"Message");如果(hwnd!=0)SendMessage(hwnd,WM_CLOSE,0,IntPtr.Zero);//这是行不通的。hwndChild=FindWindowEx((IntPtr)hwnd,IntPtr.Zero,"Button","ok");SendMessage((int)hwndChild,BN_CLICKED,0,IntPtr.Zero);虽然我在hwndChild中得到一个值,但它不识别BN_CLICKED。我不确定我错过了什么。有帮助吗?我正在尝试关闭来自另一个应用程序的消息框按钮,这就是我正在做的事情。但是,我仍然缺少一些东西。IntPtrhwndChild=IntPtr.Zero;hwndChild=FindWindowEx((IntPtr)hwnd,IntPtr.Zero,''"按钮","确定");SendMessage((int)hwndChild,WM_COMMAND,(BN_CLICKED'<<16)|IDOK,hwndChild);BN_CLICKED不是消息。您需要发送一个WM_COMMAND消息,其中包含BN_CLICKED通知和WParam中的按钮ID以及lParam中的按钮句柄。按钮的父窗口通过WM_COMMAND消息接收此通知代码。私有结构WM_COMMAND=0x0111;私人常量intBN_CLICKED=245;私有常量IDOK=1;[DllImport("user32.dll",CharSet=CharSet.Auto)]publicstaticexternintSendMessage(IntPtrhWnd,uintmsg,intwParam,IntPtrlParam);[DllImport("user32.dll",SetLastError=true)]publicstaticexternIntPtrFindWindowEx(IntPtrparentHandle,IntPtrchildAfter,stringclassName,stringwindowTitle);SendMessage(hwndChild,WM_COMMAND,(BN_Fin对我有用。第一次点击可能激活窗口,第二次点击按钮。以上就是C#学习教程:在c#中使用WINAPI点击消息框“确定”按钮,分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注---SendMessage(btnHandle,WM_LBUTTONDOWN,0,0);SendMessage(btnHandle,WM_LBUTTONUP,0,0);SendMessage(btnHandle,WM_LBUTTONDOWN,0,0);SendMessage(btnHandle,WM_LBUTTONUP,0,0);如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢