一个操作windows窗口的类“clsWindow”,使用非常方便!含源码 V2.2

70 篇文章 5 订阅

通过github下载本框架:https://github.com/sysdzw/clswindow 先点击右边的绿色按钮,然后再点击蓝色按钮

使用手册:https://www.kancloud.cn/sysdzw/clswindow/

使用范例:https://www.kancloud.cn/sysdzw/clswindow/1488906

 

功能描述

clsWindow是VB6环境下使用的一个操作外部程序窗口的类,比如得到窗口句柄,得到窗口里某个文本框的内容。非常方便,使用它可以让您脱身于一堆api函数,功能强大使用简单!


这个类楼主很早就开始封装了,原本打算做成类似DOM对象那样,通过一堆getElmentByXXX等方法实现对桌面程序下各个窗口以及里面各个控件对象的自由访问,但是具体要做的工作太多,目前只实现了一部分,期待大家一起加入更新维护。

目前该类封装了绝大部分对windows窗口的常用操作,例如:获取窗口句柄,设置窗口为活动窗口,设置窗口内文本框内容,点击窗口内的某些按钮等。

这个类现在还在一直不断地扩充,功能已经很强大很广泛,使用它可以轻而易举地设置窗口标题栏文字,移动窗体等等。以前要实现这些操作常常需要一大堆api函数,现在只需要一点点代码就可以了,完全让您脱身于api函数的海洋。当然您需要研究每个方法实现原理的话可以看一看源代码。


 

使用范例(请在v1.9以上测试):

1)关闭腾讯新闻窗口“腾讯网迷你版”。
 

Dim window As New clsWindow
If window.GetWindowByTitle("腾讯网迷你版").hWnd <> 0 Then
    window.CloseWindow  '关闭窗口
End If

 

以上是不是很简洁呢?

 

 

20150715更新追加:

最新1.9版本更简洁,一句话解决:

w.GetWindowByTitle("腾讯网迷你版").CloseWindow

小伙伴,是不是简洁爆了呢?:)

为了防止程序找不到窗口而一直等待可以改成:

w.GetWindowByTitle("腾讯网迷你版",1).CloseWindow

(意思为超时等待1秒。默认会耐心等60秒。除非你确定窗口一定会有,那么就用上面的不带延时1秒的。)


2)获取某个打开的记事本里面的内容。假设记事本标题为“测试.txt - 记事本”,通过SPY等工具查看得知记事本的文本框类名为:Edit,那么我们编写程序如下:

Dim window As New clsWindow
If window.GetWindowByTitle("测试.txt - 记事本").hWnd <> 0 Then
    MsgBox window.GetElementTextByClassName("Edit")
End If


这个看起来也很简单,方法自由还可以使用正则匹配,可以写成下面这样:
 

Dim window As New clsWindow
If window.GetWindowByTitleEx("测试\.txt.*?", , , True).hWnd <> 0 Then
    MsgBox window.GetElementTextByClassName("Edi", , True) '第三个参数表示是否使用正则,默认为false
End If

 

获取标题那边如果觉得要把标题写完整太麻烦,可以将GetWindowByTitle改成GetWindowByTitleEx然后后面只要写关键字就行啦。看招:

Dim window As New clsWindow
If window.GetWindowByTitleEx("测试").hWnd <> 0 Then
    MsgBox window.GetElementTextByClassName("Edit")
End If

应用参考:https://bbs.csdn.net/topics/390435884

 

更多演示案例:

01 控制微信发送消息
02 控制QQ发送消息
03 QQ登录器
04 花式调用计算器
05 用鼠标画圆
06 控制记事本输入并保存
07 随机移动鼠标防锁屏
08 根据ID进入腾讯课堂
09 实战:微便签-窗口特效
10 实战:窗口图钉-窗口置顶

 

 

 

 

 

 

类成员结构图 V2.2:

 


clsWindow类最新版下载请关注博客:
http://blog.csdn.net/sysdzw/article/details/9083313

 

使用集锦:

对于一个窗体中存在多个相同类名的输入框该如何区分填写?

https://blog.csdn.net/sysdzw/article/details/100088981

sysdzw
QQ:171977759


