关闭python中的OSK(tabtip)



我正在使用以下代码来显示osk

os.system("C:\PROGRA~1\COMMON~1\MICROS~1\ink\tabtip.exe")

这段代码成功地打开了osk,但当我尝试使用下面的代码关闭它时

os.system("TASKKILL /F /IM tabtip.exe")

它给出的错误

ERROR: The process "TabTip.exe" with PID 10188 could not be terminated.
Reason: Access is denied.

出现这个错误是因为我的脚本没有管理权限,但我不明白为什么我自己启动程序时需要它,而且通常情况下,当我使用鼠标关闭应用程序时,它不需要管理权限。关于我该如何解决它的任何想法。。。。

感谢阅读:(

我最终使用了comtypes而不是win32com:

import win32gui
from ctypes import HRESULT
from ctypes.wintypes import HWND
from comtypes import IUnknown, GUID, COMMETHOD
import comtypes.client
class ITipInvocation(IUnknown):
_iid_ = GUID("{37c994e7-432b-4834-a2f7-dce1f13b834b}")
_methods_ = [
COMMETHOD([], HRESULT, "Toggle",
( ['in'], HWND, "hwndDesktop" )
)
]
dtwin = win32gui.GetDesktopWindow();
ctsdk = comtypes.client.CreateObject("{4ce576fa-83dc-4F88-951c-9d0782b4e376}", interface=ITipInvocation)
ctsdk.Toggle(dtwin);
comtypes.CoUninitialize()

最新更新