获取额外的Python打印输出行?
Python新手。我制作了一个脚本来捕获活动窗口标题并将其打印到控制台。我添加了时间戳和用户。这是我的获取额外的Python打印输出行?,python,python-3.x,Python,Python 3.x,Python新手。我制作了一个脚本来捕获活动窗口标题并将其打印到控制台。我添加了时间戳和用户。这是我的 import win32gui import datetime import getpass user = getpass.getuser() windowTile = ""; while ( True ) : newWindowTile = win32gui.GetWindowText(win32gui.GetForegroundWindow());
import win32gui
import datetime
import getpass
user = getpass.getuser()
windowTile = "";
while ( True ) :
newWindowTile = win32gui.GetWindowText(win32gui.GetForegroundWindow());
if(newWindowTile != windowTile) :
ts = datetime.datetime.now()
windowTile = newWindowTile
line =str(ts) + ' ' + user + ' ' + newWindowTile
#line = newWindowTile
print(line)
结果如下
2020-09-03 13:34:16.075329 Eric Spyder (Python 3.8)
2020-09-03 13:34:18.208329 Eric
2020-09-03 13:34:18.279376 Eric COM5 - PuTTY
2020-09-03 13:34:18.877347 Eric
2020-09-03 13:34:18.955382 Eric Spyder (Python 3.8)
2020-09-03 13:34:19.592409 Eric
2020-09-03 13:34:19.631369 Eric COM5 - PuTTY
为什么要用空白信息获得额外的行输出?当您在窗口之间切换时,比如说Alt Tab,然后它会短暂地循环到“桌面”窗口,该窗口很可能没有名称。只要在两个窗口之间单击,我想你不会看到这些行 假设您想忽略它,或者忽略任何没有标题的内容,那么您可以使用
if newWindowTitle
查看新字符串是否为非空
newWindowTile = win32gui.GetWindowText(win32gui.GetForegroundWindow());
if newWindowTitle and newWindowTile != windowTile:
ts = datetime.datetime.now()
windowTile = newWindowTile
line =str(ts) + ' ' + user + ' ' + newWindowTile
#line = newWindowTile
print(line)
猜测桌面被认为是一个“窗口”从来没有这样想过。它以
explorer.exe
的形式运行。如果你杀死了它,那么你就杀死了除其他活动窗口之外的所有其他窗口。顺便说一句,没有理由把True
放在括号中。在窗口之间单击我似乎仍能看到行,但你的回答确实有助于解释和实现我想要的。谢谢