Что нового

Не могу понять "$CmdLine"

GUIMish

Знающий
Сообщения
122
Репутация
12
Помогите мне разобраться с "$CmdLine"
Я вставил его в свой скрипт вот так:

Код:
$Pic = GUICtrlCreatePic($CmdLine[1], 0, 0, $Pos[2], $Pos[3] - 90)


А он выдает мне это:
$Pic = GUICtrlCreatePic($CmdLine[1], 0, 0, $Pos[2], $Pos[3] - 90)
$Pic = GUICtrlCreatePic(^ ERROR

Я видать что-то не так понял, или нужен какой-то #Include
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Re: Не могу понять \"$CmdLine\"

А как вы скрипт запускаете? С параметром или без?


Добавлено:
Сообщение автоматически объединено:

Добавьте проверку на наличие параметра
Код:
If $CmdLine[0] > 0 Then
  $Pic = GUICtrlCreatePic($CmdLine[1], 0, 0, $Pos[2], $Pos[3] - 90)
Else
  MsgBox(0, "", "No params")
EndIf
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
GUIMish [?]
А как задать параметр?
Если скрипт скомпилирован, то добавить путь к файлу через пробел и запустить
Код:
script.exe "d:\pictures\scr.jpg"
Если запускаете из SciTE, то параметр можно добавить через меню "View - Parameters" (до 4 штук). Просто напишите там путь к файлу картинки первым параметром.

как в-обще пользоваться этой функцией?
Когда расширение файла ассоциировано с программой, то двойной клик по файлу в проводнике запускает ассоциированную программу и передаёт файл в качестве параметра. Например, при запуске файла text.txt будет запущен блокнот (по умолчанию), которому файл будет передан в командной строке
Код:
notepad.exe c:\temp\text.txt
Вот этот файл и есть первый параметр $CmdLine[1], а $CmdLine[0] содержит общее число параметров (параметры разделяются пробелами, поэтому пути к файлам лучше заключать в кавычки).
 
Автор
G

GUIMish

Знающий
Сообщения
122
Репутация
12
InnI
ОГРОМНОЕ СПАСИБО, РАЗОБРАЛСЯ! :laugh:
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
GUIMish
http://autoit-script.ru/index.php?topic=10958.10
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
GUIMish,
Так должно быть понятнее. При запуске нескомпилированного скрипта увидите разницу между $CmdLineRaw (строка) и $CmdLine (массив).
Код:
#include <Array.au3>

If $CmdLineRaw Then
	MsgBox(64, '$CmdLineRaw', $CmdLineRaw)
Else
	MsgBox(16, 'Error', 'No $CmdLineRaw')
EndIf
If $CmdLine[0] Then
	_ArrayDisplay($CmdLine, '$CmdLine')
Else
	MsgBox(16, 'Error', 'No array $CmdLine')
EndIf
If MsgBox(33, 'Question', 'Next?') = 2 Then Exit

Global $sParam, $iRand = Random(2, 10, 1)

For $i = 1 To $iRand
	$sParam &= '"Param ' & $i & '" '
Next
$sParam = StringTrimRight($sParam, 1)
If @Compiled Then
	Run('"' & @ScriptFullPath & '" ' & $sParam)
Else
	Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & @ScriptFullPath & '" ' & $sParam)
EndIf
Exit
 
Верх