15:09 2013-6-13

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 20
    评论
clsWindow是VB6环境下使用一个操作外部程序窗口,比如得到窗口句柄,得到窗口里某个文本框的内容。非常方便使用它可以让您脱身于一堆api函数,功能强大使用简单! 这个楼主很早就开始封装了,原本打算做成似DOM对象那样,通过一堆getElmentByXXX等方法实现对桌面程序下各个窗口以及里面各个控件对象的自由访问,但是具体要做的工作太多,目前只实现了一部分,期待大家一起加入更新维护。 目前该封装了绝大部分对windows窗口的常用操作,例如:获取窗口句柄,设置窗口为活动窗口,设置窗口内文本框内容,点击窗口内的某些按钮等。 这个现在还在一直不断地扩充,功能已经很强大很广泛,使用它可以轻而易举地设置窗口标题栏文字,移动窗体等等。以前要实现这些操作常常需要一大堆api函数,现在只需要一点点代码就可以了,完全让您脱身于api函数的海洋。当然需要您需要研究每个方法实现原理的话可以看一看源代码。 使用范例: 1)关闭腾讯新闻窗口“腾讯网迷你版”。 Dim window As New clsWindow If window.GetWindowHwndByTitle("腾讯网迷你版") > 0 Then window.CloseWindow '关闭窗口 End If 以上是不是很简洁呢? 2)获取某个打开的记事本里面的内容。假设记事本标题为“测试.txt - 记事本”,通过SPY等工具查看得知记事本的文本框名为:Edit,那么我们编写程序如下: Dim window As New clsWindow If window.GetWindowHwndByTitle("测试.txt - 记事本") > 0 Then MsgBox window.GetElementTextByClassName("Edit") End If 这个看起来也很简单,方法自由还可以使用正则匹配,可以写成下面这样: Dim window As New clsWindow If window.GetWindowHwndByTitleRegExp("测试\.txt.*?") > 0 Then MsgBox window.GetElementTextByClassName("Edi", , True)'第三个参数表示是否使用正则,默认为false End If 更多演示案例: 演示程序一(关闭包“扫雷、蜘蛛纸牌”等系统自带游戏的窗口): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo1.rar 演示程序二(调用系统计算器,点击里面的按钮进行计算): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo2.rar 演示程序三(激活移动外部程序窗口): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo3.rar 演示程序四(调用系统计算器,花样移动出现,效果很好): http://files.cnblogs.com/sysdzw/clsWindow1.7_demo4.rar 成员以及各个使用方法如下: clsWindow下载地址: http://download.csdn.net/user/sysdzw clsWindow最新版下载请关注博客: http://blog.csdn.net/sysdzw/article/details/9083313 '=================================================================================== '描 述:一个操作windows窗口,可对窗口进行很多常用的操作(名为clsWindow) '使用范例:Dim window As New clsWindow ' window.GetWindowHwndByTitle "计算器" ' window.closeWindow '编 程:sysdzw 原创开发,如果有需要对模块扩充或更新的话请邮箱发我一份,共同维护 '发布日期:2013/06/01 '博 客:http://hi.baidu.com/sysdzw ' http://blog.csdn.net/sysdzw 'Email :[email protected] 'QQ :171977759 '版 本:V1.0 初版 2012/12/03 ' V1.1 修正了几个正则相关的函数,调整了部分结构 2013/05/28 ' V1.2 增加属性Caption,可以获取或设置当前标题栏 2013/05/29 ' V1.3 增加了方法Focus,可以激活当前窗口 2013/06/01 ' 增加了方法Left,Top,Width,Height,Move,处理窗口位置等 ' V1.4 增加了窗口位置调整的几个函数 2013/06/04 ' 增加了得到应用程序路径的函数AppName ' 增加了得到应用程序启动参数的函数AppCommandLine ' V1.5 增加了窗口最大最小化,隐藏显示正常的几个函数 2013/06/06 ' 增加了获取控件相关函数是否使用正则的参数UseRegExp默认F ' V1.6 将Left,Top函数改为属性,可获得可设置 2013/06/10 ' V1.7 增加了CloseApp函数,可以结束进程 2013/06/13 ' 修正了部分跟正则匹配相关的函数 ' 增加函数:GetElementTextByText ' 增加函数:GetElementHwndByText '===================================================================================
'============================================================================================== '名 称:windows窗体控制类v2.2 '描 述:一个操作windows窗口,可对窗口进行很多常用的操作(名为clsWindow) '使用范例:Dim window As New clsWindow ' window.GetWindowByTitle("计算器").closeWindow '编 程:sysdzw 原创开发,如果有需要对模块扩充或更新的话请邮箱发我一份,共同维护 '发布日期:2013/06/01 '博 客:https://blog.csdn.net/sysdzw '用户手册:https://www.kancloud.cn/sysdzw/clswindow/ 'Email :[email protected] 'QQ :171977759 '版 本:V1.0 初版 2012/12/03 ' V1.1 修正了几个正则相关的函数,调整了部分结构 2013/05/28 ' V1.2 增加属性Caption,可以获取或设置当前标题栏 2013/05/29 ' V1.3 增加了方法Focus,可以激活当前窗口 2013/06/01 ' 增加了方法Left,Top,Width,Height,Move,处理窗口位置等 ' V1.4 增加了窗口位置调整的几个函数 2013/06/04 ' 增加了得到应用程序路径的函数AppName ' 增加了得到应用程序启动参数的函数AppCommandLine ' V1.5 增加了窗口最大最小化,隐藏显示正常的几个函数 2013/06/06 ' 增加了获取控件相关函数是否使用正则的参数UseRegExp默认F ' V1.6 将Left,Top函数改为属性,可获得可设置 2013/06/10 ' V1.7 增加函数:CloseApp 结束进程 2013/06/13 ' 修正了部分跟正则匹配相关的函数 ' 增加函数:GetElementTextByText ' 增加函数:GetElementHwndByText ' V1.8 增加函数:GetWindowByClassName 2013/06/26 ' 增加函数:GetWindowByClassNameEx ' 增加函数:GetWindowByAppName ' 增加私有变量hWnd_ ' 增加属性hWnd,可设置,单设置时候会检查,非法则设置为0 ' 更新GetWindowByTitleEx函数,使之可以选择性支持正则 ' 删除GetWindowByTitleRegExp函数,合并到上面函数 ' 增加SetFocus函数,调用Focus实现,为了是兼容VB习惯 ' 扩了ProcessID、AppPath、AppName、AppCommandLine三个函数,可带参数 ' 网友wwb([email protected])提供了一些函数和方法属性: ' CheckWindow, Load, WindowState, Visible, hDC, ZOrder ' AlphaBlend, Enabled, R
vb群发消息软件源码,本程序是用vb6在clswindow2.1基础上开发的,是对微信客户端进行自动化处理的,完全模拟手工操作,稳定且绝度安全,不会被封。懂代码的可以稍微修改变成定时群发,批量指定目标人群群发。绝对物超所值,代码浅显易懂。 这种非常实用的软件作者选择开源,不像一些同行,摸通了一点技术就藏着掖着,没有共享精神,作者再此完全开源,没有dll没有ocx,clswindow2.1库也是作者精心打造可以用于许多自动化操作方面,非常方便。 各位觉得好麻烦给5分好评。 下面附带一下clswindow2.1更新记录,算是2.1这版本的非正式发布吧。 '============================================================================================== '名 称:windows窗体控制类v2.1 '描 述:一个操作windows窗口,可对窗口进行很多常用的操作(名为clsWindow) '使用范例:Dim window As New clsWindow ' window.GetWindowByTitle("计算器").closeWindow '编 程:sysdzw 原创开发,如果有需要对模块扩充或更新的话请邮箱发我一份,共同维护 '发布日期:2013/06/01 '博 客:http://blog.163.com/sysdzw ' http://blog.csdn.net/sysdzw 'Email :[email protected] 'QQ :171977759 '版 本:V1.0 初版 2012/12/03 ' V1.1 修正了几个正则相关的函数,调整了部分结构 2013/05/28 ' V1.2 增加属性Caption,可以获取或设置当前标题栏 2013/05/29 ' V1.3 增加了方法Focus,可以激活当前窗口 2013/06/01 ' 增加了方法Left,Top,Width,Height,Move,处理窗口位置等 ' V1.4 增加了窗口位置调整的几个函数 2013/06/04 ' 增加了得到应用程序路径的函数AppName ' 增加了得到应用程序启动参数的函数AppCommandLine ' V1.5 增加了窗口最大最小化,隐藏显示正常的几个函数 2013/06/06 ' 增加了获取控件相关函数是否使用正则的参数UseRegExp默认F ' V1.6 将Left,Top函数改为属性,可获得可设置 2013/06/10 ' V1.7 增加函数:CloseApp 结束进程 2013/06/13 ' 修正了部分跟正则匹配相关的函数 ' 增加函数:GetElementTextByText ' 增加函数:GetElementHwndByText ' V1.8 增加函数:GetWindowByClassName 2013/06/26 ' 增加函数:GetWindowByClassNameEx ' 增加函数:GetWindowByAppName ' 增加私有变量hWnd_ ' 增加属性hWnd,可设置,单设置时候会检查,非法则设置为0 ' 更新GetWindowByTitleEx函数,使之可以选择性支持正则 ' 删除GetWindowByTitleRegExp函数,合并到上面函数 ' 增加SetFocus函数,调用Focus实现,为了是兼容VB习惯
### 回答1: 您可以使用 Python GUI 库,例如 PyQt、wxPython、Tkinter 等来搭建 Windows 桌面应用。 下面是一个使用 Tkinter 搭建的简单 Windows 桌面应用的代码示例: ``` import tkinter as tk def on_button_click(): label.config(text="Hello, Tkinter!") root = tk.Tk() root.title("Tkinter Desktop App") button = tk.Button(root, text="Click Me!", command=on_button_click) button.pack() label = tk.Label(root, text="Welcome to Tkinter!") label.pack() root.mainloop() ``` 该代码创建了一个带有按钮和标签的简单 Tkinter 窗口。当按钮被点击时,标签的文本将更改为“Hello, Tkinter!”。 ### 回答2: 使用Python搭建Windows桌面应用可以使用PyQt库,以下是一个简单的示例源码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle('Windows桌面应用') self.setGeometry(100, 100, 300, 200) self.label = QLabel('Hello World!', self) self.label.setGeometry(100, 50, 100, 30) self.button = QPushButton('点击我', self) self.button.setGeometry(100, 100, 100, 30) self.button.clicked.connect(self.on_button_click) def on_button_click(self): self.label.setText('你点击了按钮') if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 上述代码使用PyQt5创建了一个简单的窗口应用。其中,`MainWindow`继承自`QMainWindow`,并在构造函数中设置窗口的标题、大小和位置。在窗口中添加了一个`QLabel`用于显示文本,和一个`QPushButton`作为按钮。通过`clicked`信号和`on_button_click`槽函数,实现了按钮点击后在`QLabel`中更新文字的功能。 你可以将以上代码保存为一个Python文件(如`main.py`),然后运行该文件即可看到一个简单的Windows桌面应用程序。当点击按钮时,标签中的文字会更新为"你点击了按钮"。 需要注意的是,为了运行该程序,您需要先安装PyQt5库。通过运行`pip install pyqt5`命令即可安装PyQt5。 ### 回答3: 使用Python搭建一个Windows桌面应用可以使用Tkinter库。下面是一个简单的示例源码,创建一个窗口并显示一个按钮。 ``` import tkinter as tk # 创建窗口 window = tk.Tk() # 设置窗口标题 window.title("我的应用") # 设置窗口大小 window.geometry("300x200") # 创建按钮点击事件处理函数 def button_clicked(): # 在控制台打印按钮被点击 print("按钮被点击了!") # 创建按钮 button = tk.Button(window, text="点击我", command=button_clicked) button.pack() # 进入窗口主循环 window.mainloop() ``` 该源码使用`tkinter`库创建了一个窗口,并在窗口上显示了一个按钮。当按钮被点击时,调用`button_clicked()`函数执行相应的操作。你可以根据自己的需求进一步扩展该应用的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无·法

别打赏了,这C币又不能买咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值