2012-07-16 167 views
0

我是python的新手,我试图编写一个当某个窗口关闭时退出循环的脚本。我有问题让代码正常工作,它甚至不会进入循环。我认为这是因为我没有正确获取窗口名称。我想知道在Win32Gui扩展中是否有任何好的教程能够帮助我理解它的工作原理。使用Windows API获取窗口的名称

编辑

这里是我有什么,它是做什么它该做的,但我相信有这样做的一个简单的方法。

def answerCalls(local, network): 
t = 0 
count = 0 
while t == 0: 
    time.sleep(1) 
    if win32gui.GetWindowText(win32gui.GetForegroundWindow()) == "Incoming Call": 
     time.sleep(10) 
     getApplicationPos("Incoming Call") 
     clickOnElement(******.IncomingCall_AnswerButton()) 
     time.sleep(10) 
     if win32gui.GetWindowText(win32gui.GetForegroundWindow()) == "Video Call": 
      count += 1 
      writeFile("Answering Calls", count, local) 
      uploadToServer(local, network) 
+0

它并没有真正从如何,将在任何其他语言来完成不同的苦头。 – 2012-07-16 19:49:29

+1

如果您显示您的代码,我们可以专门帮助您。 – 2012-07-16 19:49:44

+0

究竟是什么,你试图这是行不通的? – 2012-07-16 20:51:38

回答

2

下面的示例(Python 3)获取所有窗口的标题列表:

import win32gui 

def enum_window_titles(): 
    def callback(handle, data): 
     titles.append(win32gui.GetWindowText(handle)) 

    titles = [] 
    win32gui.EnumWindows(callback, None) 
    return titles 

titles = enum_window_titles() 
+0

这段代码也将在Python 2.x下执行。还应该注意的是'GetWindowText'会经常返回一个空字符串,表明该窗口的标题栏中没有任何内容。 – martineau 2012-07-16 23:35:12

+0

谢谢,这有助于证明我使用正确的窗口名称。我已经完成了它的工作,但在我正在编写的脚本的其他部分中仍然存在一些问题。 – youCanCallMeSam 2012-07-17 14:53:26