C# 对话框弹出后3秒关闭

来源:互联网 发布:手机上怎么找淘宝链接 编辑:程序博客网 时间:2024/06/04 19:16

自己最近在做个自动采集的小软件,需要对话框弹出后如果无人操作会自动关闭,继续执行后边的代码。

可是百度了大半天也没有找到满意的结果,偶然逛了下论坛翻出了这个东东

MessageBoxTimeout


以下是百度上的函数简介

MessageBoxTimeout是一个微软未公开的Windows API函数。实现定时消息,功能类似于MessageBox。如果用户不回应,能定时关闭消息框。函数由user32.dll导出,windows2000及以下没有此函数。


原型
int MessageBoxTimeoutA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds);int MessageBoxTimeoutW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType, WORD wLanguageId, DWORD dwMilliseconds)[1] 

参数
hwnd//消息框的拥有窗口。lptext//消息框的内容。lpCaption//消息框的标题。uType//指定一个决定对话框的内容和行为的位标志集。取值参照函数MessageBox的参数uType。wLanguageId//函数扩展,一般取0。dwMilliseconds//消息框延迟关闭时间,单位:毫秒。
  
返回值
参照函数MessageBox的返回值。
如果超时,即用户未操作,消息框自动关闭,返回32000。



在C#中的用法

[DllImport("user32.dll")]        public static extern int MessageBoxTimeoutA(IntPtr hWnd,string msg,string Caps,int type,int Id,int time);//引用DLL MessageBoxTimeoutA((IntPtr )0,"3秒后自动关闭","消息框",0,0,3000);// 直接调用  3秒后自动关闭 父窗口句柄没有直接用0代替



原创粉丝点击