Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] сокрытие окна, как только оно появилось или всплыло

Ответить
Настройки темы
[решено] сокрытие окна, как только оно появилось или всплыло

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25


Конфигурация

Профиль | Отправить PM | Цитировать


В AutoIt я новичок. Вот есть пару вопросов.
Вот запускаю программу скрыто:
Код: Выделить весь код
Run("Keymaker.exe", "", @SW_HIDE)
Потом жму на форме скрытой программы кнопку:
Код: Выделить весь код
ControlClick("Diskeeper 2009 keymaker", "", "TButton1")
Скрытое окно показывается, что мне не нужно.
Может есть какой нить способ, чтоб наш скрипт автоматом скрывал окно по заголовку, когда оно появляется, или когда было сокрытое, но потом "всплыло" через необъяснимые причины?
Тоесть, мне нужно, чтоб сокрытие окон работало в отдельном потоке, а основной скрипт (запуск программы, нажатие кнопок) выполнялся независимо.

Отправлено: 21:44, 27-07-2009

 

Аватара для ven00m

Пользователь


Сообщения: 76
Благодарности: 12

Профиль | Отправить PM | Цитировать


Как вариант можешь перетащить окно за границу экрана используя WinMove и там с ним работать.

Отправлено: 22:26, 27-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Вариант халтурный . Жду еще ответов.

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 22:45, 27-07-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата crashtuak:
мне нужно, чтоб сокрытие окон работало в отдельном потоке, а основной скрипт (запуск программы, нажатие кнопок) выполнялся независимо. »
Либо в дополнительном скрипте, либо через callback:

Код: Выделить весь код
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Timers.au3>
;

Opt("WinWaitDelay", 0)

Global $sTitle = "Search Title"
Global $hGUI = GUICreate($sTitle)
Global $iTimer = TimerInit()

_Timer_SetTimer($hGUI, 10, "_CheckWindow_Proc")

While 1
    If TimerDiff($iTimer) >= 2000 Then ;Тут мы имитируем появление тайного окна (ради теста)
        ConsoleWrite("Окно появилось" & @CRLF)
        GUISetState(@SW_SHOW)
        Sleep(2000) ;Спим 2 сек. чтобы убедиться что наш процесс проверки обнаружил окно и скрыл его
        _Timer_KillAllTimers($hGUI)
        Exit
    EndIf

    Sleep(10)
WEnd

Func _CheckWindow_Proc($hWnd, $Msg, $iIDTimer, $dwTime)
    If BitAND(WinGetState($sTitle), 2) Then
        ConsoleWrite("Скрываем окно" & @CRLF)
        WinSetState($sTitle, "", @SW_HIDE)
    EndIf
EndFunc
“Чистый” пример использования:

Код: Выделить весь код
#include <Timers.au3>
;

Opt("WinWaitDelay", 0)

Global $sSearchTitle = "Search Title"
_Timer_SetTimer(0, 10, "_CheckWindow_Proc")

While 1
    ;Тут мы выполняем рутинные операции

    Sleep(10)
WEnd

Func _CheckWindow_Proc($hWnd, $Msg, $iIDTimer, $dwTime)
    If BitAND(WinGetState($sSearchTitle), 2) Then WinSetState($sSearchTitle, "", @SW_HIDE)
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:15, 27-07-2009 | #4


Аватара для timsky

Новый участник


Сообщения: 46
Благодарности: 10

Профиль | Отправить PM | Цитировать


Цитата crashtuak:
Вариант халтурный . Жду еще ответов. »
А в чем халтурность? @SW_HIDE тоже ничего особенного не делает. Запускай скрутым, передвигай за пределы и кликай

Отправлено: 03:30, 28-07-2009 | #5


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
“Чистый” пример использования: »
Идеально подошел. Хотя он мне непонятный (я AutoIt юзаю 1 час от силы ), но работает идеально.

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 09:07, 28-07-2009 | #6


Забанен


Сообщения: 1
Благодарности: 0

Профиль | Цитировать


Так как же работает данный скрипт может ктото объяснить???

Код: Выделить весь код
#include <Timers.au3>
;

Opt("WinWaitDelay", 0)

Global $sSearchTitle = "Search Title"
_Timer_SetTimer(0, 10, "_CheckWindow_Proc")

While 1
    ;Тут мы выполняем рутинные операции

    Sleep(10)
WEnd

Func _CheckWindow_Proc($hWnd, $Msg, $iIDTimer, $dwTime)
    If BitAND(WinGetState($sSearchTitle), 2) Then WinSetState($sSearchTitle, "", @SW_HIDE)
EndFunc
Как он скрывает окно установки?

Отправлено: 15:22, 30-07-2009 | #7


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Цитата Volshebnick:
Как он скрывает окно установки? »
Как обычное @SW_HIDE, только кроет оно окно как только состояние окна отличное от @SW_HIDE.

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 21:47, 30-07-2009 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] сокрытие окна, как только оно появилось или всплыло

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как получить только исхоный код страницы по HTTP (без картинок и тд - только текст)? evg64 AutoIt 3 10-01-2010 01:17
C/C++ - bat & cmd - сокрытие окна и вывод данных консоли в интерфейсе нашей программы crashtuak Программирование и базы данных 5 07-05-2009 16:40
перемещается не окно а его контур,а потом только оно,как это исправить? Grandi Хочу все знать 2 10-04-2009 07:37
Интерфейс - [решено] Появилось несоответствие ярлыка программе roniro Microsoft Windows 2000/XP 9 05-07-2008 18:12
[решено] CDROM=%~d0 - Объясните непонятливому, как оно работает, плз. (+) Mchik Автоматическая установка Windows 2000/XP/2003 6 14-07-2006 19:57




 
Переход