现在的位置: 首页 > 综合 > 正文

◎一个有用的COM控件—xxsystem.xy

2013年09月02日 ⁄ 综合 ⁄ 共 4356字 ⁄ 字号 评论关闭

电脑之家PCHome.Net给软件重新打包加载流氓插件的能力惊人!

很久以前我就使用过一个共享软件叫做Windows 脚本大师,这个软件不但完全兼容VBS,而且在功能上有了扩充,由于需要注册,总是用一段时间就删除了。

今天有事要使用它提供的某些函数,就在电脑之家PCHome.Net下载了一个,令我惊讶的是,在下载时,迅雷就提示说有流氓插件(它什么时候还有这个功能了),问是否继续,因为以前用过,不记得有插件,所以没有当回事,谁料到安装后,系统中自动加载了8个流氓插件,有几个甚至没有听过,但是确定一点的是:安装过程中没有任何提示,安装后计算机系统基本崩溃,CPU使用率达到85%以上,计算机基本上不能工作。万般无奈之下,只得将它的主要动态链接库xxsystem.dll备份了下来,删除windows脚本大师,删除所有的流氓插件。计算机几经重启后,终于恢复正常。

为了能使用windows脚本大师提供的功能,我只得手动注册xxsystem.dll(xxsystem.xy),倒也好估计从此后不需要注册这个软件了就可以永远使用了。希望作者不要找我的麻烦,我这也是迫不得已。正常情况下,我一定会在试用期内删除掉该软件的,呵呵(需要的朋友可以到我的网盘下载)。

现在将其提供的一些比较有用的函数简介如下:

系统函数

1. 使长时间循环或死循环时,让主程序有响应 xy_DoEvent()

2. 等待ms毫秒时间,等待时程序无任何响应 xy_Sleep(ByVal ms As Long)

3. 等待ms毫秒时间,等待时程序有响应xy_wait(ByVal ms As Long)

4. 得到 (X,Y)坐标的位置的颜色值xy_GetPixel(ByVal hdc As Long, ByVal x As Long, ByVal y As

Long) As Long   返回值:为RGB颜色值

参数说明:参数hdc表示设备环境句柄,x表示屏幕的水平坐标,y表示屏幕的垂直坐标

5. 查找窗口句柄xy_FindWindow(ByVal lpClassName As String, ByVal lpWindowName As

String) As Long  参数说明:参数lpClassName为窗口类名,参数lpWindowName为窗口名

返回值:为找到的窗口句柄值,未找到返回0

6. 得到整个窗口的设备环境句柄 xy_GetWindowDC(ByVal hwnd As Long) As Long

参数说明:参数hwnd为窗口句柄

返回值:为设备环境的句柄

7. 得到窗口设备环境句柄xy_GetDC(ByVal hwnd As Long) As Long

参数说明:参数 hwnd为窗口句柄

返回值:为设备环境的句柄

8. 释放设备环境资源 xy_ReleaseDC(ByVal hwnd As Long, ByVal hdc As Long) As Long

参数说明:参数hwnd为窗口句柄,参数hdc为设备环境句柄

返回值:释放成功返回1,没有释放成功返回0

9. 给窗口发送一个消息xy_PostMessage(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam

As Long, ByVal lParam As Long) As Long

参数说明:参数hwnd为窗口句柄,参数wMsg为消息值,参数wParam为辅助信息,参数lParam为辅助信息

返回值:函数成功返回非0,失败返回0

10. 给窗口发送一个消息,执行完成后才返回

xy_SendMessage(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long,

ByVal lParam As Long) As Long

参数说明:参数hwnd为窗口句柄,参数 wMsg为消息值,参数 wParam为辅助信息,参数 lParam为辅助信息

返回值:返回值依赖于发送的消息

11. 设置窗口位置和大小 xy_SetWindowPos(ByVal hwnd As Long, ByVal hWndInsertAfter As Long,

ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal

wFlags As Long) As Long

参数说明:参数hwnd为窗口句柄,参数hWndInsertAfter表示窗口的顺序,取值意思如下:

Public Const HWND_BOTTOM = 1——表示置最底层

Public Const HWND_NOTOPMOST = -2——表示非最高层

Public Const HWND_TOP = 0——表示置顶层

Public Const HWND_TOPMOST = -1——表示置最顶层

参数X表示窗口新的水平位置坐标;参数Y表示窗口新的垂直位置坐标

参数cx表示新的窗口宽度;参数cy表示新的窗口高度

参数wFlags表示取值标志,取值意思如下:

Public Const SWP_NOSIZE = &H1——表示忽略cxcy参数

Public Const SWP_NOMOVE = &H2——表示忽略xy参数

Public Const SWP_SHOWWINDOW = &H40——表示显示窗口

Public Const SWP_HIDEWINDOW = &H80——表示隐藏窗口

