Opt('MustDeclareVars', 1)
Global $fExit, $aWnd[1]
HotKeySet('{Esc}', '_Exit')
AdlibRegister('_CheckWnd', 250)
While Not $fExit
Sleep(1000)
;~ рандомный запуск-закрытие окон блокнота для проверки, уберите эти строки
;~ ---------------------------------------------------------------------------
Switch $aWnd[0]
Case 0 To 1
Run('notepad.exe');
Case 2 To 14
Run('notepad.exe')
If Random(0, 4, 1) = 4 Then WinClose($aWnd[Random(1, $aWnd[0], 1)])
Case Else
WinClose($aWnd[Random(1, $aWnd[0], 1)])
EndSwitch
;~ ---------------------------------------------------------------------------
WEnd
;~ закрываем все окна блокнота, можно убрать.
_CloseAllWinsdows()
Func _CheckWnd()
Local $s_Title = 'Блокнот', $s_Search = '[REGEXPTITLE:.*' & $s_Title & '.*;CLASS:Notepad]', $a_Win, $s_StrHandle = '|', $i_Max = 100, _
$a_NewWnd[$i_Max + 1], $s_NewTitle
;~ поменяйте на Ваш кусок заголовка и класс окна
If $aWnd[0] Then
For $i = 1 To $aWnd[0]
If (WinExists($aWnd[$i])) And (BitAND(WinGetState($aWnd[$i]), 2)) Then
$s_StrHandle &= $aWnd[$i] & '|'
$a_NewWnd[0] += 1
If $a_NewWnd[0] > $i_Max Then
$i_Max += 100
ReDim $a_NewWnd[$i_Max + 1]
EndIf
$a_NewWnd[$a_NewWnd[0]] = $aWnd[$i]
If $a_NewWnd[0] <> $i Then
$s_NewTitle = $a_NewWnd[0] & ' - ' & $s_Title;номер в начале
;~ $s_NewTitle = $s_Title & ' - ' & $a_NewWnd[0];номер в конце
WinSetTitle($a_NewWnd[$a_NewWnd[0]], '', $s_NewTitle)
EndIf
EndIf
Next
EndIf
$a_Win = WinList($s_Search)
If Not $a_Win[0][0] Then
ReDim $a_NewWnd[$a_NewWnd[0] + 1]
$aWnd = $a_NewWnd
Return
EndIf
For $i = 1 To $a_Win[0][0]
If StringInStr($s_StrHandle, '|' & $a_Win[$i][1] & '|') Then
ContinueLoop
EndIf
$a_NewWnd[0] += 1
If $a_NewWnd[0] > $i_Max Then
$i_Max += 100
ReDim $a_NewWnd[$i_Max + 1]
EndIf
$a_NewWnd[$a_NewWnd[0]] = $a_Win[$i][1]
$s_NewTitle = $a_NewWnd[0] & ' - ' & $s_Title;номер в начале
;~ $s_NewTitle = $s_Title & ' - ' & $a_NewWnd[0];номер в конце
WinSetTitle($a_NewWnd[$a_NewWnd[0]], '', $s_NewTitle)
Next
ReDim $a_NewWnd[$a_NewWnd[0] + 1]
$aWnd = $a_NewWnd
_WinMove($aWnd);можно убрать
EndFunc ;==>_CheckWnd
Func _Exit()
AdlibUnRegister('_CheckWnd')
$fExit = True
EndFunc ;==>_Exit
Func _CloseAllWinsdows()
Local $a_Wnd
For $j = 1 To 5
$a_Wnd = WinList('[REGEXPTITLE:.*Блокнот.*;CLASS:Notepad]')
If Not $a_Wnd[0][0] Then Return
For $i = 1 To $a_Wnd[0][0]
WinClose($a_Wnd[$i][1])
Next
Next
EndFunc ;==>_CloseAllWinsdows
Func _WinMove($a_Wnd)
Local Static $i__StepX = 0, $i__StepY = 0, $i__W = 0, $i__H = 0
Local $i_X, $i_Y, $i_Count
If Not $i__StepX Then $i__StepX = Int(@DesktopWidth / 5)
If Not $i__StepY Then $i__StepY = Int(@DesktopHeight / 3)
If Not $i__W Then $i__W = $i__StepX - 5
If Not $i__H Then $i__H = $i__StepY - 5
For $j = 0 To 2
$i_Y = $j * $i__StepY
For $i = 0 To 4
$i_Count += 1
$i_X = $i__StepX * $i
WinMove($a_Wnd[$i_Count], '', $i_X, $i_Y, $i__W, $i__H)
If $i_Count = $a_Wnd[0] Then Return
Next
Next
EndFunc ;==>_WinMove