C# 窗口模拟点击按钮或关闭窗口
public class CloseForm
{
[DllImport("user32", EntryPoint = "FindWindow")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll", EntryPoint = "FindWindowEx")]
private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern void SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, int lParam); private const int WM_CLOSE = 0x10;//关闭
private const int BM_CLICK = 0xF5;//点击 private DateTime dt = DateTime.Now;//当前时间 private string MsgTitle { get; set; } public void CloseTitleForm(string title)
{
this.MsgTitle = title;
System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Interval = 1000;
timer1.Enabled = true;
//MessageBox.Show("若不回應的話,X秒後此 MsgBox 會自動關閉", MsgTitle);
//timer1.Enabled = false;
} private void timer1_Tick(object sender, EventArgs e)
{
IntPtr hWnd = FindWindow(null, MsgTitle);
//窗体按钮
IntPtr childHwnd = FindWindowEx(hWnd, IntPtr.Zero, null, "是(&Y)");
if (childHwnd != IntPtr.Zero)
{
//模拟点击 是(&Y)
SendMessage(childHwnd, BM_CLICK, IntPtr.Zero, 0);
}
else
{
//没有找到按钮则关闭
SendMessage(hWnd, WM_CLOSE, IntPtr.Zero, 0);
}
if (DateTime.Now.Subtract(dt).TotalSeconds > 10)
{
//10秒后停止执行
((System.Windows.Forms.Timer)sender).Stop();
}
}
}
C# 窗口模拟点击按钮或关闭窗口的更多相关文章
- lhgdialog在打开的窗口里点击按钮关闭当前窗口
lhgdialog在打开的窗口里点击按钮关闭当前窗口 var api = frameElement.api, W = api.opener; api.close();
- win32 htmlayout点击按钮创建新窗口,以及按钮图片样式
最近在做一个C++ win32的桌面图形程序,我不是C++程序员,做这个只是因为最近没什么java的活. windows api,之前接触的时候,还是大学,那时用这个开发打飞机游戏纯粹是娱乐.现在基本 ...
- TProcedure,TMethod,TNotifyEvent,TWndMethod的区别,并模拟点击按钮后发生的动作
忽然发现TProcedure和TNotifEvent的区别还挺大的: procedure TForm1.Button2Click(Sender: TObject); begin ShowMessage ...
- JS点击按钮弹出窗口
由于没有系统学习过JS,遇到一个需求:点击按钮,弹出一个独立的窗口. 在网上百度了一下,并没有找到满意的结果,最重要的是各种方法很复杂.最终,仔细研究了一下,原来只是需要只要一个简单的函数就能满足自己 ...
- mui 对话框 点击按钮不关闭对话框的办法
目前版本的 mui.js 点击对话框的按钮只能关闭对话框 做如下修改 点击按钮后return false 即可
- JavaScript-打开新窗口(window.open)和 关闭窗口(window.close)
JavaScript-打开新窗口 open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: window.open([URL], [窗口名称], [参数字符串]) 参数说明: URL:可选 ...
- C#根据弹窗标题获取窗体句柄并模拟点击按钮(FindWindow,FindWindowEx,SendMessage)
任务:将下面弹窗自动关闭 /// <summary> /// 找到窗口 /// </summary> /// <param name="lpClassName& ...
- alert弹出窗口,点击确认后关闭页面
alert("点击确认后,关闭页面"); window.opener=null;window.top.open('','_self','');window.close(this);
- java jframe关闭窗口
frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { i ...
随机推荐
- Andrew Ng-ML-第十章-应用机器学习的建议
1.如何改进性能不好的学习算法 图1.运用到测试集上效果不佳 当进行一个正则化线性回归时,最小化了代价函数得到参数,但是运用到新的测试集上,发现效果不好,那么如何改进? 1).增加训练集.但是实际上花 ...
- Sublime text 3搭建Python-Anaconda开发环境
网络上的教程各种各样,大同小异.自己安装时还是出了些问题,因此总结一篇博文. Sublime Text 是一款轻量级跨平台的文本编辑器,可通过包(Package)扩充自身功能. 有很多搭建python ...
- python 全局变量与局部变量
一.引用 使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加global关键字.如: #! /usr/bin/python a = 1 b = [2, 3] def func(): if ...
- Java jdbc 操作数据库详解
原文地址https://www.cnblogs.com/huguodong/p/5910859.html JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- UNDFTD x Nike Air Max 97 OG Black
The UNDFTD x Nike Air Max 97 OG Black is releasing way sooner than anticipated. This collaborative r ...
- 1.0ARM体系结构-ARM体系结构
对ARMcpu有整体而专业的认识. ARM只是设计arm核,而不生产. ARM 掌握的是标准.
- 软件包管理:rpm包管理-yum在线管理-IP地址配置和网络yum源
只需告诉系统你想安装那个包,剩下的所有依赖问题yum都会解决. 有些情况下不能上网,但可以使用光盘. centos的yum是免费的.redhatyum付费. yum管理的其实同样是rpm包.并没有yu ...
- Perl的子程序(二)
在Perl中可以自己创建子程序(Subroutine): 关键字sub,子程序名以及用花括号封闭起来的代码块. sub marine { ... } 子程序名与标量的命名空间是不同的两个部分. 子程 ...
- Perl的变量及语境(一)
Perl语言中的大部分语句表达式后都紧接一个分号,分隔不同的Perl语句. perl解释器能一次完成编译和运行这两个动作. perl通过一对反引号"``"来表示运行外部命令. 也可 ...
- n的二进制中有几个1
实例十七:n的二进制中有几个1 方法:result=n & (n-1) n&(n-1)的目的使最低位的1不断翻转. 比如:n=108,其二进制表示为0110 1100,则n& ...