Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Ответить
Настройки темы
[Архив - Часть 1.2] AutoIt скрипты

Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.
Можно ли с помощью AutoIt выбрать каталог? Хочу нацарапать оболочку, которая мне будет конфиги для nnBackup писать, дык выбрать каталог для бэкапа пока только вручную получается... Нельзя ли как-нть вывалить стандартный диалог по выбору файлов-папок, и получить из него результат действий пользователей?

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 10:47, 10-02-2006

 

Новый участник


Сообщения: 37
Благодарности: 1

Профиль | Отправить PM | Цитировать


а подскажите как в комбо загрузить текст из файла.
в файле каждая отдельная строка это какое то слово. например
слово1
слово2
слово3
и т.д.

З.Ы.
всем спасибо уже разобрался )

Последний раз редактировалось Artya, 25-04-2006 в 19:46.


Отправлено: 19:20, 25-04-2006 | #131



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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

Ptyuch


Сообщения: n/a

Профиль | Цитировать


Никак не пойму: функция Global действует в теле только одного скрипта? Пытаюсь задать переменную в первом скрипте, и, пока он работает, использовать ее значение во втором:

1 файл - 1.exe
global $a=20
run("2.exe")
/тело скрипта/

2 файл - 2.exe
/тело скрипта/
msgbox(0,"","a is " &$a, 2)

Если это не работает, как бы мне еще ввести "переключатели" (в первом файле часть скрипта отработала - во втором происходит переключение на следующий этап)?
Все это для того, чтобы progressbar располагался отдельно от других скриптов, но был с ними связан... Это же возможно? :)

Отправлено: 16:15, 26-04-2006 | #132


Пользователь


Сообщения: 125
Благодарности: 9

Профиль | Отправить PM | Цитировать


Ptyuch
Код: Выделить весь код
1 файл - 1.exe
  global $a=20
  run("2.exe "&$a)
  /тело скрипта/

2 файл - 2.exe
  /тело скрипта/
  $a=$CmdLine[1]
  msgbox(0,"","a is " &$a, 2)

Отправлено: 19:13, 26-04-2006 | #133

Ptyuch


Сообщения: n/a

Профиль | Цитировать


Было бы красиво! ;) Только первый файл не выполняется: ошибок в скрипте нет, только вот:
Unable to execute an external program
Не удается найти указанный файл:
run("2.exe"&$a)

Без аргумента $a скрипт запускается. Any idea?

Отправлено: 09:05, 29-04-2006 | #134


Пользователь


Сообщения: 125
Благодарности: 9

Профиль | Отправить PM | Цитировать


Ptyuch
Идей нет. Есть замечания.
Разве у меня написано run("2.exe"&$a)?

Отправлено: 11:49, 29-04-2006 | #135

Ptyuch


Сообщения: n/a

Профиль | Цитировать


Огромное спасибо!
%#! Даже в голову не пришло поставить пробел перед ". Может, где можно почитать про такой синтаксис? Потому что я иду дальше по схеме:
1 файл - 1.exe
global $a=20
run("2.exe "&$a)
/тело скрипта.../
global $a=40
и т.д.

2 файл - 2.exe
$a=$CmdLine[1]
msgbox(0,"","a is " &$a, 2)
/тело скрипта.../
msgbox(0,"","a is now " &$a, 2)
В этом случае прописанные условия во втором файле опирались бы на состояние изменяющейся переменной из первого файла. Пока срабатывает только первый триггер, прописанный в global $a -> $cmdlines[1]. Может, как-нибудь через Adlib? Не знаю, правда, как ;)

Отправлено: 15:32, 29-04-2006 | #136


Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


У меня есть скрипт, регистрирующию nnBackup. Его регистрация проходит в консольном окне, поэтому я посылаю туда кириллицу с помощью команды Send("{ASC 123}"). Однако это работает только в NT-системах, в 9х там лезет какая-то кразяберность. Как послать кириллицу в консольное окно 9х?

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 16:18, 29-04-2006 | #137


Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


