在网络上有很多窗口透明的小软件,用按键精灵也能实现。
萌新一个,如果下面源码有可以改进的地方,请斧正。
需要自行将控件加上。
附上源码:
-
- //以下代码为将鼠标指向程序直接透明//
- GetCursorPos x,y
- Hwnd = Plugin.Window.MousePoint()
- GetColor = GetPixelColor(x, y)
- IfColor x,y,"5EAB25",0 Then
- Hwnd = Plugin.Window.Find(0, "按键精灵")
- End If
- Plugin.lxj_Plug.lxj_SetWindow Hwnd, 20
- WaitKey
- Plugin.lxj_Plug.lxj_SetWindow Hwnd,-1
- //以上代码为将鼠标指向程序直接透明//
- Event Form1.Load
- 计数 = 0
- Form1.Hotkey1.Register(true)//注册热键
- 屏幕y分辨率 = Plugin.Sys.GetScRY()'屏幕y分辨率
- 获取所有窗口句柄 = Plugin.Window.Search("")'获取当前所有窗口句柄 引号中为空代表全部
- 窗口句柄数组=split(获取所有窗口句柄,"|") '拆分所有窗口句柄
- 窗口句柄数量 = UBound(窗口句柄数组)'得到所有窗口句柄数量
- '---------------------------------------------------------------------------------
- Dim 标题(1000)
- For 循环变量 = 0 To 窗口句柄数量 - 1 '循环通过窗口句柄找窗口名
- 窗口名字 = Plugin.Window.GetText(窗口句柄数组(循环变量))
- '--------------------------------------------------------------------------------------
-
- 窗口大小 = Plugin.Window.GetClientRect(窗口句柄数组(循环变量))'窗口大小,用来忽略系统窗口做对比
- 窗口大小数组 = split(窗口大小, "|")
- '--------------------------------------------------------------------------------------
- 标题(循环遍量) = 窗口名字 & "|"'加|来分割名字
-
- Form1.ListBox1.AddItem (窗口名字 + "::::" + 窗口句柄数组(循环变量))'直接在窗口名字中加句柄了,因为按键目前好像
- '不支持列表中代数值,我也不想用数组,所以直接弄个符号,用分割来加入读取句柄
-
- 总=总&Cstr(标题(循环遍量))
-
- TracePrint 标题(循环遍量)
- 计数=计数+1
-
-
- Next
- TracePrint 总
- 最大下标 = 计数
-
- End Event
-
- Event Form1.Button1.Click
- Form1.Slider1.Value=0//令滚动条值归零
- Form1.ListBox1.List=""//清空之前的列表
- MessageBox "已恢复" //弹出提示窗口
- 获取所有窗口句柄 = Plugin.Window.Search("")'获取当前所有窗口句柄 引号中为空代表全部
- 窗口句柄数组=split(获取所有窗口句柄,"|") '拆分所有窗口句柄
- 窗口句柄数量 = UBound(窗口句柄数组)'得到所有窗口句柄数量
- For i = 0 To 窗口句柄数量 - 1'循环通过窗口句柄找窗口名
- Plugin.lxj_Plug.lxj_SetWindow 窗口句柄数组(i), 255 //所有窗口全部显示
- Next
- 计数 = 0
- 屏幕y分辨率 = Plugin.Sys.GetScRY()'屏幕y分辨率
- 获取所有窗口句柄 = Plugin.Window.Search("")'获取当前所有窗口句柄 引号中为空代表全部
- 窗口句柄数组=split(获取所有窗口句柄,"|") '拆分所有窗口句柄
- 窗口句柄数量 = UBound(窗口句柄数组)'得到所有窗口句柄数量
- '---------------------------------------------------------------------------------
- Dim 标题(1000)
-
- For 循环变量 = 0 To 窗口句柄数量 - 1 '循环通过窗口句柄找窗口名
- 窗口名字 = Plugin.Window.GetText(窗口句柄数组(循环变量))
- '--------------------------------------------------------------------------------------
-
- 窗口大小 = Plugin.Window.GetClientRect(窗口句柄数组(循环变量))'窗口大小,用来忽略系统窗口做对比
- 窗口大小数组 = split(窗口大小, "|")
- '--------------------------------------------------------------------------------------
- 标题(循环遍量) = 窗口名字 & "|"'加管道符|来分割名字
-
- Form1.ListBox1.AddItem (窗口名字 + "::::" + 窗口句柄数组(循环变量))'直接在窗口名字中加句柄了,因为按键目前好像
- '不支持列表中代数值,我也怪不得用数组,所以直接弄个符号,用分割来加入读取句柄
-
- 总=总&Cstr(标题(循环遍量))
-
- TracePrint 标题(循环遍量)
- 计数=计数+1
-
-
- Next
- TracePrint 总
- 最大下标 = 计数
- End Event
- Dim 控制
- 控制=0
- Event Form1.Slider1.Slide
- Plugin.lxj_Plug.lxj_SetWindow 窗口句柄数组(Form1.ListBox1.ListIndex), 255 - Form1.Slider1.Value//隐藏值最小0到255,滑块的值需要从小到大,所以直接用255减去滑块对应的值
- If Form1.CheckBox1.Value = 1 Then
- Plugin.lxj_Plug.lxj_SetWindow Hwnd,255-Form1.Slider1.Value//隐藏值最小0到255,滑块的的需要从小到大,所以直接用255减去滑块对应的值
- End If
- End Event
- Event Form1.Hotkey1.Hotkey
- GetCursorPos x,y
- Hwnd = Plugin.Window.MousePoint()
- GetColor = GetPixelColor(x, y)
- IfColor x,y,"5EAB25",0 Then
- Hwnd = Plugin.Window.Find(0, "按键精灵")
- End If
- 窗口名字 = Plugin.Window.GetText(Hwnd)
-
- End Event
-
复制代码