[Архив - Часть 1.2] AutoIt скрипты

Ответить
 • Просмотры: 14
Аватара пользователя
Creat0R

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Creat0R »

Цитата:



Болшое спасибо! это мне поможет запускать программу с несколькими ключами. Но вот как запускать с ключом, который заранее не известен?



тогда надо либо определится с количеством и\или порядком ключей\параметров либо делать подключи и опциональные параметры

я уже давал пример
[Архив - Часть 1.2] AutoIt скрипты
, если его видоизменить то можно передавать определенные значения с подключами:



Код:

Код: Выделить всё

For $i=1 To $CmdLine[0]
Select
Case StringLeft(CmdLine[$i],5)="/url="
$url=StringTrimLeft(CmdLine[$i],5)
Case StringLeft(CmdLine[$i],6)="/save="
$savename=StringTrimLeft(CmdLine[$i],6)
....
EndSelect
Next

тогда можно вызывать с параметрами /url=
http://ya.ru/logo.gif
[/i] и\или /save=c:\temp, только следует не забывать что параметры с пробелами следует заключать в кавычки
Аватара пользователя
Ivan1986

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Ivan1986 »

А ProcessClose разве его не корректно завершеает?

Кстати не нашел там ProcessKill



По поводу винампа попробуй



Код:

Код: Выделить всё

AutoItSetOption("WinTitleMatchMode", 4)
WinClose("classname=Winamp v1.x", "")
Аватара пользователя
Creat0R

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Creat0R »

Ivan1986


Цитата:



А ProcessClose разве его не корректно завершеает?



Нет, эта опция "Убивает процесс".




Цитата:



По поводу винампа попробуй



Большое спасибо, немного помогло, но мне нужно чтобы появился винам, и затем открылось диалоговое окно для выбора файлов...

Я выкрутился временно так:





Код:

Код: Выделить всё

;Проверяю, если винам не запущен, то...
If Not ProcessExists("winamp.exe") Then
;Счинываю размещение винампа с реестра...
$PathToWinamp = RegRead("HKEY_CURRENT_USER\Software\Winamp", "")	
;Запускаю винамп...
	Run($PathToWinamp & "\winamp.exe", "")
EndIf
AutoItSetOption("WinTitleMatchMode", 4)
   WinActivate("classname=WINAMP", "")
  Sleep(1500)
;Открываю окно для выьбора файлов
Send ("l", 1)

Но таким образом, не всегда сработает, например, если машина слабая (медленная), то окно для выбора файлов может не появиться, а хотелось бы сделать ожидание окна винампа - но не получается.
Аватара пользователя
LORDMA

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение LORDMA »

Уважаемые знатоки помогите как в элементе "ClassNameNN: SysTreeView321" поставить чекбокс в нужном мне месте . Перерыл справку но ничего не нашел , наверняка есть как это сделать но ничего не могу найти??
Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Аватара пользователя
Creat0R

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Creat0R »

Интересно, как можно задать в скрипте, чтобы определял два параметра командной строки? Т.е, например, я запускаю закомпилированный скрипт таким образом - start script.exe %l %c - Где %l это параметр, который интерпритируется как ссылка (запуск происходит их браузера opera), а %c это параметр, который передаёт содержимое буффера обмена. Так вот, после такого запуска, нужно чтобы для первого параметра происходило одно дейсТвие (пусть даже выводитя MsgBox со значением), а для второго параметра другое действие.

Или хотябы сделать так, чтобы можно было распозновать параметр не по его конечному значению (если %l то значение будет ссылкой по которой было нажато действие для вызова скрипта), а именно по его изначальному виду. Если скрипт допустим запущен так - start script.exe %l - то нужно чтобы в скрипте было распознование того, что его (скрипт) "вызвали" именно с таким ключом (т.к в скрипте есть ещё другие функции, вызываемые другими ключами)... я пробовал таким образом:

Код:

Код: Выделить всё

If $CmdLine[1] = "%l" Then
; Что-то делаем...
EndIf

Но Ничего не делается, в этом месте как будто не распознаётся реферрер...

Я пробовал и так:

Код:

Код: Выделить всё