По старенькому пройдемся:
Цитата:
Доделал скрипт для Radmin 2.2 (добавил регистрацию стандартным методом + все действия теперь определяются переменными в секции Global).
Народ, а зачем его вообще так ставить? Я простое копирование файлов/импортирование ветки реестра делаю, работает на ура.
Цитата:
Цитата:
Можно ли с помощью AutoIt выставить права на ветку реестра
С пом. средств АвтоИт никак, а какой MS-утилкой это сделать я не знаю (мне известен только ручной способ - regedit -> "Разрешения"), увы
SubInAcl. НАсчет установки разрешений умеет все.

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 16:41, 29-04-2006 | #138


Пользователь


Сообщения: 125
Благодарности: 9

Профиль | Отправить PM | Цитировать


Ptyuch
Ты, по моему, вообще задачу решаешь немного не с того конца.
Если это всего лишь бегунок, то лучше всего использовать Adlib.
Пример бегунка, приблизительно отсчитывающего время установки:
Код: Выделить весь код
...
ProgressOn   ('Установка Nero 7','','',-1,-1,18)
$pr=0
AdlibEnable  ('progress',300)
...
ProgressOff  ()
AdlibDisable ()
...
Func progress()
 $pr=$pr+1
 ProgressSet($pr)
EndFunc

Отправлено: 18:49, 29-04-2006 | #139


Новый участник


Сообщения: 14
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я пытаюсь перевести конвертер ASCI ->UTF-8 с C на autoit . Но видимо что-то не правильно понимаю. На вход функции подаю C3, а на выходе получаю C3 83, что явно неправильно. Или правильно и ошибка в другом?
Код на C
Код: Выделить весь код
int conv_x2utf(unsigned char* bufin, int len, unsigned char* bufout)
{ int i, j = 0;

  for (i = 0; i < len; i++)
  {
    if (bufin[i] >= 0x80)
    { bufout[j++] = (((bufin[i] >> 6) & 0x3f) | 0xc0);
      bufout[j++] = (bufin[i] & 0x3f) | 0x80;
    }
    else
      bufout[j++]  = bufin[i];
  }

  return j;
}
Autoit:
Код: Выделить весь код
Func StringToUTF($String)
Dim $String
$VarUTFArr = StringSplit ( $String, "" )

For $i = 1 To $VarUTFArr[0]
$code = Asc ($VarUTFArr[$i])

If $code < 128 Then
$VarUTFArr[$i] = Chr ($code)
	Else 
$VarSt1 = BitOR (BitAND ((BitShift ($code, 6)), 0x3f), 0xc0)
$VarSt2 = BitOR (BitAND ($code, 0x3f), 0x80)
$VarUTFArr[$i] = Chr ($VarSt1) & Chr ($VarSt2)
	EndIf
Next

Dim $sResult
For $iCntr = 1 To $VarUTFArr[0]
	$sResult = $sResult & $VarUTFArr[$iCntr]
	If ($iCntr < $VarUTFArr[0]) Then
		$sResult = $sResult
	EndIf
Next

Return $sResult
EndFunc
Нашёл исходник конвертера на FoxPro. И он работает!
Код: Выделить весь код
Func StringToUTF($String)
Dim $String
$VarUTFArr = StringSplit ( $String, "" )

For $i = 1 To $VarUTFArr[0]
$code = Asc ($VarUTFArr[$i])

Select
     Case $code >= 192 AND $code <= 239
         $VarUTFArr[$i] = Chr (208) & Chr ($code-48)
     Case $code >= 240 AND $code <= 255
         $VarUTFArr[$i] = Chr (209) & Chr ($code-112)
     Case $code = 168
         $VarUTFArr[$i] = Chr (208) & Chr (129)     
     Case $code = 184
         $VarUTFArr[$i] = Chr (209) & Chr (145)     
     Case Else
        $VarUTFArr[$i] = Chr ($code)
EndSelect
	
Next

Dim $sResult
For $iCntr = 1 To $VarUTFArr[0]
	$sResult = $sResult & $VarUTFArr[$iCntr]
	If ($iCntr < $VarUTFArr[0]) Then
		$sResult = $sResult
	EndIf
Next

Return $sResult
EndFunc

Последний раз редактировалось Lexi, 01-05-2006 в 21:44.


Отправлено: 17:53, 01-05-2006 | #140



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход