#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Func SEARCHHWND($INPID)
Local $I, $HWIN, $LISTWIN = WinList()
$I = 0
Do
$I = $I + 1
$HWIN = WinGetProcess($LISTWIN[$I][0])
Until $HWIN = $INPID Or $I >= $LISTWIN[0][0]
If $HWIN = $INPID Then
Return $LISTWIN[$I][1]
Else
Return -1
EndIf
EndFunc
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Renamer by lcd1232", 252, 127, 366, 187)
$Checkbox = GUICtrlCreateCheckbox("Окна класса PW", 17, 80, 111, 41)
$Button = GUICtrlCreateButton("Переименовать", 136, 80, 97, 41, $WS_GROUP)
$Input = GUICtrlCreateInput("Новое название", 16, 48, 217, 21)
GUICtrlSetCursor (-1, 5)
$Window = GUICtrlCreateCombo("Window", 16, 8, 217, 25)
GUISetState(@SW_SHOW)
Dim $Form1_AccelTable[1][2] = [["{ENTER}", $Button]]
GUISetAccelerators($Form1_AccelTable)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
If $Window <>0 Then
SEARCHHWND($NPID)
EndIf
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func SEARCHPID()
Local $LISTPROCEL = ProcessList("elementclient.exe")
Local $I, $MEMLIST, $NAME, $K = 0, $LISTNAME = "", $ADDMEM
If $LISTPROCEL[0][0] <> 0 Then
$NUMELEMENT = $LISTPROCEL
$LISTTITLE[0][0] = $LISTPROCEL[0][0]
For $I = 1 To $LISTPROCEL[0][0]
$MEMLIST = _MEMORYOPEN($LISTPROCEL[$I][1])
$NAME = READNAMECHAR(_MEMORYREAD(_MEMORYREAD($BASEADD1C, $MEMLIST) + $BaseStruct, $MEMLIST) + $NameOFF, $MEMLIST)
_MEMORYCLOSE($MEMLIST)
WinSetTitle(($LISTPROCEL[$I][1]), "", $NAME)
If $NAME = "" Then $NAME = "Ошибка"
$LISTTITLE[$I][0] = $LISTPROCEL[$I][1]
$LISTTITLE[$I][1] = SEARCHHWND($LISTPROCEL[$I][1])
WinSetTitle($LISTTITLE[$I][1], "", $NAME)
$LISTTITLE[$I][2] = $NAME
$LISTTITLE[$I][3] = $LISTPROCEL[$I][0]
If $I < $LISTPROCEL[0][0] Then
$LISTNAME = $LISTNAME & $NAME & "|"
Else
$LISTNAME = $LISTNAME & $NAME
EndIf
If $NAME = $NAMECHAR And $NAMECHAR <> "Ошибка" Then $K = $I
Next
$LISTELEMENT = $LISTNAME
GUICtrlSetData($Window, "")
GUICtrlSetData($Window, $LISTELEMENT)
If $K <> 0 Then
GUICtrlSetData($Window, $NAMECHAR)
EndIf
EndIf
EndFunc
AdlibRegister("_Search",1000)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _Search ()
If $Window <>0 Then
SEARCHHWND($NPID)
EndIf
EndFunc
Вот вам готовое решение (откапал в своих архивах). Делал год назад для своих домочадцев, когда они играли в PW.Я хочу написать ренеймер для игры Perfect World.