在网络上有很多窗口透明的小软件,用按键精灵也能实现。
萌新一个,如果下面源码有可以改进的地方,请斧正。
需要自行将控件加上。
附上源码:
-  
 
 
- //以下代码为将鼠标指向程序直接透明//
 
- 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
 
-