Собственно вопрос в названии, как грамотно соединить три бесконечных цикла,
чтобы они работали одновременно и не теряли в скорости
Код:
#include <Clipboard.au3>
$sProcessString = IniRead(@ScriptDir & '\Settings.ini', 'Process', 'ProcessString', 'mspaint.exe')
While 1
Sleep(100)
$Memo = _ClipBoard_GetData()
If $Memo = 0 And @extended = 0 Then
$pid = WinGetProcess('[ACTIVE]', '')
$sName = _ProcessName($pid)
If Not StringInStr($sProcessString, $sName) Then ClipPut('')
EndIf
WEnd
Func _ProcessName($pid)
If IsString($pid) Then $pid = ProcessExists($pid)
If Not IsNumber($pid) Then Return -1
$proc = ProcessList()
For $p = 1 To $proc[0][0]
If $proc[$p][1] = $pid Then Return $proc[$p][0]
Next
Return -1
EndFunc ;==>_ProcessName
Код:
#include <Array.au3>
#include <Misc.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>
HotKeySet('{ESC}', '_Exit')
Global $iWait_MS = 250
Global $aTitle = StringSplit('CabinetWClass|Progman|WorkerW', '|')
While Sleep(10)
If _IsPressed(1) Then
Sleep($iWait_MS)
If _IsPressed(1) Then
Local $tPoint = _WinAPI_GetMousePos()
Local $hWFP = _WinAPI_WindowFromPoint($tPoint)
Local $hAncestor = _WinAPI_GetAncestor($hWFP, $GA_ROOTOWNER)
If _ArraySearch($aTitle, _WinAPI_GetClassName($hAncestor)) <> -1 Then
MouseUp('Main')
EndIf
EndIf
EndIf
WEnd
Func _Exit()
Exit
EndFunc
Код:
While 1
WinClose("[TITLE:Подтверждение удаления;CLASS:#32770]", "")
ControlClick("Предупреждение диспетчера задач", "", "[CLASS:Button; INSTANCE:2]")
Sleep(2)
WEnd
чтобы они работали одновременно и не теряли в скорости