微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 python 中关闭 OSK (tabtip)

如何解决在 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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。