使用Python解锁计算机屏幕

时间:2017-12-29 06:03:49

标签: python robotframework sikuli

我为我们的网站编写了一些自动化代码,其中使用sikuli进行图像自动化。但有时我发现我的计算机屏幕被锁定,这就是为什么许多测试用例都失败了。所以我想写一些python代码来保持屏幕解锁。

这是我为锁定屏幕编写的代码补丁,现在我正在搜索如何解锁屏幕:

import os

winpath = os.environ["windir"]
os.system(winpath + r'\system32\rundll32 user32.dll, LockWorkStation')

注意:我已经调整了导致屏幕锁定的所有显示器设置。

1 个答案:

答案 0 :(得分:0)

要正常工作,Sikuli需要UI。这意味着用户应该已经登录。 以下是实现该目标的步骤:

使用自动登录

  1. 下载并使用Sysinternals Autologon

您应该重定向控制台,以便随时具有用户界面

  1. 任务计划程序
  2. 中创建新任务
  3. 下一步,在常规标签中,选中“ 以最高特权运行
  4. 触发器标签中的下一步,添加 New 触发器
  5. New Trigger 对话框中的下一步中,从“开始任务” 中选择“ 与用户会话断开连接”,然后使用默认设置按OK或与您通常登录的用户
  6. 台式机
  7. 上的文件夹 switch-ui 中创建具有以下内容的 switch-ui.bat 文件

echo ################################################### >> %USERPROFILE%\Desktop\rdc_switch_log.log 
date /t >> %USERPROFILE%\Desktop\rdc_switch_log.log time /t >> %USERPROFILE%\Desktop\rdc_switch_log.log 
timeout 3 
query session >> %USERPROFILE%\Desktop\rdc_switch_log.log 
query session > %localappdata%\log.txt

findstr "rdp" %localappdata%\log.txt| findstr "Active" 

if %errorlevel%==0 ( 
    echo You are in RDP session. Do nothing! >>%localappdata%\log.txt 
    ) 
else ( 
    tscon 1 /dest:console 
    tscon 2 /dest:console 
    tscon 3 /dest:console 
    tscon 4 /dest:console 
    )
  1. 操作标签中的下一个操作
  2. 下一步,在 New Action 对话框中,从 Action 下拉列表中选择“启动程序”
  3. 在“设置程序/脚本”中,将完整路径添加到文件“ C:\ Users \%yourUsers%\ Desktop \ switch-ui \ switch-ui.bat”
  4. 在“开始于”(可选)中,使用脚本“ C:\ Users \%yourUsers%\ Desktop \ switch-ui” 将路径添加到您的文件夹
  5. 确定,然后完成任务

重要提示:为了测试它是否有效。

  1. 获取录像机
  2. 通过远程桌面连接(RDC)登录计算机
  3. 开始视频
  4. 关闭RDC
  5. 等待2分钟
  6. 再次连接
  7. 停止视频
  8. 观看视频

仅当关闭RDC并与RDC重新连接几秒钟时,才应录制黑色视频,这取决于计算机的速度。