PDA

Показать полную графическую версию : [Архив - Часть 1.2] 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

NORIO
10-05-2006, 07:51
А кто нибудь знает как взять текст из TreeView, ListView и Listbox входящих в состав интерфейса других програм
(а не GUI сгенерированного autoit скриптом)?

VelDmi
10-05-2006, 14:02
Имеется программа Runpad Shell. У нее есть API.

API в основном используется клиентами программ контроля, хотя может быть полезным и для любых сторонних утилит.

Все функции реализованы ввиде COM-сервера.
Примеры использования для C, C++, Delphi находятся здесь

Общие замечания:
- доступ к функциям осуществляется через единый интерфейс IRunpadShell
- все функции возвращают S_OK в случае успеха и другие коды в противном случае
- функции не являются Unicode

Моя задача написать утилиту, которая бы использовала апи программы на автоит.
Примеры на C, C++, Delphi имеются, но я совершенно не понимаю в этих языках, а с автоит поладил.
Возможно ли написание такой программы на AutoIt?

Sanja Alone
11-05-2006, 03:22
NORIO
А кто нибудь знает как взять текст...С уверенностью утверждать не буду (мне это пока не особо нужно было, поэтому лог обновлений просмотрел мельком), но, вроде в текущих бетах АвтоИт-а такие возм-ти реализованы - попробуй скачать (http://www.autoitscript.com/autoit3/files/beta/autoit/).

VedunO
12-05-2006, 21:46
Пытаюсь разобраться с регулярными выражениями в AutoIt, но не получается :(

Следующий код не работает:


Local $sPattern, $sTest, $vResult, $nFlag

$sPattern = InputBox("StringRegExp Sample", "What is the pattern to test?")
$sTest = InputBox("StringRegExp Sample", "What is the line to test?")
$vResult = StringRegExp ($sTest, $sPattern)
Select
Case @Error = 2
; Error. The pattern was invalid. $vResult = position in $sPattern where error occurred.
Case @Error = 0
if @Extended Then
; Success. Pattern matched. $vResult matches @Extended
Else
; Failure. Pattern not matched. $vResult = ""
EndIf
EndSelect
MsgBox(0, "", $vResult)


Не работает, выпадает окошко (во вложении)

Что я делаю не так ???

XXXler
15-05-2006, 13:17
VedunO, функцию по-ходу убрали (во всяком случае в 3.1.1 ее уже нет)

Никто не в курсе - в будующих версиях планируется ли введение в функцию FindFirstFile() рекурсивного просмотра (с вложенными папками)?

Sanja Alone
16-05-2006, 03:39
VedunO
Что я делаю не такСудя по скриншоту - пытаешься исп-ть более раннюю версию AutoIt не знающую данную ф-цию. Или не загрузил обновление для SciTE (http://www.autoitscript.com/autoit3/scite/downloads.php), в к-ром будут прописаны новые ф-ции.

XXXler
функцию по-ходу убрали (во всяком случае в 3.1.1 ее уже нет)Точнее сказать - добавили, а в 3.1.1 ее еще нет.

The public history for AutoIt v3 (http://www.autoitscript.com/autoit3/files/beta/autoit/docs/history.htm)
Full technical log including beta versions (http://www.autoitscript.com/autoit3/files/beta/autoit/docs/autoit_changelog.txt)

XXXler
16-05-2006, 11:13
Sanja Alone,
Точнее сказать - добавили, а в 3.1.1 ее еще нет.
странно, в русской справке к v3.1.0 она упоминается

Sanja Alone
17-05-2006, 02:03
XXXler
странно, в русской справке к v3.1.0 она упоминается
Это весьма забавный момент: в англ. справке к версии 3.1.1 этой ф-ции нет, но ее знает SciTE (с дефинишенами для AutoIt версии 3.1.1). Т.е., по идее, в 3.1.1 ф-ция должна быть, но, при попытке запуска скрипта вылазит окошко с ошибкой (неизвестное имя ф-ции) - тут явно авторы AutoIt намудрили...

Apple58
19-05-2006, 23:54
Подскажите, как запустить процесс с параметром снятого атрибута ONTOP.
Сам процесс - это окошко с атрибутом ONTOP.
Если ждать появления окна а потом с помощью WinSetState снять атрибут ONTOP, то оно успевает вылезти на самый верх, после чего убирается.

Да, заодно еще вопросик.
Сможет ли, запущенный процесс со снятым атрибутом ONTOP, запускать окошки с атрибутами ONTOP?
А эту проблемку можно обойти?

Dirk Diggler
21-05-2006, 03:28
Я использую Send для посылки текстати типа "xUSSR"
Send("xUSSR")
Но это работает только когда раскладка английская. Как сделать так, чтобы и в русской и прочих раскладках посылалось именно то, что написано?

bogomolv
21-05-2006, 06:15
Dirk Diggler
Я использую Send...
А я использую Поиск...
Поэтому знаю, что проблема легко решается с помощью clipboard. :)

Dirk Diggler
21-05-2006, 13:22
Какой еще клипборд в консольных приложениях типа окна cmd.exe????

bogomolv
22-05-2006, 08:56
Dirk Diggler
Такой: http://forum.oszone.net/post-424899-108.html. Это ответ на твой первый вопрос.
И такой: http://forum.oszone.net/post-428524-126.html. Это - на второй.

Dirk Diggler
22-05-2006, 09:57
Ни первая, ни вторая ссылка не в тему. Не работает вставка клипборда в консольное окно. Dixi. Нужен другой способ.
Особенно я не понял, причем тут Stdout

bogomolv
22-05-2006, 20:13
Dirk Diggler
WinWaitActive('Командная строка')
ClipPut('xUSSR')
MouseClick('right')
Send('а')
Я на все вопросы ответил? Спасибо за внимание.

Dirk Diggler
23-05-2006, 12:39
Нет. Ибо в моей практике 20% консольных окон не выкидывают контекстного меню. Пришлось доработать, но не в этом суть.. А в том, что всё это как-то через задницу. Результат - скрипт для регистрации nnbackup

$Dir = @ProgramFilesDir & "\NNbackup"
$SF= "nnbackup xReg"


Opt ("WinTitleMatchMode", 2) ;1=start, 2=subStr, 3=exact, 4=...]
Opt ("MouseCoordMode", 0)
Opt ("TrayIconDebug",1)

#include <Date.au3>


$iWeekday = _DateToDayOfWeek (@YEAR, @MON, @MDAY)

Select
Case $iWeekday = 1
$Day="воскресенье"
Case $iWeekday = 2
$Day="понедельник"
Case $iWeekday = 3
$Day="вторник"
Case $iWeekday = 4
$Day="среда"
Case $iWeekday = 5
$Day="четверг"
Case $iWeekday = 6
$Day="пятница"
Case $iWeekday = 7
$Day="суббота"
EndSelect


$TEMP = @WorkingDir
FileChangeDir ($Dir)
Run($SF)
WinWaitActive("nnbackup.exe")
;Sleep ( 1000 )
ClipPut('xUSSR регистрация')
MouseMove(10,10,0)
MouseClick('right')
Send("{DOWN 7}{RIGHT}{DOWN 2}{ENTER 2}")
ClipPut($day )
Sleep (500 )
MouseClick('right')
Send("{DOWN 7}{RIGHT}{DOWN 2}{ENTER 2}")

bogomolv
23-05-2006, 20:10
Dirk Diggler
Твоя задачка напомнила что-то подозрительно знакомое. Вспомнил - SlyControl...
Хоть давно им не пользуюсь, удалось разыскать у себя в архиве скрипт:
RunWait('regedit /s "' & $pDir & 'Sly.reg"')
If @MON=01 Then $mnc='югбоьт'
If @MON=02 Then $mnc='хлбюмеч'
If @MON=03 Then $mnc='ноуь'
If @MON=04 Then $mnc='ббулзт'
If @MON=05 Then $mnc='нок'
If @MON=06 Then $mnc='йрот'
If @MON=07 Then $mnc='йрит'
If @MON=08 Then $mnc='бмаээь'
If @MON=09 Then $mnc='рлоьупыт'
If @MON=10 Then $mnc='пдсснюч'
If @MON=11 Then $mnc='маьпьт'
If @MON=12 Then $mnc='елйонюч'
RegWrite('HKEY_CURRENT_USER\Software\SlyDiman\SlyControl2', 'xUSSR', 'REG_SZ', $mnc)

VedunO
24-05-2006, 18:23
Не могу понять, как работает функция "InetGet", пишу:

FtpSetProxy(1) ; прокси не используется
InetGet ("ftp://user:password@10.1.1.18/file.ext", "D:\file.ext", 1)

... и ничего

P.S. вбиваю этот же адрес в Internet Explorer (v6.0) и все работает отлично, пока пользуюсь внешним WGET-ом

Solitude
28-05-2006, 02:27
Подкажите как в AutoIt скрипте дождаться появления некотрого файла, тоесть выполнение скрипта надо продолжить только тогда как появиться конкреткный файл ???

Monarhia
28-05-2006, 03:45
1) Можно ли замениь значок который светитса в панели здач?
2) Какой командой возможно открыть порт?




© OSzone.net 2001-2012