这有点难以解释,但我会尽我所能。
我的代码中有这部分
def hideConsole():
hideConsole = win32console.GetConsoleWindow()
win32gui.ShowWindow(hideConsole, 0)
隐藏了控制台,我有这个部分来启用它
def onKeyboardEvent(event):
if event.KeyID == 192 and event.Alt == 32:
hideConsole()
return True
如何制作一个“系统”,当我按下组合键一次,控制台隐藏时,下一次,控制台会出现? (更改hideConsole,1值)
答案 0 :(得分:1)
使用布尔变量,如下所示:
class Console(object):
def __init__(self):
self.is_hidden = False
self.handle = win32console.GetConsoleWindow()
def toggle(self):
win32gui.ShowWindow(self.handle, 1 if self.is_hidden else 0)
self.is_hidden = not self.is_hidden
答案 1 :(得分:1)
您可以使用在每次调用时在true和false之间切换的函数属性:
def toggleConsole():
toggleConsole.show = not getattr(toggleConsole, "show", True)
console = win32console.GetConsoleWindow()
win32gui.ShowWindow(console, int(toggleConsole.show))
以下是一个如何运作的简单示例:
>>> def test():
... test.show = not getattr(test, "show", True)
... print int(test.show)
...
>>> test()
0
>>> test()
1
>>> test()
0
答案 2 :(得分:0)
您可以使用初始值为0的状态变量hideValue
,并为每个键盘事件执行:
hideValue = 1 - hideValue
这会将hideValue
在0和1之间切换。
然后你可以拨打win32gui.ShowWindow(hideConsole, hideValue)
。
答案 3 :(得分:0)
你需要以某种方式维持状态:
hidden = False
def toggleConsoleVisibility():
global hidden
hideConsole = win32console.GetConsoleWindow()
win32gui.ShowWindow(hideConsole, 1 if hidden else 0)
hidden = not hidden
def onKeyboardEvent(event):
if event.KeyID == 192 and event.Alt == 32:
toggleConsoleVisibility()
return True
如果可能,请将此作为课程的一部分。然后,您可以保留由类封装的hidden
变量,而不是在全局命名空间中浮动。
答案 4 :(得分:0)
con_visible = True
def setVisibility(visible):
global con_visible
hideConsole = win32console.GetConsoleWindow()
win32gui.ShowWindow(hideConsole, int(visible))
con_visible = bool(visible)
def onKeyboardEvent(event):
if event.KeyID == 192 and event.Alt == 32:
if con_visible:
setVisibility(False)
else:
setVisibility(True)
return True
如果控制台在内部保持其可见性状态,您最好使用它而不是全局变量。