получить заголовок окна из pid - PullRequest
2 голосов
/ 03 апреля 2012

Я ищу способ получить заголовок окна из идентификатора процесса.

Я хотел бы построить функцию получения pid определенного окна и вернуть заголовок окна.

Я пытаюсь использовать AutoIt, но он не работает.

Есть идеи?

Ответы [ 2 ]

8 голосов
/ 03 апреля 2012

Это должно быть довольно просто:

Process.GetProcessById(processId).MainWindowTitle;

И если вам нравится эта функция, как вы и просили:

public string GetWindowTitle(int processId){
  return Process.GetProcessById(processId).MainWindowTitle;
}
4 голосов
/ 03 апреля 2012

Это было сделано много раз в AutoIt раньше, с возможностью вернуть все окна, принадлежащие процессу, а не только главное.

Этот пост предоставляет стандартное решение,Если гниль распространяется:

;0 will return 1 base array; leaving it 1 will return the first visible window it finds
Func _WinGetByPID($iPID, $nArray = 1)
    If IsString($iPID) Then $iPID = ProcessExists($iPID)
    Local $aWList = WinList(), $sHold

    For $iCC = 1 To $aWList[0][0]
        If WinGetProcess($aWList[$iCC][1]) = $iPID And _
            BitAND(WinGetState($aWList[$iCC][1]), 2) = 0 Then
            If $nArray Then Return $aWList[$iCC][0]
            $sHold &= $aWList[$iCC][0] & Chr(1)
        EndIf
    Next

    If $sHold Then Return StringSplit(StringTrimRight($sHold, 1), Chr(1))
    Return SetError(1, 0, 0)
EndFunc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...