c# 自動關閉messagebox
阿新 • • 發佈:2018-12-25
方法一:親測有效
---------------------------------------------------------------------------------------------------
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication1 { public partial classAutoDeleteMessageBox : Form { [DllImport("user32.dll", EntryPoint ="FindWindow", CharSet = CharSet.Auto)] private extern static IntPtr FindWindow(stringlpClassName, string lpWindowName); [DllImport("user32.dll", CharSet =CharSet.Auto)] public static extern int PostMessage(IntPtrhWnd, int msg, IntPtr wParam, IntPtr lParam); public const int WM_CLOSE = 0x10; public AutoDeleteMessageBox() { InitializeComponent(); } private void button1_Click(object sender,EventArgs e) { StartKiller(); MessageBox.Show("3秒鐘後自動關閉MessageBox視窗", "MessageBox"); } private void StartKiller() { Timertimer = new Timer(); timer.Interval = 3000; //3秒啟動 timer.Tick+= new EventHandler(Timer_Tick); timer.Start(); } private void Timer_Tick(object sender, EventArgse) { KillMessageBox(); //停止Timer ((Timer)sender).Stop(); } private void KillMessageBox() { //按照MessageBox的標題,找到MessageBox的視窗 IntPtr ptr= FindWindow(null, "MessageBox"); if (ptr !=IntPtr.Zero) { //找到則關閉MessageBox視窗 PostMessage(ptr, WM_CLOSE,IntPtr.Zero, IntPtr.Zero); } } } }
以上轉自http://blog.sina.com.cn/s/blog_8bab807301015n98.html
------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication1 { public partial classAutoDeleteMessageBox : Form { [DllImport("user32.dll", EntryPoint ="FindWindow", CharSet = CharSet.Auto)] private extern static IntPtr FindWindow(stringlpClassName, string lpWindowName); [DllImport("user32.dll", CharSet =CharSet.Auto)] public static extern int PostMessage(IntPtrhWnd, int msg, IntPtr wParam, IntPtr lParam); public const int WM_CLOSE = 0x10; public AutoDeleteMessageBox() { InitializeComponent(); } private void button1_Click(object sender,EventArgs e) { StartKiller(); MessageBox.Show("3秒鐘後自動關閉MessageBox視窗", "MessageBox"); } private void StartKiller() { Timertimer = new Timer(); timer.Interval = 3000; //3秒啟動 timer.Tick+= new EventHandler(Timer_Tick); timer.Start(); } private void Timer_Tick(object sender, EventArgse) { KillMessageBox(); //停止Timer ((Timer)sender).Stop(); } private void KillMessageBox() { //按照MessageBox的標題,找到MessageBox的視窗 IntPtr ptr= FindWindow(null, "MessageBox"); if (ptr !=IntPtr.Zero) { //找到則關閉MessageBox視窗 PostMessage(ptr, WM_CLOSE,IntPtr.Zero, IntPtr.Zero); } } } }
以上轉自http://blog.sina.com.cn/s/blog_8bab807301015n98.html
------------------------------------------------------------------------------------------------------------------------