如何在wxPython中为按钮添加Windows UAC盾牌覆盖?
我有一个按钮,点击后会启动一个需要提升权限的程序。我想在这个按钮上显示Windows的UAC盾牌图标,请问我该怎么在wxPython中实现这个?这个应用程序只会在Windows上运行,所以我不需要担心它在其他系统上无法使用。
编辑 2: 我明白了:
BCM_SETSHIELD = 0x0000160C
btn_apply = wx.Button(self, wx.ID_APPLY, "Apply",
wx.DefaultPosition, wx.DefaultSize, 0)
response = win32gui.SendMessage(btn_apply.GetHandle(), BCM_SETSHIELD, None, True)
我在SendMessage的wparam里放了true,而不是lparam,这样就可以正常工作了。现在我只是想知道BCM_SETSHIELD这个常量是否在pywin32的某个库里声明过,但如果没有的话,我自己声明这个常量也没问题。
1 个回答
2
我不知道怎么在Python中发送Windows消息,但我想你应该知道。你需要发送一个叫做 BCM_SETSHIELD
的消息,并且把参数设置为 true
。在Windows XP及更早版本中,这个消息会被忽略。另外,确保按钮的样式设置为 FlatStyle.System。 BCM_SETSHIELD
的数字值是 0x0000160C。