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

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

Ответить
Настройки темы
Скрыть всплывающее окно ...

Аватара для FlatX007

Ветеран


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

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


Вобщем проблема такая : во время работы периодически появляется окно , я его отлавливаю и скрываю но оно всё равно мигает и пропадает на экране.
Пробовал менял время обработки цикла отлова этого окна - от это только растёт нагрузка на процессор.

Окошко представляет собой системное окошко Windows для ввода логина и пароля при подключении.
Можно его как-то скрывать до его появления, что бы оно не мигало? ... с учётом того, что ...

Код: Выделить весь код
If WinExists("Подключение к stat.****.net","") Then
If $PasswordBufer = 1 Then
Send($DecodePasword)
Send("{ENTER}")
EndIf
WinSetState("Подключение к stat.****.net", "", @SW_HIDE)
ControlClick("Подключение к stat.****.net", "", "[CLASS:Button; INSTANCE:2]")

Отправлено: 22:53, 28-05-2009

 

Аватара для Creat0R

Must AutoIt


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

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


Можно установить ожидание окна в 0: Opt("WinWaitDelay", 0)

Если дело не в этом, то полный-рабочий пример в студию.

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

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

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:48, 28-05-2009 | #2



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

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


Аватара для FlatX007

Ветеран


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

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


Всё равно мигает - только быстрее пропадает

"Полный" пример вот.

Код: Выделить весь код
Opt("WinWaitDelay", 0)

;~ .....................................

$PasswordBufer = 1
$DecodePasword = 123456
$WindowCert = 1
$WindowConn = 1

While 1
        If $WindowCert = 1 Then ; Окно сетрификата
            If WinExists("Предупреждение системы безопасности","") Then
                WinSetState("Предупреждение системы безопасности", "", @SW_HIDE)
                ControlClick("Предупреждение системы безопасности", "", "[CLASS:Button; INSTANCE:1]")
            EndIf
        EndIf

        If $WindowConn = 1 Then ; Окно подключения
            If WinExists("Подключение к stat.****.net","") Then
                WinSetState("Подключение к stat.****.net", "", @SW_HIDE)
                If $PasswordBufer = 1 Then  ; вставлять автоматически
                    Send($DecodePasword)
                EndIf
;~              WinSetState("Подключение к stat.****.net", "", @SW_HIDE)
                ControlClick("Подключение к stat.****.net", "", "[CLASS:Button; INSTANCE:2]")
            EndIf
        EndIf

;~ .......................................

Sleep(250)
WEnd

Отправлено: 16:21, 29-05-2009 | #3


Аватара для Yashied

Старожил


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

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


Цитата FlatX007:
Вобщем проблема такая : во время работы периодически появляется окно , я его отлавливаю и скрываю но оно всё равно мигает и пропадает на экране.
Пробовал менял время обработки цикла отлова этого окна - от это только растёт нагрузка на процессор.
Окошко представляет собой системное окошко Windows для ввода логина и пароля при подключении.
Можно его как-то скрывать до его появления, что бы оно не мигало? ... с учётом того, что ... »
Мое мнение: без хука здесь не обойдешься, а так как для этого необходимо писать полноценную DLL (не DllCallBackRegister()), то в AutoIt это зделать очень проблематично (если вообще возможно).

Я думаю проще использовать средства Windows для тихого подключения. Google на это даст множество ответов.

Отправлено: 18:31, 29-05-2009 | #4


Аватара для Creat0R

Must AutoIt


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

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


Цитата FlatX007:
Всё равно мигает - только быстрее пропадает »
Ну вообще чтобы не появлялось наврядли получится. Вот пример с использованием хука, быстрее уже некуда вроде:

Код: Выделить весь код
#NoTrayIcon
;

HotKeySet("^e", "_Quit")

;ShellHook notification codes:
Global Const $HSHELL_WINDOWCREATED = 1;
Global Const $HSHELL_WINDOWDESTROYED = 2;
Global Const $HSHELL_ACTIVATESHELLWINDOW = 3;
Global Const $HSHELL_WINDOWACTIVATED = 4;
Global Const $HSHELL_GETMINRECT = 5;
Global Const $HSHELL_REDRAW = 6;
Global Const $HSHELL_TASKMAN = 7;
Global Const $HSHELL_LANGUAGE = 8;
Global Const $HSHELL_SYSMENU = 9;
Global Const $HSHELL_ENDTASK = 10;
Global Const $HSHELL_ACCESSIBILITYSTATE = 11;
Global Const $HSHELL_APPCOMMAND = 12;
Global Const $HSHELL_WINDOWREPLACED = 13;
Global Const $HSHELL_WINDOWREPLACING = 14;
Global Const $HSHELL_RUDEAPPACTIVATED = 32772;
Global Const $HSHELL_FLASH = 32774;

