在另一个桌面上启动进程,Python,Windows

3
我已经创建了第二个桌面。
import win32api, win32con, win32gui, win32service, win32process
import pywintypes
import traceback, thread, time, cStringIO


k = win32service.CreateDesktop("ABCD2", 0, win32con.MAXIMUM_ALLOWED, None)

我该如何在名为 "ABCD2" 的桌面上启动一个进程,例如 calc.exe?


你是指桌面版的ABCD2,对吗? - Antti Haapala -- Слава Україні
哦,是的,没问题,ABCD2-我已经纠正了。 - Alex
1个回答

3

您可以将STARTUPINFO.lpDesktop设置为该桌面的名称:

import win32api, win32con, win32gui, win32service, win32process
#import pywintypes
#import traceback, thread, time, cStringIO


hDesktop = win32service.CreateDesktop("ABCD2",
                                      0,
                                      win32con.GENERIC_ALL,
                                      None)

win32api.Sleep(500)
StartInfo = win32process.STARTUPINFO()
StartInfo.lpDesktop = "ABCD2"

ProcInfo = win32process.CreateProcess(
    None,
    "mspaint.exe",
    None,
    None,
    True,
    win32con.NORMAL_PRIORITY_CLASS | win32con.CREATE_NEW_CONSOLE,
    None,
    None,
    StartInfo)

太棒了!运行得非常好!非常感谢你。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接