12. 窗口列表中寻找与指定条件相符的第一个子窗口

xy_FindWindowEx(ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String,

ByVal lpsz2 As String) As Long

参数说明:找到则返回窗口的句柄。如未找到相符窗口,则返回零。

hWnd1—在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)

hWnd2—从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索

lpsz1—欲搜索的类名。VbNullString表示忽略

lpsz2—欲搜索的类名。VbNullString表示忽略

13. 返回系统目录xy_GetSystemDirectory() As String

14. 返回Windows目录 xy_GetWindowsDirectory() As String

15. 获得代表整个屏幕的一个窗口(桌面窗口)句柄 xy_GetDesktopWindow() As Long

16. 得到屏幕宽度xy_GetScreenWidth() As Long

17. 得到屏幕高度 xy_GetScreenHeight() As Long

18. 设置窗体透明度

xy_SetWindowAlpha(ByVal hwnd As Long, ByVal bAlpha As Byte) As Long

参数说明:hwnd为要设置透明度的窗体,bAlpha为设置的透明度,取0表示全透明,取255表示不透明,取100左右一般半透明效果。

19. 得到屏幕上任意一点的颜色值

xy_GetScreenPixel(ByVal x As Long, ByVal y As Long) As Long

20. 设置窗口的标题名xy_SetWindowText(ByVal hwnd As Long, ByVal Text As String)

参数说明:hwnd窗口句柄,Text要设置的窗口标题名

21. 控制窗口的可见性 xy_ShowWindow(ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

返回值:如窗口之前是可见的,则返回TRUE(非零),否则返回FALSE(零)

hwnd —窗口句柄,要向这个窗口应用由nCmdShow指定的命令

nCmdShow—为窗口指定可视性方面的一个命令。请用下述任何一个常数

SW_HIDE = 0 隐藏窗口,活动状态给令一个窗口

SW_MINIMIZE = 6 最小化窗口,活动状态给令一个窗口

SW_RESTORE = 9 用原来的大小和位置显示一个窗口,同时令其进入活动状态

SW_SHOW = 5 用当前的大小和位置显示一个窗口,同时令其进入活动状态

SW_SHOWMAXIMIZED = 3 最大化窗口,并将其激活

SW_SHOWMINIMIZED = 2 最小化窗口,并将其激活

SW_SHOWMINNOACTIVE = 7 最小化一个窗口,同时不改变活动窗口

SW_SHOWNA = 8 用当前的大小和位置显示一个窗口,不改变活动窗口

SW_SHOWNOACTIVATE = 4 用最近的大小和位置显示一个窗口,同时不改变活动窗口

SW_SHOWNORMAL = 1 SW_RESTORE相同

鼠标键盘函数

1. 模拟鼠标事件xy_mouse_event(ByVal dwFlags As Long)

参数说明:参数dwFlags,表示鼠标动作,取值意义如下:

&H2—表示左键按下;&H4—表示左键放开;&H8—表示右键按下;&H10—表示右键放开

2. 移动鼠标的位置 xy_SetCursorPos(ByVal x As Long, ByVal y As Long) As Long

参数说明:参数X表示屏幕的水平坐标,参数Y表示屏幕的垂直坐标

返回值:非零表示成功,零表示失败。

3. 得到按键的状态,使用户从死循环中退出

xy_GetKeyState(ByVal nVirtKey As Long) As Boolean

参数说明:如果nVirtKey表示的键处于按下状态,函数返回true,否则返回false

4. 将鼠标捕获设置到指定的窗口。在鼠标按钮按下的时候,这个窗口会为当前应用程序或整个系统接收所有鼠标输入  xy_SetCapture(ByVal hwnd

As Long) As Long

参数说明:参数hwnd,要接收所有鼠标输入的窗口的句柄

返回值:之前拥有鼠标捕获的窗口的句柄

5. 为当前的应用程序释放鼠标捕获 xy_ReleaseCapture() As Long

返回值:TRUE(非零)表示成功,零表示失败

6. 将指针限制到指定区 xy_ClipCursor(ByVal left As Long, ByVal top As Long, ByVal right As

Long, ByVal bottom As Long) As Long

返回值:非零表示成功,零表示失败。

7.相对移动鼠标位置 xy_MoveMouseOpposite(ByVal x As Long, ByVal y As Long)

参数:x表示鼠标水平移动的位置(x为负数向左移动,x为正数向右移动)y表示鼠标垂直移动的位置(y为负数向上移动,y为正数向下移动)

8. 得到鼠标当前在屏幕上的位置 xy_GetCursorPos(x As Variant, y As Variant)

参数:x返回屏幕水平坐标位置,y返回屏幕垂直坐标位置

对话框函数

1. 重启系统对话框:xy_SHRestartSystemDialog() As Long

返回值:选择“取消”按钮,则返回值7

【上篇】
【下篇】

抱歉!评论已关闭.