Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.
SmallGod,
Как можно скрыть определённую вкладку Tab
Своего приложения?
Спрятать кажется нельзя, можно удалить...
GUICtrlDelete($Tab_Ctrl)
If StringRight($array[$m],1) = "\" Then $array[$m]=StringTrimRight($array[$m],1 )
Пока вот такое навернул!
DENoszone, надо было закрыть интернет ехплорер
Если свой созданный, тогда _IEQuit($oIE).
что убратьчто бы не выскакивало окошко на которое надо нажимать???
Какое окошко? MsgBox(...) ?
как убрать вот в title есть в начале фразы... "АРБУЗ: " как это убрать что бы писался без этого слова
В том примере нет арбуза, есть только * ;)
NikLok, Как экономично узнать, кончается ли строка содержащаяся в переменной, каким то символом?
If StringRight($Var, 1) = "*" Then .... :)
DENoszone
14-03-2008, 23:32
ну я забыл про АРБУЗ =) терь нужно с АРбузом =)))
NikLok,
Пока вот такое навернул!
Тогда действительно RegExp поможет...
$array[$m] = StringRegExpReplace($array[$m], "\\+$", "")
+ можно конечно убрать, это только для того чтобы удалялись все символы \ на конце.
DENoszone, терь нужно с АРбузом
Я не пойму, что именно нужно то? убрать с заголовка слово АРБУЗ?
$sOld_Title = "Мой Арбуз"
$sNew_Title = StringStripWS(StringReplace($sOld_Title, "Арбуз", ""), 2)
WinSetTitle($sOld_Title, "", $sNew_Title)
DENoszone
14-03-2008, 23:47
#include <IE.au3>
While 1
$oIE = _IECreate ("http://www.yandex.ru/yandsearch?random=071215722&stype=www&randomtext=1&lr=187" )
_IELoadWait ($oIE)
$oIE_2 = _IECreate ("http://nigma.ru")
_IELoadWait ($oIE_2)
$oForm = _IEFormGetObjByName ($oIE_2, 0)
$oQuery = _IEFormElementGetObjByName ($oForm, 0)
_IEFormElementSetValue ($oQuery, _IEPropertyGet ($oIE,"title"))
_IEFormSubmit ($oForm)
RunWait(@ComSpec & " /c " & 'taskkill /im iexplore.exe /f', "", @SW_HIDE)
sleep(1000)
WEnd
а как впихнуть его в код?=0
DENoszone,
как впихнуть его в код?
#include <IE.au3>
While 1
$oIE = _IECreate ("http://www.yandex.ru/yandsearch?random=071215722&stype=www&randomtext=1&lr=187")
_IELoadWait ($oIE)
$oIE_2 = _IECreate ("http://nigma.ru")
_IELoadWait ($oIE_2)
$oForm = _IEFormGetObjByName ($oIE_2, 0)
$oQuery = _IEFormElementGetObjByName ($oForm, 0)
$sTitle = StringReplace(_IEPropertyGet($oIE,"title"), "Арбуз", "")
$sTitle = StringStripWS($sTitle, 3)
_IEFormElementSetValue ($oQuery, $sTitle)
_IEFormSubmit ($oForm)
_IEQuit($oIE)
_IEQuit($oIE_2)
;~ RunWait(@ComSpec & " /c " & 'taskkill /im iexplore.exe /f', "", @SW_HIDE)
Sleep(1000)
WEnd
Тогда при убивании...
Creat0R, тогда так:
explorer автоматически перезапускается при сбое, но не при убивании.
Функция ProcessClose и команда taskkill /im explorer.exe /f работают по-разному. taskkill действует так, как если Вы "прибьете" explorer на вкладке Процессы Диспетчера задач, а ProcessClose - как-то иначе. Да, после ProcessClose он сам перезапускается!
HORRIBLE
15-03-2008, 00:26
Неподскажите, проблема возникла, сделал прогу которая нажимает кнопку мышки в определенное время в определенном месте экрана , только вот исходное разрешение экрана было 1280*1024, не могу ни как понять как сделать чтоб на 1024*768 все координаты кликов нормально воспринимались.
Спасибо.
Котяра, taskkill действует так, как если Вы "прибьете" explorer на вкладке Процессы Диспетчера задач
Нет, как раз всё наоборот. taskkill убивает процесс, т.е не вызывает никаких параметров зарытия для самого процесса. ProcessClose заурывает процесс, точно также как он сам закрывается при сбое.
HORRIBLE, как сделать чтоб на 1024*768 все координаты кликов нормально воспринимались.
Воспринимаются то они нормально, просто при разных разрешениях экрана координаты соответственно меняются :) Мжно попробовать функцию Opt("MouseCoordMode")... но наврядли решит проблему...
Можно также подсчитывать соотношения разных разрешении экрана.
А где кликается, возможно проще кликать относительно окна?
HORRIBLE
15-03-2008, 00:45
Клик происходит в Интернет экспловере. Что делаю загружаю страничку, после ее загрузки, раскрываю ее на полный экран.
А где кликается, возможно проще кликать относительно окна?
А это как?
Тут Creat0R приводил пример кода чтоб отправить прогу в бесконечный сон. Вот такой вопросик, если есть несколько своих функций допустим:
_Fight()
_Health()
_Coin()
функия паузы, ее код
$Paused = False
HotKeySet("{ESC}", "ToggleScriptPause")
Func ToggleScriptPause(); пауза
$Paused = Not $Paused
Local $iOpt_GOEM = Opt("GuiOnEventMode", 1)
If $iOpt_GOEM = 1 Then Opt("GuiOnEventMode", 0)
While $Paused
Sleep(100)
WEnd
EndFunc
каким образом сделать чтобы пауза не включалась при работе допустим функции _Fight() даже если был нажат ESC и включалась только после отработки _Fight() .
Спасибо.
HORRIBLE,
А это как?
Можно использовать ControlClick.. для IE (6.x) типичный контроль это «Internet Explorer_Server1», вот относительно ему можно попробовать кликать:
ControlClick("[CLASS:IEFrame]", "", "Internet Explorer_Server1", "Left", 1, 70, 225)
70 и 255 это координаты взятые с «AutoIt v3 Window Info Tool», из вкладки «Summary» у надписи “ControlClick Coords:”.
А вообще для IE есть библиотека #include <IE.au3>.
каким образом сделать чтобы пауза не включалась при работе допустим функции _Fight() даже если был нажат ESC и включалась только после отработки _Fight() .
Создать ещё одну глобальную переменную со значением False (допустим $Func_Started), в начале нужной функции присваивать этой переменной значение True и в конце False. А в функции паузы проверять это значение:
Global $Paused = False
Global $Func_Started = False
HotKeySet("{ESC}", "ToggleScriptPause")
;;;;
Func ToggleScriptPause(); пауза
If $Func_Started Then Return ;Если наша функция работает, значит завершаем эту функцию.
$Paused = Not $Paused
Local $iOpt_GOEM = Opt("GuiOnEventMode", 1)
If $iOpt_GOEM = 1 Then Opt("GuiOnEventMode", 0)
While $Paused
Sleep(100)
WEnd
EndFunc
Func _Fight()
$Func_Started = True
;Тут содержимое нашей функции
$Func_Started = False
EndFunc
Func _Health()
$Func_Started = True
;Тут содержимое нашей функции
$Func_Started = False
EndFunc
Func _Coin()
$Func_Started = True
;Тут содержимое нашей функции
$Func_Started = False
EndFunc
DENoszone
15-03-2008, 14:55
у меня запускается IE не в полное окно? как сделать что бы в полное?
Maza Faka
15-03-2008, 15:37
DENoszone
у меня запускается IE не в полное окно? как сделать что бы в полное?
Можно так:
#include <IE.au3>
$oIE = _IECreate("http://forum.oszone.net", 0, 1, 0)
WinWait("[Class:IEFrame]")
WinSetState("[Class:IEFrame]", "", @SW_MAXIMIZE)
_IELoadWait($oIE)
DENoszone
15-03-2008, 15:58
можно как то код
_IEQuit($oIE)
_IEQuit($oIE_2)
сделать что бы закрывались все окна...или хотя бы текущее
HORRIBLE
15-03-2008, 17:20
DENoszone
чтобы закрыть вообще все окна IE:
$list = ProcessList("iexplore.exe")
for $i = 1 to $list[0][0]
ProcessClose($list[$i][1])
next
Привет всем!
У меня 2 вопросика:
Как можно запустить изображение без границ, и автоматически активировать всплывающее окно в трее.
Вроде все. Заранее спасибо.
Подскажите, как можно решить проблему вставки цифр из формы excel в программу стороннего производства. При этом количество цифр в строке excel необходимое для переноса всегда постоянное, количество строк - разное.
Делаю следующим образом
$n = InputBox("Внимание!", "Какое количество строк необходимо заполнить?", 0, "", 150, 140)
If $n = 0
Then
Exit
EndIf
$i = 0
Do $i = $i + 1
; ячейка 1
WinActivate ("Microsoft Excel - Книга1")
WinWaitActive ("Microsoft Excel - Книга1")
Send ("^{insert}" & "{right}")
WinActivate ("Форма")
WinWaitActive ("Форма")
Send ("{space}" & "^v" & "{bs}{enter}")
; ячейка 2
WinActivate ("Microsoft Excel - Книга1")
WinWaitActive ("Microsoft Excel - Книга1")
Send ("^{insert}" & "{right}")
WinActivate ("Форма")
WinWaitActive ("Форма")
Send ("{space}" & "^v" & "{bs}{enter}")
; ячейка 3
...
Until $i = $n
Но таким способом получается слишком долго!
Если бы скопировать всю строку (или диапазон) в excel'е, то получилось бы быстрее, но при копировании строки в буфере обмена строка содержится в следующем формате ->
'10,3 23,4 110,4 34,8'
с пробелами между цифрами и одинарными скобками в начале и конце.
Так вот есть ли способ вставлять попеременно из буфера обмена поочередно цифры 10,3 затем 23,4 и т.д. и чтобы не вставлялись одинарные скобки???
Creat0R, о чем я и говорю. taskkill убивает процесс,
т.е не вызывает никаких параметров зарытия для самого процесса. »
ProcessClose закрывает процесс
точно также как он сам закрывается при сбое »
Maza Faka
16-03-2008, 07:26
DENoszone, HORRIBLE
сделать что бы закрывались все окна
Быстрее будет без использования массива:
Do
WinClose("[Class:IEFrame]")
Until Not WinExists("[Class:IEFrame]") ;)
Как можно запустить изображение без границ, и автоматически активировать всплывающее окно в трее. »
#include <GuiConstants.au3>
$hGUI = GUICreate("Test GUI", 300, 200, -1, -1, $WS_POPUP)
$hPic = GUICtrlCreatePic(@SystemDir & "\setup.bmp", 0, 0, 300, 200)
GUICtrlSetState(-1, $GUI_DISABLE)
GUISetState()
TrayTip("Message", "TrayTip", 1)
Do
Until GUIGetMsg() = -3
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.