Войти

Показать полную графическую версию : [Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 [46] 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

amel27
18-09-2008, 12:07
shyra1976
может использовать _CommSendByte(), _CommSendByteArray() ?
Serial port (COM port) udf, includes ability to send/receive binary data (http://www.autoitscript.com/forum/index.php?showtopic=45842&st=0&p=341916)

shyra1976
18-09-2008, 12:36
Вот например Стринг $sEyer25 = Chr(0xA9) & Chr(0x05) & Chr(0x57) & Chr(0x1) & Chr(0x07) и вот что видем "©W"в Console
возу $sEyer25 = Chr(0xA9) & Chr(0x05) & Chr(0x57) & Chr(0х00) & Chr(0x7B) и "0" он невидет Вот что видет
"©W+>"

_CommSendByte(), _CommSendByteArray() - и функций эти не видят "0"

amel27
18-09-2008, 12:47
shyra1976, так пробовал?_CommSendByte(0xA9,1)
_CommSendByte(0x05,1)
_CommSendByte(0x57,1)
_CommSendByte(0x00,1)
_CommSendByte(0x7B,1)

shyra1976
18-09-2008, 13:31
amel27,
Ne znaiy kak blogadarit SPASIBO

semiono
18-09-2008, 13:42
Нужно установить Alcohol52.
AutoIt3 нажимает кнопки и делает всё корректно!
Вопрос в следующем:
Предположим надо зделать хотфикс для nLite. При этом желательно вообще скрыть все окна!
Но я так понял, что если окна нету, то AutoIt не сможет нажимать ничего или я ошибаюсь???
Если можно то как!?

Я закатал, скажем [alcohol.exe + script.exe] в InnoSetup и это работает.
Но когда я пытаюсь запустить так MyAlc.exe /VERYSILENT - висит!
Ну я уже чисто потом понял причину.

Два вопроса:
1. Вообще можно жать в свёрнутые окна иль нет?
2. Как это зделать, что почитать или конкретно пример покажите?

(я чайник, если можно подробнее если можно)

Creat0R
18-09-2008, 13:54
Ne znaiy kak blogadarit »
Под сообщением есть ссылка http://forum.oszone.net/images/smilies/up.gif Полезное сообщение (http://forum.oszone.net/post_thanks.php?do=post_thanks_add&p=902393) ;).

можно жать в свёрнутые окна иль нет? »
Вроде можно:

#include <GuiConstants.au3>

$GUI = GUICreate("Test Script", 300, 200)

$Button = GUICtrlCreateButton("Button", 20, 40, 60, 20)

GUISetState(@SW_SHOW, $GUI)
GUISetState(@SW_MINIMIZE, $GUI)
Sleep(1000)

ControlClick($GUI, "", $Button)

GUISetState(@SW_RESTORE, $GUI)

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Button
MsgBox(0, "", "Ok, you can use ControlClick() on minimized windows.")
EndSwitch
WEnd

Но...

Remarks

Some controls will resist clicking unless they are the active window. Use the WinActivate() function to force the control's window to the top before using ControlClick().

gvshil
18-09-2008, 13:56
Возникла проблема:
Как можно запустить AutoIt скрипт на одном компьютере, чтобы он выполнился на другом компьютере? Сеть из двух компьютеров, папка расшарена с полными правами.

;Alfa - имя компьютера
;1-папка, в которой находиться исполняемый файл
;2.exe -имя файла
Global $file= '\\Alfa\1\2.exe'
FileChangeDir ( '\\Alfa\1' )
Run ($file) ; не найден сетевой путь
;ShellExecuteWait ( $file, "", "", "open", @SW_HIDE ); не найден сетевой путь

Maza Faka
18-09-2008, 14:02
1. Вообще можно жать в свёрнутые окна иль нет? »
Можно и в свёрнутые и в невидимые. :)

Как это зделать, что почитать или конкретно пример покажите? »
Пример:
Run("calc.exe")

WinWait("[Class:SciCalc]")

$hWnd = WinGetHandle("[Class:SciCalc]")

WinSetState($hWnd, "", @SW_HIDE)

ControlClick($hWnd, "", "Button7")

Sleep(3000)

WinSetState($hWnd, "", @SW_SHOW)

А почитать можно в справке ;)

