PDA

Показать полную графическую версию : Оработка открытого окна


11943499
20-07-2009, 18:07
Как расположить эти строки, чтобы окно ввода пароля стало активированным и прозрачным ? Если ставить до Input - не сработает, так как окно ЕЩЕ не открыто.
Если ставить после Input, не сработает, так как окно УЖЕ находится в режиме ожидания.


WinSetTrans("Security Check", "", 80) ; Make window semi-transparent.
WinActivate("Security Check", "")

$passwd = InputBox("Security Check", "Enter your password.", "", "*")

Creat0R
20-07-2009, 18:39
Можно вот так:


_WinSetTransEx("Security Check", "", 80)
$passwd = InputBox("Security Check", "Enter your password.", "", "*")

Func _WinSetTransEx($sTitle, $sText, $nTrans)
Local $sScript = 'Opt("WinWaitDelay", 0)' & @CRLF
$sScript &= 'AutoItWinSetTitle("$~$~_WinSetTransEx~$~$")' & @CRLF
$sScript &= 'WinWait("' & $sTitle & '", "' & $sText & '")' & @CRLF
$sScript &= 'WinSetTrans("' & $sTitle & '", "' & $sText & '", ' & $nTrans & ')' ; Make window semi-transparent.

Local $sOld_Opt_WWD = Opt("WinWaitDelay", 0)

Local $hFile = FileOpen(@TempDir & "\~au3_script.tmp", 2)
FileWrite($hFile, $sScript)
FileClose($hFile)

Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & @TempDir & '\~au3_script.tmp"')
WinWait("$~$~_WinSetTransEx~$~$")
FileDelete(@TempDir & "\~au3_script.tmp")

Opt("WinWaitDelay", $sOld_Opt_WWD)
EndFunc

Creat0R
20-07-2009, 18:46
Конечно может не сработать »
Ты ещё сомневаешься в этом? :)

Во-первых, $passwd это не заголовок окна, почему он используется как таковой в WinSetTrans?
И во-вторых, автор темы ведь написал (что и должно быть понятым из справки) - функция WinSetTrans не будет вовсе вызвана пока InputBox не закроется, такие функции (как и Msgbox для примера) блокируют выполнение скрипта.

11943499
20-07-2009, 20:09
Спасибо, все работает, похожий способ использовал, когда скрипт обрабатывает другой скрипт, жаль что сделать это в реальном времени невозможно.

Creat0R
20-07-2009, 23:33
жаль что сделать это в реальном времени невозможно »
Возможно. Нужно свой GUI рисовать.

proxy
21-07-2009, 00:33
11943499, Возможно. Нужно свой GUI рисовать. » именно об этом и говорил на ру-борде....на этом форуме, уже была тема на эту тему, и были примеры там, и не один..

11943499
21-07-2009, 00:47
Возможно. Нужно свой GUI рисовать. »
Оно понятно, что возможно в принципе. Есть еще С+, ассемблер )
Я про то, что возможно это где-то есть, странно, что нет похожего примера.
Самому лениво глубоко копать, напрограмился уже в свое время.... :)

proxy
21-07-2009, 00:57
Самому лениво глубоко копать, напрограмился уже в свое время.... »
твою работу за тебя ни кто делать не будет ! соберись, напрягись и в путь ....поиск рядом ;)

Creat0R
21-07-2009, 01:33
возможно это где-то есть, странно, что нет похожего примера »
Есть (http://forum.oszone.net/forumdisplay.php?f=103&filter_string=inputbox&filter_by=title).




© OSzone.net 2001-2012