在 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()