Maza Faka
18-09-2008, 14:26
Как можно запустить AutoIt скрипт на одном компьютере, чтобы он выполнился на другом компьютере? »
Используй утилиту psexec (http://www.google.ru/search?hl=ru&q=psexec&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq=)

semiono
18-09-2008, 19:30
http://forum.oszone.net/showpost.php?p=901269
не осилю :(
А нельзя как-то глобально вообще запретить гуй!?
GUISetState ( @SW_HIDE , "Alcohol" )

PS ставлю перед всеми -
winwaitactive($Title,'Welcome to the Alcohol')
такое: WinSetState ($Title, "", @SW_HIDE)
что не так?

Painkiller
20-09-2008, 13:07
Народ, подскажите , как в установщике галочку поставить . Что надо прописать?
Вот код :
Run("IE8-WindowsXP-x86-RU-mui.exe")
WinWaitActive ("Установка Internet Explorer")
Send ("{ENTER}")
Send ("{ENTER}")
ControlClick('Установка Internet Explorer','','&Нет, перезагрузить компьютер позже >') -????

Creat0R
20-09-2008, 13:48
что не так? »
:)
WinWaitActive() будет ждать окно, пока оно не активируется, но ведь если мы прячем окно, как оно будет активироваться? скрипт будет вечно ждать это окно.

как в установщике галочку поставить . Что надо прописать? »
Трудно сказать, не зная заранее данных окна и его элементов...
Можно попробовать так:

ControlCommand('Установка Internet Explorer', '', 'CheckBox1', 'Check')

Рысь
20-09-2008, 14:02
Painkiller, можно попробовать через внутренние идентификаторы окна (но как сказал Креатор мы без данных не поможем), читайте справку..
а самый простой способ - нажмите Таб несколько раз, пока не дойдёте до выделения места с галкой, потом нажмите Пробел и дальше Таб до выделения кнопки, куда нажимаете Ввод..

WinWaitActive ("Установка Internet Explorer")
Send ("{ENTER}")
Send ("{ENTER}")

; если здесь нужно нажимать галку, то следущие строки находятся здесь, если нет - перенсите их
Send ("{TAB}")
Send ("{SPACE}")

ControlClick('Установка Internet Explorer','','&Нет, перезагрузить компьютер позже >') -????

Painkiller
20-09-2008, 14:23
Галку надо поставить "Нет, перезагрузить компьютер позже". Будем пробовать!

Creat0R
20-09-2008, 14:53
Галку надо поставить "Нет, перезагрузить компьютер позже". »
В комплекте с AutoIt'ом идёт утилита, называется «AutoIt Window Info Tool (http://www.autoitscript.com/autoit3/docs/intro/au3spy.htm)», с её помощью можно посмотреть класс элемента (в данном случае чекбокса/птички), и использовать его при вызове ControlClick().

Painkiller
20-09-2008, 15:43
Run("IE8-WindowsXP-x86-RU-mui.exe")
WinWaitActive ("Установка Internet Explorer")
ControlClick('Установка Internet Explorer','','Button2') - тут всё окей
ControlClick('Установка Internet Explorer','','Button2')- тут всё окей
ControlClick('Установка Internet Explorer','','Button3')- тут не фига.
эТО НЕ ЧЕБОКC, а RadioButton. AutoIt Window Info Tool показывает что это Button3. Как вы видете в самом конце прописал. И всё равно не хочет переключать на другой RadioButton. Чё делать? Это установщик руссификации к Internet Explorer

Creat0R
20-09-2008, 16:44
всё равно не хочет переключать на другой RadioButton. Чё делать? »
Попробовать так:

ControlCommand('Установка Internet Explorer', '', 'Button3', 'Check')

Painkiller
20-09-2008, 16:53
Всёравно не пашет. Ладно я убью процесс просто . Только как сделать, чтобы скрип подождал некоторое время?

Maza Faka
20-09-2008, 17:03
Painkiller
Sleep()

Painkiller
20-09-2008, 17:11
Спасибо всем кто помогал! Проблема решена убийством окна!




© OSzone.net 2001-2012