Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
Он закрывается, просто там ведь пауза стоит в 5 секунд »
Да я как бы и предполагал, что он должен закрыться, но увы, он остаётся по прежнему в трее :|
Кликнуть можно по координатам кнопки сворачивания (в «AutoIt Info Tool» можно их посмотреть наведя курсор мышки на кнопку) с помощью MouseClick. Но это не надёжно »
Почему? Тогда, думаю, решить проблему не удастся :(
увы, он остаётся по прежнему в трее »
А если так:
Sleep(5000)
WinSetState("SoulSeek", "", @SW_MINIMIZE)
:)
Почему? »
Хотябы потому что координаты меняются, например при перемещении окна :) Можно ещё попробовать просто спрятать окно (заменить @SW_MINIMIZE на @SW_HIDE), но сомневаюсь что оно спрячется таким образом в трей :(
Хотябы потому что координаты меняются, например при перемещении окна Можно ещё попробовать просто спрятать окно (заменить @SW_MINIMIZE на @SW_HIDE), но сомневаюсь что оно спрячется таким образом в трей »
Ну а если окно всегда на одном месте? - Т.е. я хочу сказать, что для того, что бы правильно отработал скрипт, SS всегда запускается развёрнутым на весь экран, т.е. таким образом ведь можно сохранить "статику" кнопки минимизировать?
А если так:
Sleep(5000)
WinSetState("SoulSeek", "", @SW_MINIMIZE) »
Это куда посдтавить, перед WinSetState("SoulSeek", "", @SW_MINIMIZE)?
$iTimer = TimerInit()
While 1
If $iTimer <> 0 And TimerDiff($iTimer) >= 5000 Then
$iTimer = 0
Sleep(5000)
WinSetState("SoulSeek", "", @SW_MINIMIZE)
EndIf
Sleep(10)
WEnd
Можно ещё так попробовать:
Sleep(5000)
WinActivate("SoulSeek")
WinWaitActive("SoulSeek", "", 5)
If WinActive("SoulSeek") Then
$iLeft_Min_Button = 70 ;Указывает отступ кнопки сворачивания с правой стороны у окна
$aWin_Pos = WinGetPos("SoulSeek")
Opt("MouseCoordMode", 0)
$aMouse_Pos = MouseGetPos()
MouseClick("Main", $aWin_Pos[0]+$aWin_Pos[2]-$iLeft_Min_Button, 10, 1, 0)
MouseMove($aMouse_Pos[0], $aMouse_Pos[1], 0)
EndIf
Переменную $iLeft_Min_Button возможно нужно изменить, в зависимости от того где будет кликать мышка, чтобы это проверить, нужно закомментировать строку с возвратом мышки на исходную позицию (MouseMove(...)).
Это куда посдтавить »
Это не нужно, я в первом скрипте просто привёл два разных примера, первый с циклом, второй с паузой.
Последний скрипт прекрасно работает :) Теперь нужно только его сопоставить правильно доя работы :) Спасибо огромное.
Причём работает он на любом окне, не зависимо от заголовка насколько я понял - прав?
Причём работает он на любом окне, не зависимо от заголовка »
Ну почему, только на окне которое содержит в заголовке "SoulSeek" :)
Почему тогда Тотал Коммендер он тоже сворачивает? :)
Такой вопрос, помогите: мучаюсь, не могу реализовать свои замыслы. Вот в этом примере:proba.au3 : #include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form = GUICreate("Dialog", 316, 273, 360, 243)
GUISetIcon("D:\003.ico")
$Button1 = GUICtrlCreateButton("OK", 1, 235, 75, 25, 0)
$Button2 = GUICtrlCreateButton("Очистить", 119, 235, 75, 25, 0)
$Button3 = GUICtrlCreateButton("Выход", 234, 235, 75, 25, 0)
$Edit = GUICtrlCreateEdit("" & @CRLF, 0, 88, 169, 81, $ES_AUTOVSCROLL + $WS_VSCROLL)
GUICtrlSetLimit($Edit, 100)
$Combo = GUICtrlCreateCombo("Ваш Выбор:", 8, 8, 297, 25)
GUICtrlSetData(-1, '1|2|', '')
$Label1 = GUICtrlCreateLabel("Осталось символов:", 8, 48, 109, 17)
$neizvesno = GUICtrlCreateLabel("???", 120, 48, 36, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE,$Button3
Exit
Case $Button1
_Getpicture()
EndSwitch
WEnd
Func _Getpicture()
$i=GUICtrlRead($Combo)
Switch $i
Case 1
GUICtrlCreatePic(@WindowsDir & "\Штукатурка.bmp", 208, 96, 81, 65)
Case 2
GUICtrlCreatePic(@WindowsDir & "\Пузыри.bmp", 208, 96, 81, 65)
Case Else
MsgBox(0, Default, 'Сделайте выбор в элементе Combo')
EndSwitch
EndFunc
Хочу чтоб появлялся рисунок при выборе из Combo (примерно так как появляется, когда я нажимаю на кнопку ОК), но только при выборе из элемента Combo и без нажатия на кнопку ОК. Тоесть выбрал 1 - рисунок поменялся, 2-тоже. И еще, как подключить кнопку Очистить на очистку поля Edit. И еще не могу придумать, чтоб там где у меня $neizvesno велся отсчет от ограничения на ввод символов(у меня100) и до 0 при вводе символов в поле Edit(тоесть сначала там 100, а ввел 1символ - стало 99. Вот такая сложная задача, Сегодня окончил читать тему, все 143 страницы, паралельно изучаю справку, и на Ru.Board сижу, - решения не нашел. Хоть совет прошу.
Рисунки взял первые на выбор, можно любыми заменить небольшого формата!(но если нету никаких ?!, то в прикрепленном файле они).
Я на Полезное сообщение нажимал уже не раз, а у меня написано - благодарности 0. Не подумайте что мне сказать спасибо трудно, не знаю еще как...
shyra1976
05-01-2009, 17:13
beve, dobav Штукатурка.bmp
Пузыри.bmp
BonD 007
05-01-2009, 17:47
Включил адресную строку и всё заработало. »
Везёт. У меня так и не заработало, хоть адресная строка и включена. И 1 пробовал ставить у переменной $iGet_Path_Method, и на рабочем столе тыкал CTRL+CHIFT+N... папка не создаётся. Лог всё время такой:
2009-01-05 16:31:01>> ============ Debug Log For [AutoIt v3 Script.au3] Started...
2009-01-05 16:31:01>> ============ Operating System: WIN_XP
2009-01-05 16:31:01>> ============ Service Pack: Service Pack 3
2009-01-05 16:31:01>> ============ File System: FAT32 ============
...
2009-01-05 16:31:38>> ============ Debug Log Finished (EXIT CODE: 0) ============
katok888
05-01-2009, 18:24
BonD 007, То же самое, только File System: NTFS Ну и фиг с ним, я просто ради интереса
пробовал.
Почему тогда Тотал Коммендер он тоже сворачивает? »
Странно, не должен он этого делать, возможно запущен другой скрипт, предыдущий, который в цикле всё и сворачивает? :) Попробуй в процессах "убить" все AutoIt3.exe.
BonD 007, katok888,
Лог всё время такой
У вас раскладка клавиатуры по умолчанию какая? Попробуйте в скрипте ещё добавить и это:
HotKeySet("^+т", "_CreateFolder_Proc")
HotKeySet("^+ц", "_Quit")
Хотя странно что всё же скрипт завершается по «Ctrl + Shift + W» (судя по логу).
Ещё одна вероятная причина, какое то другое приложение перехватывает эти клавиши (Ctrl + Shift + N), если добавление строчек выше не поможет, попробуйте сменить клавиши в скрипте, например на «^n» (Ctrl + N).
BonD 007
05-01-2009, 22:34
HotKeySet("^+т", "_CreateFolder_Proc") HotKeySet("^+ц", "_Quit") »
Заработало. Creat0R, спасибище тебе огромное. Странно, что раньше не работало даже при смене раскладке клавиатуры (не по умолчанию которая, а просто).
Хотя странно что всё же скрипт завершается по «Ctrl + Shift + W» (судя по логу). »
Я просто убрал строку #NoTrayIcon и завершал через трей.
Creat0R, да ну какие процессы о чём вы? :) Говорю же он сворачивает все подряд окна без разбора, СоулСик это или нет...
он сворачивает все подряд окна без разбора, СоулСик это или нет... »
Кто-то ещё может подтвердить данное поведение, у меня такого не наблюдается :(
Раз такие дела, то пожалуйста проверьте уж пожалуйста :)
ssms.exe (http://sharebee.com/9689d7df)
проверьте уж пожалуйста »
Подозрительное имя процесса... :unsure:
Я проверяю со скриптом который я и запостил тут (http://forum.oszone.net/post-997896.html#post997896), с ним у меня проблем нет, даже если он скомпилирован.
А что в нём подозрительного? SoulSeek Minimize Script сумбурный набор букв.
Внутри это:
Sleep(5000)
WinActivate("SoulSeek")
WinWaitActive("SoulSeek", "", 5)
If WinActive("SoulSeek") Then
$iLeft_Min_Button = 70 ;Указывает отступ кнопки сворачивания с правой стороны у окна
$aWin_Pos = WinGetPos("SoulSeek")
Opt("MouseCoordMode", 0)
$aMouse_Pos = MouseGetPos()
MouseClick("Main", $aWin_Pos[0]+$aWin_Pos[2]-$iLeft_Min_Button, 10, 1, 0)
MouseMove($aMouse_Pos[0], $aMouse_Pos[1], 0)
EndIf
Где камни?
Я проверяю со скриптом который я и запостил тут, с ним у меня проблем нет, даже если он скомпилирован. »
У меня тоже никаких проблем нет - проблема одна, вы говорите, что он должен работать только с окном Суслика...
Вы пробовали мой срипт?
beve
Вот такая сложная задача »
У меня ушло на неё 10 минут ;)
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <ComboConstants.au3>
$hForm = GUICreate("Dialog", 316, 273, 360, 243)
GUISetIcon("D:\003.ico")
$nOK_Button = GUICtrlCreateButton("OK", 1, 235, 75, 25, 0)
$nClean_Button = GUICtrlCreateButton("Очистить", 119, 235, 75, 25, 0)
$nExit_Button = GUICtrlCreateButton("Выход", 234, 235, 75, 25, 0)
$nEdit = GUICtrlCreateEdit("" & @CRLF, 0, 88, 169, 81, BitOR($ES_AUTOVSCROLL, $WS_VSCROLL))
GUICtrlSetLimit($nEdit, 100)
$nCombo = GUICtrlCreateCombo("Ваш Выбор:", 8, 8, 297, 25, BitOr($GUI_SS_DEFAULT_COMBO, $CBS_DROPDOWNLIST))
GUICtrlSetData(-1, '1|2|')
GUICtrlCreateLabel("Осталось символов:", 8, 48, 109, 17)
$nCount_Label = GUICtrlCreateLabel(100-StringLen(GUICtrlRead($nEdit)), 120, 48, 36, 17)
$nPic = GUICtrlCreatePic("", 208, 96, 81, 65)
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $nExit_Button
Exit
Case $nClean_Button
GUICtrlSetData($nEdit, "")
Case $nOK_Button
_GetPicture()
Case $nCombo
_GetPicture()
EndSwitch
WEnd
Func _GetPicture()
Switch GUICtrlRead($nCombo)
Case 1
GUICtrlSetImage($nPic, @WindowsDir & "\Штукатурка.bmp")
Case 2
GUICtrlSetImage($nPic, @WindowsDir & "\Пузыри.bmp")
Case Else
MsgBox(0, Default, 'Сделайте выбор в списке', 0, $hForm)
EndSwitch
EndFunc
Func WM_COMMAND($hWnd, $nMsg, $wParam, $lParam)
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wParam, 0xFFFF)
Switch $nID
Case $nEdit
Switch $nNotifyCode
Case $EN_UPDATE
GUICtrlSetData($nCount_Label, 100-StringLen(GUICtrlRead($nID)))
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc
что в нём подозрительного? »
Есть похожие трояны (http://forum.xakep.ru/text/default.aspx?ID=1018756&type=topic)
Вы пробовали мой срипт? »
Да, ничего лишнего не сворачивает, только если есть коно с заголовком SoulSeek :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.