在 python 中关闭 OSK(tabtip)
Closing OSK (tabtip) in python
我正在使用以下代码来显示 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()
我正在使用以下代码来显示 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()