Versuch das mal:
[autoit]Func _GetHwndByPID($PID)
$aWinList = WinList()
For $i = 1 To $aWinList[0][0]
If WinGetProcess($aWinList[$i][1]) = $PID Then Return $aWinList[$i][1]
Next
Return SetError(1, 0, 0)
EndFunc
Das Handle ändert sich nicht bei Titelwechsel, es bleibt immer gleich.