Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
WinWait + Hide (скрыть окно и выполнить нажатия клавиатуры

Ветеран


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


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

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


Вложения
Тип файла: 7z My_LocalSecurityIP.7z
(8.9 Kb, 13 просмотров)
Проблема:
Сделал скрипт по импорту локальной политики безопасности (файрвол). Код - см. приаттаченный файл.
Вопросы:
1. Все отрабатывает корректно, но есть одно но - процесс мелькания окон виден на экране монитора. Возможно ли его скрыть? Если да, то подскажите, пожалуйста, как.
2. Если нельзя скрыть, то можно ли процесс мелькания спрятать за каким-нибудь окном (например окном утилиты, которая и запускает этот скрипт)

Заранее спасибо за любую помощь.

-------
мы рождены, чтоб сказку сделать былью


Отправлено: 06:44, 22-09-2010

 

Аватара для FlatX007

Ветеран


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

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


Может так ... http://rghost.ru/2696747
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:22, 22-09-2010 | #2



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

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


Ветеран


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

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


FlatX007, к сожалению, после появления картинки и запуска secpol.msc, скрипт дальше не отрабатывает, импорта не происходит.

Судя по всему, это в принципе не реализуемо, т.к. рабочее окно должно быть активным, а мы пытаемся увести его на второй план.

-------
мы рождены, чтоб сказку сделать былью


Отправлено: 13:57, 22-09-2010 | #3


Аватара для FlatX007

Ветеран


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

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


Цитата saavaage:
не реализуемо, т.к. рабочее окно должно быть активным »
Не обязательно, нужно ещё раз перевести на это окно фокус (окно останется на заднем плане но будет активное), проверь ...
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:31, 22-09-2010 | #4


Ветеран


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

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


FlatX007, вот работающий скрипт (так и не понял, в чем его принципиальное отличие от Вашего, кроме использование Disable вместо Hide):

читать дальше »
Код: Выделить весь код
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>
#include <GDIPlus.au3>
Global $DebugMode = 0
_GDIPlus_StartUp()
::::::::::::::::::::::;
$Data - вставить здесь инфо из архива
:::::::::::::::::::::::
$sData=Binary($sData)
$file = FileOpen(@MyDocumentsDir&'\my_localpolicy_Ip.ipsec',18)
FileWrite($file, $sData)
FileClose($file)

$tRECT = _WinAPI_GetWorkArea()
$Width = DllStructGetData($tRECT, 'Right') - DllStructGetData($tRECT, 'Left')
$Height = DllStructGetData($tRECT, 'Bottom') - DllStructGetData($tRECT, 'Top')
$X = DllStructGetData($tRECT, 'Left')
$Y = DllStructGetData($tRECT, 'Top')

$hForm = GUICreate('MyGUI', $Width, $Height, $X, $Y, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
$Label1 = GUICtrlCreateLabel("Локальная политика безопасности...", 80, 48, 729, 80)
GUICtrlSetBkColor(-1, -2)
GUICtrlSetFont(-1, 30, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFF00)
GUISetBkColor(0, $hForm)
WinSetTrans($hForm, '', 255)
GUISetState()

$hImage   = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\gpg.png")
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hForm)
_GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 100, 130)

ShellExecute("secpol.msc")
WinWaitActive("Локальные параметры безопасности")
WinSetState("Локальная политика безопасности", "", @SW_DISABLE)
send("{down 1}")
sleep(50)
send('{LSHIFT}+{F10}')
sleep(50)
Send("{down 3}")
sleep(50)
send("{right}")
sleep(50)
send("{down 3}")
sleep(50)
send("{ENTER}")
sleep(50)
send('my_localpolicy_Ip.ipsec')
sleep(50)
send("{ENTER}")
sleep(50)
send("{tab}")
sleep(50)
send("{down 3}")
sleep(50)
send('{LSHIFT}+{F10}')
sleep(50)
send("{down 1}")
sleep(1000)
send("{ENTER}")
sleep(50)
WinClose("Локальные параметры безопасности")
sleep(50)
FileDelete(@MyDocumentsDir&'\my_localpolicy_Ip.ipsec')
sleep(1000)

WinClose("Локальные параметры безопасности")
;~ WinClose("Локальная политика безопасности") ; Win 7

FileDelete(@MyDocumentsDir&'\LocalSecurityIP.ipsec')
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_ShutDown()

Работает, естесственно, с Вашим gpg.png и вставкой в выделенное место информации из моего архива.
Работает , но с оговорками: скрывает за заставкой только первое окно, все последующие (например, контекстные меню) возникающие окна видны. Я так понимаю, что необходимо отлавливать их ID и скрывать каждое? Если так, то, имхо, игра не стоит свечь...

-------
мы рождены, чтоб сказку сделать былью


Отправлено: 16:07, 24-09-2010 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как скрыть консольное окно? 7human7 Скриптовые языки администрирования Windows 39 30-03-2018 17:29
Как (лучше) скрыть окно? semiono AutoIt 1 10-05-2010 13:12
Скрыть всплывающее окно ... FlatX007 AutoIt 9 30-05-2009 22:32
Как избавиться от необходимости нажатия ESC после изменении расклада клавиатуры? Do Not Disturb Microsoft Windows 95/98/Me (архив) 3 16-02-2005 23:32
Скрыть окно Hard Программирование и базы данных 4 27-09-2002 09:14




 
Переход