Global $aMonitor_WinTitles[3] = [2, "Предупреждение системы безопасности", "Подключение к stat.****.net"]
Global $hGUI = GUICreate("Shell Hooker")

;Hook stuff:
GUIRegisterMsg(RegisterWindowMessage("SHELLHOOK"), "HShellWndProc")
ShellHookWindow($hGUI, 1)

While 1
    Sleep(1000)
WEnd

Func HShellWndProc($hWnd, $Msg, $wParam, $lParam)
    Switch $wParam
        Case $HSHELL_WINDOWCREATED
            Local $s_Title = WinGetTitle($lParam)

            For $i = 1 To $aMonitor_WinTitles[0]
                If $s_Title = $aMonitor_WinTitles[$i] Then
                    WinKill($lParam)
                    ExitLoop
                EndIf
            Next
    EndSwitch
EndFunc

;register/unregister ShellHook
Func ShellHookWindow($hWnd, $bFlag)
    Local $sFunc = 'DeregisterShellHookWindow'
    If $bFlag Then $sFunc = 'RegisterShellHookWindow'

    Local $aRet = DllCall('user32.dll', 'int', $sFunc, 'hwnd', $hWnd)
    Return $aRet[0]
EndFunc

;register window message
Func RegisterWindowMessage($sText)
    Local $aRet = DllCall('user32.dll', 'int', 'RegisterWindowMessage', 'str', $sText)
    Return $aRet[0]
EndFunc

Func _Quit()
    ShellHookWindow($hGUI, 0)
    Exit
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

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

Отправлено: 19:46, 29-05-2009 | #5


Аватара для FlatX007

Ветеран


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

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


Цитата Yashied:
Мое мнение: без хука здесь не обойдешься, а так как для этого необходимо писать полноценную DLL (не DllCallBackRegister()), то в AutoIt это зделать очень проблематично (если вообще возможно).
Я думаю проще использовать средства Windows для тихого подключения. Google на это даст множество ответов. »
В каком смысле средства Виндовс для подключения ?
У меня работает отдельная программа которая опрашивает HTTPS сервер о данных баланса (грубо говоря она сохраняет HTML код станицы в файле во временной папке). Эту программу написал один мой знакомый на "HiAsm" ... но она с косяком почему-то периодически появляется это злополучное окошко для ввода логина и пароля. На AutoIT неполучилось написать, как оказалось он отказывается работать с HTTPS.

Цитата Creat0R:
Ну вообще чтобы не появлялось наврядли получится. Вот пример с использованием хука, быстрее уже некуда вроде: »
Оба окошка вообще не скрываются .... и в окошко подключения должен вставляться пароль а иначе программа инициатор этого окна небудет работать.

Отправлено: 07:37, 30-05-2009 | #6


Аватара для Creat0R

Must AutoIt


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

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


Цитата FlatX007:
На AutoIT неполучилось написать, как оказалось он отказывается работать с HTTPS. »
В справке написано что https поддерживается.

Цитата FlatX007:
Оба окошка вообще не скрываются .... и в окошко подключения должен вставляться пароль а иначе программа инициатор этого окна небудет работать »
Ну это всего лишь пример, в HShellWndProc можно самому изменить нужные условия проверки (в цикле при переборе заголовков с массива).

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

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

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


Отправлено: 12:46, 30-05-2009 | #7


Аватара для FlatX007

Ветеран


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

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


Цитата Creat0R:
В справке написано что https поддерживается. »
Я вкурсе, что оно потдерживается но на деле неработает ничего

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


Аватара для Creat0R

Must AutoIt


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

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


Цитата FlatX007:
на деле неработает ничего »
Не работает слишком громко сказано, возможно причина вовсе не в протоколе https (это можно попробовать выяснить в отдельной теме).

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

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

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


Отправлено: 22:24, 30-05-2009 | #9


Аватара для FlatX007

Ветеран


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

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


http://forum.oszone.net/thread-138886.html

Отправлено: 22:32, 30-05-2009 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Всплывающее окно при открытии папки clin Microsoft Windows NT/2000/2003 3 11-12-2008 08:37
Вопрос - Как убрать всплывающее окно? cesiy Защита компьютерных систем 6 10-09-2008 17:49
Как остановить скрипт, пока юзер не закроет всплывающее окно? Gamover jr Вебмастеру 5 16-04-2008 20:08
Win 2003 - Достало всплывающее окно предлагающее перезагрузку Nitrokamer Microsoft Windows NT/2000/2003 1 30-11-2006 15:35
Чтобы появилось всплывающее окно надо кликать docSERG Microsoft Windows 95/98/Me (архив) 5 14-02-2003 17:39




 
Переход