【发布时间】:2015-08-18 11:43:41
【问题描述】:
我尝试寻找可能有人遇到但找不到的类似问题。长话短说。我整理了一个 python 脚本,它创建一个文件并写入它并从中读取。然后,我使用 nssm-2.24 创建了 .exe,并将 exe 作为服务安装,它可以工作。
然后我创建了第二个脚本,它从 python 模块调用 win32api 和 win32con,只需在屏幕上移动鼠标并执行一两次点击。这可以在 python 中工作,并且在编译为 .exe 时工作。
当我将第二个 exe 作为服务安装时,它显示为服务并运行,但鼠标不会在屏幕上移动。
Code below:
import autopy
import time
import win32api
import win32con
def click(x, y):
win32api.SetCursorPos((x,y))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
def move_mouse_around():
time.sleep(300)
autopy.mouse.smooth_move(500,500)
time.sleep(.`enter code here`5)
autopy.mouse.smooth_move(200,200)
time.sleep(1.5)
autopy.mouse.smooth_move(200,600)
time.sleep(1)
autopy.mouse.smooth_move(200,500)
time.sleep(1)
autopy.mouse.smooth_move(200,400)
time.sleep(1)
autopy.mouse.smooth_move(400,200)
time.sleep(.5)
autopy.mouse.smooth_move(400,300)
time.sleep(.5)
autopy.mouse.smooth_move(400,400)
time.sleep(.5)
autopy.mouse.smooth_move(400,450)
time.sleep(1)
autopy.mouse.smooth_move(50,50)
time.sleep(1)
click(50,50)
click(50,50)
time.sleep(.5)
autopy.mouse.smooth_move(50,150)
click(50,150)
autopy.mouse.smooth_move(500,500)
time.sleep(.5)
autopy.mouse.smooth_move(200,200)
time.sleep(1.5)
autopy.mouse.smooth_move(200,600)
time.sleep(1)
autopy.mouse.smooth_move(200,500)
time.sleep(1)
autopy.mouse.smooth_move(200,400)
time.sleep(1)
autopy.mouse.smooth_move(400,200)
time.sleep(.5)
autopy.mouse.smooth_move(400,300)
time.sleep(.5)
autopy.mouse.smooth_move(400,400)
time.sleep(.5)
autopy.mouse.smooth_move(400,450)
time.sleep(1)
autopy.mouse.smooth_move(17,50)
click(17,50)
click(17,50)
time.sleep(1.5)
def close_window():
autopy.mouse.smooth_move(1360,5)
click(1360,5)
time.sleep(30)
#close_window()
while True:
move_mouse_around()
【问题讨论】:
-
用您尝试过的代码更新您的问题。
-
您不能通过服务运行 GUI 程序。
-
@martineau 的评论不准确。您无法通过服务与交互式桌面进行交互。