If $CmdLine[1] = 0 Then
; Что-то делаем...
EndIf

Что-то делается Изображение , но тогда если в скрипте присутствует If $CmdLine[0] = 0 Then... То и в этом условии что-то делается (т.е как будто скрипт был запущен без параметров).
Аватара пользователя
Sanja Alone

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Sanja Alone »

Creat0R

Вот простенький разборщик ком. строки:

Код:

Код: Выделить всё

If $CmdLine[0]0 Then
	For $k=1 To $CmdLine[0] Step 1
		;проверка наличия конкретного ключа
		If $CmdLine[$k]="/a" Then
		; Что-то делаем...
		EndIf
		;проверка наличия одного из ключей
		Select
			Case $CmdLine[$k]="/b"
		; Что-то делаем...
			Case $CmdLine[$k]="/c"
		; Что-то делаем...
			Case $CmdLine[$k]="/d"
		; Что-то делаем...
		EndSelect
	Next
Else
	MsgBox(16,'Ошибка',"Командная строка пуста...",7)
	Exit
EndIf

P.S. Гораздо удобнее вместо "Что-то делаем..." присваивать определенное значение какой-то переменной, а уже в самой программе производить действия в зависимости от значения этой переменной-флажка. К тому же, в данном сл., можно без проблем оформить анализ ком. строки в виде ф-ции.
Аватара пользователя
boss911

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение boss911 »

Доброго времени суток!!!

1.Сначала у меня вопрос

Как запустить папку Панель управления? а ещё лучше сразу открыть "свойства системы" (Система)



2.Обнаружил косяк. Собрал exe-шник, у меня работает хорошо и закрывается, а вот у друзей работает, но не закрывается - просто сворачивается в трей - что делать ??



3.И ещё как оказалось - у них не отображаются сообщения



MsgBox(0, "Сменщик имени рабочей группы", "Вы уже в группе PLEXUS")



Вааще странно. У меня всегда отображались Изображение
Аватара пользователя
boss911

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение boss911 »

KotoVAS


Цитата:



Как запустить ... а ещё лучше сразу открыть "свойства системы" (Система)





Код:

Код: Выделить всё

%WINDIR%\system32\sysdm.cpl
Аватара пользователя
boss911

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение boss911 »

KotoVAS


Цитата:



А можно код открытия полностью ???



Если вопрос ко мне, то я AutoIt неюзаю, а вообще, чтоб запустить команду в скрипте, то это наверно элементарно, ты же юзаеш и незнаеш как запустить команду!! Изображение
Аватара пользователя
Sanja Alone

Re: [Архив - Часть 1.2] AutoIt скрипты

Сообщение Sanja Alone »

Creat0R


Цитата:



кавычки не попадают в файл



При передаче AutoIt-скрипту текста в кавычках из ком. строки, обрезаются первая и вторая кавычки, а текст внутри них считаеся одним параметром, НО! если за второй кавычкой вплотную идет текст, то и он "приклеивается" к содержимому текущего параметра (возможно, это ошибка разработчиков AutoIt). Пробелы вне этих кавычек являются разделителями параметров ком. строки.



Например, если в ком. строке скрипта я напишу:

Код:

Код: Выделить всё

"Hello, Остап Ибрагимович. Вы являетесь работником фирмы "Рога и копыта"?"

, то получу при разборе строки 3 параметра:



Код:

Код: Выделить всё

1 - "Hello, Остап Ибрагимович. Вы являетесь работником фирмы Рога"
2 - "и"
3 - "копыта?"

Можешь это легко проверить при пом. такого тестового скриптика:



Код:

Код: Выделить всё

For $i=1 To $CmdLine[0]
Msgbox(0,"Параметр "&$i,'')
Next

Т.о., если ты хочешь не потерять какой-то части текста, то должен анализировать полное содержимое ком. строки - $CmdLineRaw[/i]. А в этом сл., удобнее будет использовать первый вариант передачи параметров скрипту - "/url=%u /txt=%T"



P.S. Можешь еще попробовать побороться с буфером обмена. Похожая на твою задача была в старой теме - я решал ее
вот так
Ответить

Вернуться в «AutoIt»