win10的sublime上有白色的标题栏,使用黑色主题时很扎眼,搜了很多教程都是c#的,不太懂c#,于是想着python有没有相应的库,幸运的是有,遂编写脚本去除。
python脚本
使用到的python库pywin32
安装方法pip install pywin32
改一下源换到国内下载速度快pip install pywin32 --index-url https://pypi.douban.com/simple
思路
获取sublime窗口句柄,然后使用pywin32的函数去除即可
代码
import win32gui
import win32api
import win32con
while True:
hwnd = win32gui.FindWindow('PX_WINDOW_CLASS',None)
if hwnd:
break
style = win32api.GetWindowLong(hwnd, win32con.GWL_STYLE)
win32api.SetWindowLong(hwnd,win32con.GWL_STYLE,style & ~win32con.WS_BORDER & ~win32con.WS_THICKFRAME & ~win32con.WS_DLGFRAME)
win32gui.ShowWindow(hwnd,win32con.SW_MINIMIZE)
win32gui.ShowWindow(hwnd,win32con.SW_RESTORE)
win32gui.SetWindowPos(hwnd,win32con.HWND_TOP, 200,0,950,700,win32con.SWP_SHOWWINDOW)
代码使用方法,打开sublime之后用python运行即可(这是手动的,每次打开sublime都要手动运行,往下看有打开sublime的同时运行脚本的教程)
解释
先用spy++(一个软件)查找sublime窗口的类(PX_WINDOW_CLASS) (这个你们直接使用就行了,我只是解释一下怎么得来的) ,然后用
win32gui.FindWindow('PX_WINDOW_CLASS',None)
获取窗口,第一个参数是类名,第二个是标题名。
win32api.GetWindowLong(hwnd, win32con.GWL_STYLE)
这个函数是获取当前窗口信息,该函数有两个参数,第一个参数是窗口,就是FindWindow函数的返回;第二个参数是想要获取的信息,我这里想要样式所以是GWL_STYLE,还有其他的值,具体的去搜一下,我记不得
SetWindowLong(hwnd,win32con.GWL_STYLE,style & ~win32con.WS_BORDER & ~win32con.WS_THICKFRAME & ~win32con.WS_DLGFRAME)
函数是设置窗口,三个参数,第一个第二个同上,第三个参数是新的值,举个例子:
SetWindowLong(hwnd , GWL_STYLE , GetWindowLong(hwnd,GWL_STYLE) & ~WS_BORDER )这个例子是去除边框的意思,WS_BORDER代表窗口有边框,~WS_BORDER代表窗口没有边框。 第三个参数是获取的原窗口样式在加一个~WS_BORDER,即在原窗口的基础上去除边框
ShowWindow
函数是展示窗口,根据不同的参数达到不同的效果,比如SW_MINIMIZE是将窗口最小化的意思。
为什么要写这两个函数,因为去除标题栏之后标题栏所在的地方会变黑,必须刷新一下才行,我用的最小化之后复原刷新窗口。
SetWindowPos(hwnd,win32con.HWND_TOP, 200,0,950,700,win32con.SWP_SHOWWINDOW)这个函数是设置窗口位置和大小,200和0代表位置,950和700代表大小,你们可以根据分辨率自己调整
使用bat和vbs启动sublime自动运行脚本(新建text改后缀名即可,双击就能运行)
程序写完之后写一个bat文件,打开sublime,再运行刚刚编写的脚本。bat文件的代码:(window.py是刚才创建的脚本)
start /d "F:\Sublime Text 3" sublime.exe
python window.py
bat文件运行时会出现命令行的黑框,不好看,用vbs后台运行bat就不会出现黑框了。新建vbs,写上如下代码
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("123.bat", 0, TRUE)
保存即可,以后运行时就双击该vbs文件就行。123.bat是刚刚创建的bat文件
现在,将vbs创建快捷方式,将快捷方式粘贴到桌面,改快捷方式的名字为sublime,图标也改一下,启动sublime就用双击这个就行了。
f11可以全屏,关闭窗口可以在屏幕底部任务栏关闭。菜单栏可以按alt调出和关闭,移动窗口可以使用alt+空格,按m,就可以用方向键移动窗口了
bat和vbs我不是很懂,都是现用现搜的,创建的文件有点多,请见谅。
附上截图:
主题用的boxy,github上搜。菜单栏被隐藏了,按alt键短暂调出来。