Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
Тогда я не приложу ума, в чём может быть причина такого поведения, может быть из-за того, что заголовок содержит не толь SoulSeek?
AutoIt может путаться из-за двух экранов?
SAOPP,
А если так:
Sleep(5000)
$sTitle = "SoulSeek"
WinActivate($sTitle)
WinWaitActive($sTitle, "", 5)
If WinActive($sTitle) Then
$iLeft_Min_Button = 70 ;Указывает отступ кнопки сворачивания с правой стороны у окна
$aWin_Pos = WinGetPos($sTitle)
;$iOld_Opt_MCM = Opt("MouseCoordMode", 0)
$aMouse_Pos = MouseGetPos()
MouseClick("Main", $aWin_Pos[0]+$aWin_Pos[2]-$iLeft_Min_Button, $aWin_Pos[1]+10, 1, 0)
;Opt("MouseCoordMode", $iOld_Opt_MCM)
MouseMove($aMouse_Pos[0], $aMouse_Pos[1], 0)
EndIf
может быть из-за того, что заголовок содержит не толь SoulSeek? »
Скрипт обрабатывает только окно с заголовком в котором содержиться «SoulSeek».
AutoIt может путаться из-за двух экранов? »
Не приходилось сталкиваться, но всякое может быть...
Курсор мигает там где находится кнопка минимизировать, но ничего не происходит...
Ага это было из-за отступа, он был почти по середине между минимизировать и развернуть. Поставил 72, сам перешёл в окну Сусла и свернул, чужие теперь не сворачивает, ещё щас поиграюсь с отступом, спасибо ;)
это было из-за отступа »
Я же говорил что это не надёжный метод :biggrin:
Хаха, нет же, сворачивает любое окно!
сворачивает любое окно! »
Тест скрипт:
$sTitle = "SoulSeek"
WinActivate($sTitle)
WinWaitActive($sTitle, "", 5)
If WinActive($sTitle) Then MsgBox(64, "Test", "Active Window Title: " & WinGetTitle("[Active]"))
Что выдаёт?
Щас провертю. Я думаю может быть указать как окно его индефикатор?
Я на Полезное сообщение нажимал уже не раз, а у меня написано - благодарности 0 »
Это у того у кого вы нажали добавляется благодарность, под вашим профилем отображаются благодарности выраженные вам :) - Подробнее (http://forum.oszone.net/thread-65382.html)
Выдаёт текущий заголовок окна...
Причём всегда выдаёт только Суслика, даже если он в трее...
Выдаёт текущий заголовок окна...
Причём всегда выдаёт только Суслика »
Вот тут я понять не смог, конкретно, какой заголовок возвращается? Вместо MsgBox можно подставить ClipPut(WinGetTitle("[Active]")), тогда заголовок попадёт сразу в буфер обмена :)
Дубль №3:
Sleep(5000)
$sTitle = "SoulSeek"
If Not BitAND(WinGetState($sTitle), 2) Then Exit
WinActivate($sTitle)
WinWaitActive($sTitle, "", 3)
If BitAND(WinGetState($sTitle), 8) Then
$iLeft_Min_Button = 70 ;Указывает отступ кнопки сворачивания с правой стороны у окна
$aWin_Pos = WinGetPos($sTitle)
$aMouse_Pos = MouseGetPos()
MouseClick("Main", $aWin_Pos[0]+$aWin_Pos[2]-$iLeft_Min_Button, $aWin_Pos[1]+10, 1, 0)
Sleep(10)
MouseMove($aMouse_Pos[0], $aMouse_Pos[1], 0)
EndIf
P.S
Сколько примерно времени скрипт ожидает прежде чем свернуть окно? Если около 10-ти секунд значит проблема в распознавании окна, но возможно тут ошибка (баг?) в функции WinActive...
Вот тут я понять не смог, конкретно, какой заголовок возвращается? Вместо MsgBox можно подставить ClipPut(WinGetTitle("[Active]")), тогда заголовок попадёт сразу в буфер обмена »
Заголовок всегда окна Суслика.
Ну теперь вроде бы сворачивает ТОЛЬКО СС. Утром ещё потестирую, спасибо за возьню, ещё отпишу ;)
Заголовок всегда окна Суслика »
Нашёл вообщем багу в WinActive (или в WinActivate), возвращает 1 если скрытое окно активируется, нужно зарепортить...
#include <GuiConstants.au3>
GUICreate("Test GUI", 300, 200)
GUISetState(@SW_HIDE)
$sTitle = "Test GUI"
WinActivate($sTitle)
$IsActive_1 = (WinActive($sTitle) = 1)
$IsActive_2 = (BitAND(WinGetState($sTitle), 8) = 8)
;Окно то скрытое, как оно может быть активно?
ConsoleWrite("Win Is Visible: " & (BitAND(WinGetState($sTitle), 2) = 2) & @CRLF)
ConsoleWrite("Win Is Active (WinActive Method): " & $IsActive_1 & @CRLF)
ConsoleWrite("Win Is Active (WinGetState Method): " & $IsActive_2 & @CRLF)
Maza Faka
06-01-2009, 11:47
Creat0R, Нашёл вообщем багу в WinActive (или в WinActivate), возвращает 1 если скрытое окно активируется »
Почему бага? Если окно не видимо это ещё не значит, что оно не может быть активным (находиться в самом верху Z-последовательности)
#include <GuiConstants.au3>
$sTitle = "Test GUI"
GUICreate($sTitle, 300, 200)
GUISetState(@SW_HIDE)
WinActivate($sTitle)
MsgBox(0, "Test", "Deactivate window")
$IsActive_1 = (WinActive($sTitle) = 1)
$IsActive_2 = (BitAND(WinGetState($sTitle), 8) = 8)
;Окно то скрытое, как оно может быть активно?
ConsoleWrite("Win Is Visible: " & (BitAND(WinGetState($sTitle), 2) = 2) & @CRLF)
ConsoleWrite("Win Is Active (WinActive Method): " & $IsActive_1 & @CRLF)
ConsoleWrite("Win Is Active (WinGetState Method): " & $IsActive_2 & @CRLF)
:)
Ну по сути да, оно то скрыто, но оно то есть... Дак что мне делать? :)
Почему бага? Если окно не видимо это ещё не значит, что оно не может быть активным (находиться в самом верху Z-последовательности) »
Логично, но имхо, не правильно. Тогда видимо нужно обновить доку (справку) на эту тему, у меня давно была похожая проблема с невозможностью работать с GUI окнами после приминения WinActivate() (на скрытом окне), теперь я понял почему, нужно было окно сначала сделать видимым.
Также в справке есть упоминание об @extended, но не пишется что именно означает тот или инной код:
If Not ProcessExists("Notepad.exe") Then
WinActivate("[CLASS:Notepad]")
ConsoleWrite("@extended = " & @extended & @CRLF) ;@extended = 0, window not exists, therefore it's can not be active :)
Run(@WindowsDir & "\Notepad.exe")
EndIf
WinWait("[CLASS:Notepad]")
WinActivate("[CLASS:Notepad]")
ConsoleWrite("@extended = " & @extended & @CRLF) ;@extended = 1, window was *active*
WinSetState("[CLASS:Notepad]", "", @SW_MINIMIZE)
WinActivate("[CLASS:Notepad]")
ConsoleWrite("@extended = " & @extended & @CRLF) ;@extended = 2, window was *not* active (minimized)
Дак что мне делать? »
Использовать Дубль №3 (http://forum.oszone.net/post-998376.html#post998376)? :unsure:
Аляксандр
06-01-2009, 14:07
Добрый всем день подскажите пожалусто:) Возможно ли написать скрипт который будет При его запуске Будет ставить рабочую группу:) И имя компютера в сети:) а есчо Vpn Соединение:) http://www.autoitscript.com/forum/index.php?showtopic=33005
прочитав папробовал написать ничего неполучается(
Creat0R, ну так собсно и делаю :)
266903582
06-01-2009, 14:15
Жмем на ссылку в программе, она запускает браузер по умолчанию с параметром: -url "http://www.wtf.ru/" -requestPending
Все проходит гладко.
Вместо браузера кладем свою программу и все произойдет как в оригинальном случае, кроме одной неприятной мелочи. Программа-отправитель обязательно ругнется: "file not found", хотя приложение будет запущено с теми же параметрами. Есть подозрение что браузер на переданные параметры чем-то отвечает. Поиск бесплоден. Проблема в принципе чисто эстетическая, все работает, хоть и приходится гасить коллекцию сообщений об ошибках, но хочется сделать по человечески...
Здрасте всем!
Это мой первый пост и сразу вопрос:
Почему у меня не работает подсказка GUICtrlSetTip(), что я делаю не так?
#include <GUIConstants.au3>
#include <StaticConstants.au3>
;~ #include <WindowsConstants.au3>
GUICreate("My GUI", 250, 150)
$Btn1 = GUICtrlCreateButton("ON", 10, 10, 50)
$Btn2 = GUICtrlCreateButton("OFF", 10, 40, 50)
GUISetState(@SW_SHOW)
$Label = GUICtrlCreateLabel("Test", 70, 45, 53, 15)
GUICtrlSetStyle(-1, $SS_GRAYFRAME)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Btn1
GUICtrlSetStyle($Label, 0)
GUICtrlSetBkColor($Label, 0xFFFF00)
GUICtrlSetTip($Label, "My TIP")
Case $Btn2
GUICtrlSetStyle(-1, $SS_GRAYFRAME)
EndSwitch
WEnd
GUIDelete()
Maza Faka
06-01-2009, 15:33
Логично, но имхо, не правильно »
Почему?
Также в справке есть упоминание об @extended, но не пишется что именно означает тот или инной код »
Может быть в @extended сохраняется состояние окна перед активизацией?
Почему у меня не работает подсказка GUICtrlSetTip(), что я делаю не так? »
Хмм... похоже на баг, если не использовать функцию GUICtrlSetStyle, то ToolTip срабатывает.
Creat0R
Пользуясь случаем, хочу спросить, как зарепортить баг на офф. форуме?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.