python - 如何使用 win32api 创建 Toast 通知(带有按钮!)?
问题描述
我一直在使用win10toast 库(链接到我正在尝试修改的init文件)有一段时间了,我有一个问题:
我怎样才能修改模块以使用 win32gui、win32api、win32con 库有两个按钮的 toast通知?
我一直在玩初始化代码,试图self.hwnd = CreateWindow(...)
像这样在第 83 行左右添加一个孩子:
class ToastNotifier(object):
....
style = WS_CLIPCHILDREN | WS_VISIBLE | WS_OVERLAPPED | WS_SYSMENU
styleButton = WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON
self.hwnd = CreateWindow(self.classAtom, "Taskbar", style,
0, 0, CW_USEDEFAULT,
CW_USEDEFAULT,
0, 0, self.hinst, None)
""" self.hwndButton = CreateWindow("Button", "OK", styleButton,
0, 0, CW_USEDEFAULT,
CW_USEDEFAULT,
self.hwnd, None, 0, None)"""
self.hwndButton = CreateWindow("Button", # Predefined class; Unicode assumed
"OK", # Button text
styleButton, # Styles
0, #// x position
0, #// y position
35, #// Button width
35, #// Button height
self.hwnd, #// Parent window
None, #// No menu.
0,
None)
....
但它不能按我想要的方式工作('1'、'2' Toast 通知应该有按钮 OK,而不是在单独的窗口上显示它)。
我联系了模块的作者,因为他不知道该怎么做。我还在努力学习python,对win32api了解不多。任何提示?谢谢!
解决方案
这真的很老了,你可能已经解决了,但我很确定你在正确的轨道上,我研究了 python 的 win32gui 库,当我查看参数时,第一个参数需要一个 unicode文字字符串,而真正让我印象深刻的词是它说“假设 unicode”,我相信我们可以通过如下传递一个 unicode 字符串文字来避免这种假设u"String"
。不知何故,我觉得这里的父子关系也引起了问题,当我发现更多时会更新。
需要在逻辑上划分其主窗口的应用程序应该在主窗口的窗口过程中进行,而不是使用子窗口。
我不太了解这是如何实现的,但我相信有办法。
推荐阅读
- sql - 如何生成计数为零的合成组
- typescript - 使用 this.$parent.somePropOrMethod 和 this.$root.somePropOrMethod 时,类型“Vue”上不存在属性 X
- java - PDF 上的印地语字符串未正确解析
- amazon-web-services - 从 AWS ECS 中单独账户中的私有注册表中提取容器
- c# - 从代码 ⇒ IL 或 IL ⇒ 本机代码创建的引用在哪里
- drools - Drools - 从动作值单元格调用决策表函数
- python - random.choices() 和 random.sample() 函数有什么区别?
- jmeter - 在 jmeter 中运行 beanshell 脚本时无法导入 com.paytm.merchant.CheckSumServiceHelper
- vue.js - 如何在插槽项目中向 td 添加自定义类?
- python - 无法从 C++ 中的 .dat 文件中提取实际数据?