c# winform 自动关闭messagebox 模拟回车

本文提供了一个使用C#实现的示例程序,该程序能在显示MessageBox三秒后自动关闭它。通过调用FindWindow和PostMessage两个API函数,程序能够定位到特定的MessageBox窗口并发送关闭消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 using System; 
 2 using System.Collections.Generic; 
 3 using System.ComponentModel; 
 4 using System.Data; 
 5 using System.Drawing; 
 6 using System.Text; 
 7 using System.Windows.Forms; 
 8 using System.Runtime.InteropServices; 
 9    
10 namespace WindowsApplication1 
11 { 
12     public partial class AutoDeleteMessageBox : Form 
13     { 
14         [DllImport("user32.dll", EntryPoint = "FindWindow", CharSet = CharSet.Auto)] 
15         private extern static IntPtr FindWindow(string lpClassName, string lpWindowName); 
16    
17         [DllImport("user32.dll", CharSet = CharSet.Auto)] 
18         public static extern int PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); 
19    
20         public const int WM_CLOSE = 0x10; 
21    
22         public AutoDeleteMessageBox() 
23         { 
24             InitializeComponent(); 
25         } 
26    
27         private void button1_Click(object sender, EventArgs e) 
28         { 
29             StartKiller(); 
30             MessageBox.Show("3秒钟后自动关闭MessageBox窗口", "MessageBox"); 
31         } 
32    
33         private void StartKiller() 
34         { 
35             Timer timer = new Timer(); 
36             timer.Interval = 3000; //3秒启动 
37             timer.Tick += new EventHandler(Timer_Tick); 
38             timer.Start(); 
39         } 
40    
41         private void Timer_Tick(object sender, EventArgs e) 
42         { 
43             KillMessageBox(); 
44             //停止Timer 
45             ((Timer)sender).Stop(); 
46         } 
47    
48         private void KillMessageBox() 
49         { 
50             //按照MessageBox的标题,找到MessageBox的窗口 
51             IntPtr ptr = FindWindow(null, "MessageBox"); 
52             if (ptr != IntPtr.Zero) 
53             { 
54                 //找到则关闭MessageBox窗口 
55                 PostMessage(ptr, WM_CLOSE, IntPtr.Zero, IntPtr.Zero); 
56             } 
57         } 
58     } 
59 }
View Code

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值