Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: ksa-nsk on November 05, 2014, 08:54:22 PM

Title: как проверить открыт ли блокнот?
Post by: ksa-nsk on November 05, 2014, 08:54:22 PM
надо проверить, открыт ли блокнот, и если нет, то открыть, если да, то не открывать второй.
в кликермане смотрю - блокнота нет, но по скрипту
Code: (clickermann) [Select]
$hwnd_bloknot = wndfind("Блокнот")
print("$hwnd_bloknot=", $hwnd_bloknot)
показывает, что есть, попробовал сделать так ($hwnd - основная программа, с которой буду работать):
Code: (clickermann) [Select]
$hwnd_bloknot = wndfind("Блокнот")
print("$hwnd_bloknot=", $hwnd_bloknot)
IF ($hwnd_bloknot = 0)
    execute("notepad.exe")
    $hwnd_bloknot = wndfind("Блокнот")
        Wait(4)
    WNDBUMP($hwnd) // помещает окно на передний план
Wait(4) 
  ELSE
    WNDBUMP($hwnd_bloknot) // помещает окно на передний план
WNDPOS ($hwnd_bloknot, 50, 50) 
    WNDSIZE( wndfind("Блокнот"), 300, 300)
    $hwnd_bloknot_test = HGET(60, 60)
    IF($hwnd_bloknot = $hwnd_bloknot_test)
                            // очищаю содержимое блокнота
    KEYDOWN(#CTRL)
        waitms(13)
    KEYPRESS(#A)
        waitms(13)
    KEYUP(#CTRL)
        waitms(13)
    KEYPRESS(#DELETE)
        waitms(23)
    WNDBUMP($hwnd) // помещает окно на передний план
    ELSE_IF
    execute("notepad.exe")
            Wait(4)
$hwnd_bloknot = wndfind("Блокнот")
WNDBUMP($hwnd) // помещает окно на передний план
    Wait(4) 
    END_IF
END_IF
в итоге если блокнота нет, он открывается, если есть, то запускается второй блокнот
Title: Re: как проверить открыт ли блокнот?
Post by: Oraven on November 05, 2014, 09:07:04 PM
В блокноте два окна
   IF($hwnd_bloknot = $hwnd_bloknot_test)
внутреннее окно имеет другой HWND поэтому запустится еще один блокнот
Title: Re: как проверить открыт ли блокнот?
Post by: ksa-nsk on November 05, 2014, 09:12:06 PM
я сначала получаю $hwnd_bloknot. Как я думал, если это = 0, то запускаю блокнот, $hwnd_bloknot имеет конкретное значение, хотя блокнот нигде не открыт, я пытался его активировать - облом. В итоге мне нужно переключаться с блокнота на другую программу и наоборот...
Title: Re: как проверить открыт ли блокнот?
Post by: Oraven on November 05, 2014, 09:13:46 PM
Так ты любое окно в заголовке которого написано блокнот захватишь, например эту страницу.
Title: Re: как проверить открыт ли блокнот?
Post by: ksa-nsk on November 05, 2014, 10:06:10 PM
спасибо, вопрос решился так:
Code: (clickermann) [Select]
$hwnd_bloknot = wndfind("__NotDelete.txt")
print("$hwnd_bloknot=", $hwnd_bloknot)

IF ($hwnd_bloknot = 0)
    execute("__NotDelete.txt")
    $hwnd_bloknot = wndfind("__NotDelete.txt")
        Wait(2)
    WNDBUMP($hwnd_bloknot) // помещает окно на передний план
  ELSE
    WNDBUMP($hwnd_bloknot) // помещает окно на передний план
WNDPOS ($hwnd_bloknot, 50, 50) 
    WNDSIZE($hwnd_bloknot, 500, 300)
    KEYDOWN(#CTRL)
        waitms(13)
    KEYPRESS(#A)
        waitms(13)
    KEYUP(#CTRL)
        waitms(13)
    KEYPRESS(#DELETE)
        waitms(23)
END_IF

  WNDBUMP($hwnd) // помещает основное окно на передний план
    wait(2)