Exe Win32api的Python脚本不工作

Exe Win32api的Python脚本不工作,python,winapi,service,Python,Winapi,Service,我试图寻找一个类似的问题,有人可能有,但无法找到。长话短说。我编写了一个python脚本,用于创建一个文件,并对其进行写入和读取。然后,我用nssm-2.24创建了.exe,并将其作为服务安装,它可以正常工作 然后,我创建了第二个脚本,该脚本从python模块调用win32api和win32con,只需在屏幕上移动鼠标并执行一两次单击。这可以从python内部以及编译为.exe时执行 当我将第二个exe作为服务安装时,它会显示为服务并运行,但鼠标不会在屏幕上移动 Code below: impo

我试图寻找一个类似的问题,有人可能有,但无法找到。长话短说。我编写了一个python脚本,用于创建一个文件,并对其进行写入和读取。然后,我用nssm-2.24创建了.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()

服务在非交互式会话(会话0)中执行,因此与用户的交互式桌面隔离。用户在会话1、会话2等中拥有台式机


所有这一切意味着,您无法通过服务与用户的桌面交互。您必须在用户会话中,在与用户相同的桌面上执行此代码。

用您尝试过的代码更新您的问题。您不能通过服务运行GUI程序。@martineau的评论不准确。您无法通过服务与交互式桌面交互。有关更多信息,请参阅:会话0隔离谢谢,我的印象是可以通过服务与桌面交互。这就解释了为什么一个服务工作而另一个服务不工作。这就是我想了解的。德克萨斯州大卫