[Python]VNC自动输入密码小工具
功能
自动连接VNC,就是为了偷懒摸鱼。
工作中有一批PC播放特定内容,为了保证播放的内容正确需要定期去检查显示状态,PC上装了tightVNC,可以远程连接看,但是一个个连接,输入密码,就算使用新版的VNC工具记住密码也都一个个点开,懒人就得想懒招。
网上也搜过一个类似的工具,下载后一看,好家伙,要密码,30块钱解锁,一怒之下自己写了一个差不多的。
用法
按下面格式保存内容到批处理,运行批处理即可免密连接VNC服务器:
vncviewer.exe 192.168.1.212 | start AutoLoginVNC.exe 123
其中vncviewer是自带的客户端工具,autologinvnc.exe是编译后的程序,如果是编译成单个文件建议放到vncviewer同目录下,
如果pyinstall默认编译则是一个文件夹,需要修改脚本中对应的exe路径
123是远程VNC服务器的密码,根据自己环境的密码修改
其他说明
该程序基于vncviewer 4.1.3运行的,较高版本的VNC客户端没空写。
思路就是通过运行vncviewer后通过python找到对应的窗口填入密码,然后自动登录。
Python源码
import win32gui
import win32con
import sys
Passwd=sys.argv[1]
#title=u"VNC Viewer : Authentication [No Encryption]"
win = win32gui.FindWindow(None,"VNC Viewer : Authentication [No Encryption]")
#tid=win32gui.FindWindowEx(win,None,'Edit',None)
tid=win32gui.GetDlgItem(win,1000)
win32gui.SendMessage(tid, win32con.WM_SETTEXT,None,Passwd)
win32gui.PostMessage(tid, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
win32gui.PostMessage(tid, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
如果提示缺少api-ms-win-core-path-l1-1-0,
拷贝api-ms-win-core-path-l1-1-0.dll到 C:\Windows\system32然后运行执行 regsvr32 api-ms-win-core-path-l1-1-0.dll
|