找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3356|回复: 1

[教程源码] 按键精灵 抛弃原界面,完全自定义界面的方法

[复制链接]

10

主题

17

回帖

27

积分

学前班

鲜花
0
猫粮
86
发表于 2022-3-20 19:22:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
       在这里学习了挺多,回馈一下,分享我自己的一个可以完全抛弃按键精灵界面的思路。我使用的是按键精灵9,使用这个思路可以将原本丑丑的界面完全屏蔽,只用自己画的界面。只使用了一个361窗口插件功能。脚本语句都很简单,没什么其他的语言,主要给大家看看思路。不会发送附件和图片,只能贴出原代码给大家看看啦。。。界面上只加了3条标签,一条取名“标题栏”用来移动界面,一条取名“关闭”,用来充当关闭按钮,一条取名“缩小”,充当最小化按钮,感兴趣的可以用按键9打包成小精灵试一下。效果还不错  (win10的系统)
[按键精灵] 纯文本查看 复制代码
Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
/*上面这句是用来给自己画的标题栏按住移动用的,如果不自己画标题栏就不用*/
Event Form1.Loadover
    call BeginThread(改变窗口线程)
End Event
Sub 改变窗口线程
    t1=Plugin.GetSysInfo.GetTime 
    Do Until t2-t1 > 4000//如果4000还不成功就取消改界面
        t2 = Plugin.GetSysInfo.GetTime	
        Hwnd = Plugin.Window.Foreground()
        sClass = Plugin.Window.GetClass(Hwnd)
        If sclass = "#32770" Then 
            HwndEx = Plugin.Window.FindEx(Hwnd, 0, "#32770", 0)
            无忧句柄 = Plugin.Window.FindEx(HwndEx, 0, 0, "无忧脚本 - 联系QQ601112024")
            HwndEx = Plugin.Window.FindEx(无忧句柄, 0, "Static", 0)
            用户句柄 = Plugin.Window.FindEx(HwndEx, 0, 0, "Form1")
            sRect = Plugin.Window.GetClientRect(Hwnd)     
            MyArray = Split(sRect, "|")     
            L = Clng(MyArray(0)): T = Clng(MyArray(1))   
            R = Clng(MyArray(2)): B = Clng(MyArray(3))  
            Call Plugin.Window.Move(无忧句柄, - 6 , - 8 )
            Call Plugin.WndEx6.SetWindowStyle(Hwnd, 1)//如果不想自己画标题栏,就把最后的参数1改成18或者16...18自带标题栏,可显示任务栏,16自带标题栏,不显示任务栏
            sRect = Plugin.Window.GetClientRect(用户句柄)
            MyArray = Split(sRect, "|")    
            L = Clng(MyArray(0)): T = Clng(MyArray(1))   
            R = Clng(MyArray(2)): B = Clng(MyArray(3))      
            Call Plugin.WndEx6.SetClientSize(Hwnd, R - L - 20, b - t - 15)
            Exit do
        End If
    loop     
End Sub  
 /*下面这些是自己画的标题栏设置*/ 
Event Form1.标题栏.Click
    Dim hwnd,开始x, 开始y,mouse,基础坐标
    hwnd = Plugin.WndEx6.GetForegroundWindow()
    sRect = Plugin.Window.GetWindowRect(Hwnd)
    基础坐标 = Split(sRect, "|")
    GetCursorPos 开始x, 开始y
    Do
        mouse = GetAsyncKeyState(1)//这句必须要有最上面的那句才起作用
        If mouse = 0 Then 
            Exit Do
        End If
        GetCursorPos 结束x, 结束y       
        Call Plugin.Window.Move(Hwnd, 基础坐标(0)+结束x-开始x,基础坐标(1)+结束y-开始y)
    Loop
End Event
//缩小
Event Form1.缩小.Click
    Dim hwnd
    hwnd=0
    Hwnd = Plugin.Window.Find(0, "按键精灵")//用于防止在调试界面误操作缩小界面找不回来,按键精灵打开的情况下无法使用缩小按钮
    If hwnd > 0 Then 
    else
        hwnd = Plugin.WndEx6.GetForegroundWindow()
        Call Plugin.Window.Hide(Hwnd)        
    End If
End Event
//关闭
Event Form1.关闭.Click
    Dim hwnd
    hwnd=0
    Hwnd = Plugin.Window.Find(0, "按键精灵")//用于防止在调试界面误操作关闭按键精灵,按键精灵打开的情况下无法使用关闭按钮
    If hwnd > 0 Then 
    else
        hwnd = Plugin.WndEx6.GetForegroundWindow()
        Call Plugin.Window.CloseEx(Hwnd)           
    End If
End Event
/*上面这些是自己画的标题栏设置*/ 




楼主热帖

0

主题

3

回帖

3

积分

学前班

鲜花
0
猫粮
5
发表于 2022-4-22 10:51:22 | 显示全部楼层
o(≧口≦)o( ̄△ ̄;)( ̄△ ̄;)( ̄△ ̄;)( ̄△ ̄;)( ̄△ ̄;)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-11-22 02:27

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表