zoukankan      html  css  js  c++  java
  • C# WinForm MessageBox弹窗倒计时的自动关闭

            [DllImport("user32.dll", EntryPoint = "FindWindow")]
            private static extern IntPtr FindWindow(string IpClassName, string IpWindowName);
            [DllImport("User32.dll", CharSet = CharSet.Auto)]
            public static extern int SetWindowText(IntPtr hWnd, string text);

            [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
            private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
            /// <summary>
            [DllImport("user32.dll", EntryPoint = "SendMessage")]
            private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
            const int WM_CLOSE = 0x10;
            const int BM_CLICK = 0xF5;
            int FunCord;
            IntPtr hwnd;
            int t;
            private void button1_Click(object sender, EventArgs e)
            {
                FunCord = 1;
                t = 5;
                timer1.Enabled = true;
                MessageBox.Show("系统关机提示: 确认关机请点击【确定】 继续使用请点击【取消】", "系统将于" + t + "秒后关机", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
                MessageBox.Show("直接关闭");

            }
            private void timer1_Tick(object sender, EventArgs e)
            {
                if (FunCord == 1)
                {
                    hwnd = FindWindow(null, "系统将于" + t.ToString() + "秒后关机");
                    t = t - 1;
                    SetWindowText(hwnd, "系统将于" + t.ToString() + "秒后关机");
                    if (t == 0)
                    {
                        timer1.Enabled = false;
                        SendMessage(hwnd, WM_CLOSE, 0, 0);
                    }
                }
                else if (FunCord == 2)
                {
                    hwnd = FindWindow(null, "关机提示");
                    IntPtr a = FindWindowEx(hwnd, (IntPtr)null, null, "系统将于" + t.ToString() + "秒后关机");
                    t = t - 1;
                    SetWindowText(a, "系统将于" + t.ToString() + "秒后关机");
                    if (t == 0)
                    {
                        timer1.Enabled = false;
                        SendMessage(hwnd, WM_CLOSE, 0, 0);
                    }
                }
                else if (FunCord == 3)
                {
                    hwnd = FindWindow(null, "系统将于" + t.ToString() + "秒后关机");
                    t = t - 1;
                    SetWindowText(hwnd, "系统将于" + t.ToString() + "秒后关机");
                    if (t == 0)
                    {
                        IntPtr OKHwnd = FindWindowEx(hwnd, IntPtr.Zero, null, "确定");
                        SendMessage(OKHwnd, BM_CLICK, 0, 0);
                        timer1.Enabled = false;
                    }
                }
                else if (FunCord == 4)
                {
                    hwnd = FindWindow(null, "系统将于" + t.ToString() + "秒后关机");
                    t = t - 1;
                    SetWindowText(hwnd, "系统将于" + t.ToString() + "秒后关机");
                    if (t == 0)
                    {
                        IntPtr OKHwnd = FindWindowEx(hwnd, IntPtr.Zero, null, "取消");
                        SendMessage(OKHwnd, BM_CLICK, 0, 0);
                        timer1.Enabled = false;
                    }
                }
            }
            private void button2_Click(object sender, EventArgs e)
            {
                FunCord = 2;
                t = 5;
                timer1.Enabled = true;
                MessageBox.Show("系统将于" + t + "秒后关机", "关机提示");
                timer1.Enabled = false;
            }

            private void Form1_Load(object sender, EventArgs e)
            {

            }

            private void button3_Click(object sender, EventArgs e)
            {
                FunCord = 3;
                t = 5;
                timer1.Enabled = true;
                if (MessageBox.Show("系统关机提示: 确认关机请点击【确定】 继续使用请点击【取消】", "系统将于" + t + "秒后关机", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                {
                    MessageBox.Show("点击了确定");
                }
                timer1.Enabled = false;
            }

            private void button4_Click(object sender, EventArgs e)
            {
                FunCord = 4;
                t = 5;
                timer1.Enabled = true;
                if (MessageBox.Show("系统关机提示: 确认关机请点击【确定】 继续使用请点击【取消】", "系统将于" + t + "秒后关机", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Cancel)
                {
                    MessageBox.Show("点击了取消");
                }
                timer1.Enabled = false;
            }

    原文链接:https://www.itsvse.com/thread-4806-1-4.html

  • 相关阅读:
    Unity 3D:控制相机旋转、移动、缩放等功能
    电子公文传输系统验收3-开发环境
    冲刺 day7
    电子公文传输系统2-贡献排序
    程序运行
    实验三-电子公文传输系统1-个人贡献
    thread同步测试
    第五章学习总结
    第三周学习java第四章学习总结及体会!
    第一章学习过程问题小结
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/11197277.html
Copyright © 2011-2022 走看看