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

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

Закрытая тема
Настройки темы
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:.

(*.*)


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


Конфигурация

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


Изменения
Автор: Vadikan
Дата: 21-01-2009
Описание: архив
Внимание!


В связи с созданием отдельного форума по AutoIt, эта тема переводится в архивное состояние. Если у вас есть вопрос, создайте новую тему или поднимите существующую, если в ней обсуждается аналогичная проблема.

Пожалуйста, не создавайте тем с названием "Помогите!" или "Нужна помощь по AutoIt". Это и так понятно Заголовок темы должен быть осмысленным.



Сайт программы
Русская справка
Коллекция AutoIt скриптов от Sanja Alone
Коллекция AutoIt скриптов от MSFN (могут быть устаревшие).


Справочник по командам rundll32 (команды запуска диалоговых окон и не только...)

AutoIt скрипты - введение и FAQ (статья содержит вводную информацию по AutoIt, а также ответы на ЧаВо).

Архивы старых тем по AutoIt или они же в 7z архиве (версии для печати) - 846 кб (настоятельно рекомендуется к прочтению/поиску)
(он же прикреплен в шапке)


Данная тема предназначена для общих вопросов по AutoIt. Вопросы по установке приложений при помощи AutoIt следует задавать в соответствии с правилами форума "Автоматическая установка приложений". Таким образом, если вы хотите узнать как установить Winamp 5.x при помощи AutoIt, то создайте тему [autoit] Winamp 5.х (если таковой еще нет на форуме). Проверить наличие тем можно при помощи поиска или фильтров.
Цитата Vadikan:
В теме уже свыше 500 сообщений и поиск нужной информации в ней усложняется. Есть предложение собрать все решения (скрипты) и разместить их на Wiki по принципу "один скрипт - одна статья wiki", добавляя статьи в категорию Autoit. Речь, в принципе, идет об общих решениях, а не о скриптах для установки конкретной программы. Название статьи, очевидно, должно отражать назначение скрипта. Затем можно в шапке просто разместить ссылки на статьи Wiki.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:02, 05-02-2006

 

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


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

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


Creat0R,

Спасибо.

только вот ReDim $aData_Inputs[$aData_Inputs[0]+1]
[0]+1 что это делает?

а с другим моим вопросом, по поводу екселя, нет никаких соображений?

Отправлено: 00:10, 08-02-2008 | #101



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

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


Аватара для Creat0R

Must AutoIt


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

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


HORRIBLE,
Цитата:
[0]+1 что это делает?
При (пере)обьявлении массива, добавляет ещё один элемент (ячейку), а когда заполняем данные, то используем текущую ячейку (из [0]).

Цитата:
а с другим моим вопросом, по поводу екселя, нет никаких соображений?
Нет, я с Excel не очень знаком. У меня даже в Office его кажется нету.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:27, 08-02-2008 | #102


Googler


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

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


Цитата HORRIBLE:
а с другим моим вопросом, по поводу екселя, нет никаких соображений? »
ходи сюда: ExcelCOM UDF - качай UDF и смотри примеры
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:22, 08-02-2008 | #103


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


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

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


Creat0R

вот в принцыпе такой простенький скрипт

PHP код: Выделить весь код

Dim $date = @MDAY&@MON&@YEAR

Dim $path 
'D:\my documents\victor_docs\backup\'& @MDAY&@MON&@YEAR

DirCreate($path)
DirCopy(@ScriptDir & '
to_work', $path, 1)
MsgBox(0, "BuckUP", "Копирование завершено") 


Отправлено: 08:18, 08-02-2008 | #104


Аватара для Maza Faka

Ветеран


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

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


thief_89
Код: Выделить весь код
; Windows - copy with progress
; Author - JdeB

;~ 4 Do not display a progress dialog box.
;~ 8 Give the file being operated on a new name in a move, copy, or rename operation if a file with the target name already exists.
;~ 16 Respond with "Yes to All" for any dialog box that is displayed.
;~ 64 Preserve undo information, if possible.
;~ 128 Perform the operation on files only if a wildcard file name (*.*) is specified.
;~ 256 Display a progress dialog box but do not show the file names.
;~ 512 Do not confirm the creation of a new directory if the operation requires one to be created.
;~ 1024 Do not display a user interface if an error occurs.
;~ 2048 Version 4.71. Do not copy the security attributes of the file.
;~ 4096 Only operate in the local directory. Don't operate recursively into subdirectories.
;~ 9182 Version 5.0. Do not copy connected files as a group. Only copy the specified files.

_FileCopy("C:\Installed Apps\Patches\WindowsXP-KB835935-SP2-ENU.exe","C:\temp")

Func _FileCopy($fromFile,$tofile)
    Local $FOF_RESPOND_YES = 16
    Local $FOF_SIMPLEPROGRESS = 256
    $winShell = ObjCreate("shell.application")
    $winShell.namespace($tofile).CopyHere($fromFile,$FOF_RESPOND_YES)
EndFunc

-------
Сообщение помогло? Не забудьте нажать на Полезное сообщение


Отправлено: 08:29, 08-02-2008 | #105


Аватара для Creat0R

Must AutoIt


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

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


thief_89,
Я (и не только) пару раз приводил примеры тут в теме (возможно осталось в форумных архивах), были более продвинутые, а были просто с использованием системного диалога. Нужно просто поискать по темам (возможные поисковые запросы: progress, CopyWithProgress, MoveTo и т.п).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 08:34, 08-02-2008 | #106


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


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

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


Creat0R

ок, спасибо щас буду искать.

Maza Faka

спасибо

Отправлено: 08:43, 08-02-2008 | #107


Аватара для Creat0R

Must AutoIt


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

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


amel27,
По поводу функции FileSaveDialog...
Diamond её немного переделал (см. далее), чтобы в качестве фильтра можно было указывать обычные круглые скобки, почти как в функции VB(s).

Всё отлично работает, но хотелось бы иметь ещё две возможности:

1) Чтобы можно было указать умолчальное расширение, т.е к примеру у меня в фильтре есть *.au3 и *.gif, и в качестве расширения по умолчанию я указываю *.gif, вот нужно чтобы автоматом в списке функция выбрала это расширение. Сейчас если указать расширение, то оно просто подставляется в случае когда юзер не указал расширение вовсе, но это не подходит (отчасти по причине в хотелке #2 ).

2) Чтобы функция возвращала выбранное расширение, если я (как юзер) не указал расширение, но при этом выбрал его в списке, то именно то самое умолчальное расширение будет использовано, хотя не логично брать "старое" расширение когдя юзер выбрал другое из списка. Если функция ещё и выбранное расширение будет возвращать, то можно будет "знать" чего конкретно хочет юзер, и соответственно делать выводы (действия).

функция _FileSaveDialog() (Мод. от Diamond)
Код: Выделить весь код
;~ В этом варианте можно использовать круглые скобки для "отображаемой части фильтра"...
;~ В самом же фильтре круглые скобки больше не нужны!
;~ Синтаксис:
;~ "Видимый_текст_1|Файловый_фильтр_1|текст_2|фильтр_2|текст_N|фильтр_N"
Func _FileSaveDialog($sTitle, $sInitDir, $sFilter = 'All (*.*)', $iOpt = 0, $sDefaultFile = "", $sDefaultExt = "", $hWnd = 0)
    Local $iFileLen = 65536 ; Max chars in returned string
    ; API flags prepare
    Local $iFlag = BitOR(BitShift(BitAND($iOpt, 2), -10), BitShift(BitAND($iOpt, 16), 3))
    ; Filter string to array convertion
    Local $asFLines = StringSplit($sFilter, '|')
    Local $i, $suFilter = ''
    For $i = 1 To $asFLines[0] Step 2
        If $i < UBound($asFLines) Then _
            $suFilter &= 'byte[' & StringLen($asFLines[$i]) + 1 & '];char[' & StringLen($asFLines[$i+1]) + 1 & '];'
    Next
    ; Create API structures
    Local $uOFN = DllStructCreate('dword;int;int;ptr;ptr;dword;dword;ptr;dword' & _
            ';ptr;int;ptr;ptr;dword;short;short;ptr;ptr;ptr;ptr;ptr;dword;dword')
    Local $usTitle = DllStructCreate('char[' & StringLen($sTitle) + 1 & ']')
    Local $usInitDir = DllStructCreate('char[' & StringLen($sInitDir) + 1 & ']')
    Local $usFilter = DllStructCreate($suFilter & 'byte')
    Local $usFile = DllStructCreate('char[' & $iFileLen & ']')
    Local $usExtn = DllStructCreate('char[' & StringLen($sDefaultExt) + 1 & ']')
    For $i = 1 To $asFLines[0]
        DllStructSetData($usFilter, $i, $asFLines[$i])
    Next
    ; Set Data of API structures
    DllStructSetData($usTitle, 1, $sTitle)
    DllStructSetData($usInitDir, 1, $sInitDir)
    DllStructSetData($usFile, 1, $sDefaultFile)
    DllStructSetData($usExtn, 1, $sDefaultExt)
    DllStructSetData($uOFN, 1, DllStructGetSize($uOFN))
    DllStructSetData($uOFN, 2, $hWnd)
    DllStructSetData($uOFN, 4, DllStructGetPtr($usFilter))
    DllStructSetData($uOFN, 7, 1)
    DllStructSetData($uOFN, 8, DllStructGetPtr($usFile))
    DllStructSetData($uOFN, 9, $iFileLen)
    DllStructSetData($uOFN, 12, DllStructGetPtr($usInitDir))
    DllStructSetData($uOFN, 13, DllStructGetPtr($usTitle))
    DllStructSetData($uOFN, 14, $iFlag)
    DllStructSetData($uOFN, 17, DllStructGetPtr($usExtn))
    DllStructSetData($uOFN, 23, BitShift(BitAND($iOpt, 32), 5))
    ; Call API function
    Local $sRet = DllCall('comdlg32.dll', 'int', 'GetSaveFileName', 'ptr', DllStructGetPtr($uOFN))

    If $sRet[0] Then Return StringStripWS(DllStructGetData($usFile, 1), 3)
    Return SetError(1, 0, "")
EndFunc   ;==>_FileSaveDialog

тег [ht] имеет характерный javascript'у баг - одиночная кавычка в названии текста (сылки) делает тег не рабочим )

P.S
Я пробовал разного рода манипулляции с DllStructGetData(), почти все структуры перепотрошил, но немогу найти нужные мне данные (хотябы чтобы вернуть выбранное расширение).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 09-02-2008 в 16:01. Причина: В теге [ht] баг :(


Отправлено: 15:57, 09-02-2008 | #108


Googler


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

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


Цитата Creat0R:
Сейчас если указать расширение, то оно просто подставляется в случае когда юзер не указал расширение вовсе »
Такое поведение прописано в MSDN для "умолчального" расширения, собственно в этой фиче нет большого смысла если научить функцию возвращать выбранный фильтр - можно тем же RegExp проверить наличие расширения и добавить при необходимости.

Цитата Creat0R:
Если функция ещё и выбранное расширение будет возвращать, то можно будет "знать" чего конкретно хочет юзер, и соответственно делать выводы (действия). »
Все возможные фильтры нумеруются по порядку следования/отображения начиная с 1, индекс выбранного пользователем фильтра сохраняется в структуре под индексом 7 (nFilterIndex), в принципе его тоже можно вывести... только нужно определиться куда и в каком виде.

тут есть еще одна тонкость - пользователь может задать свой фильтр (nFilterIndex=0), судя по доке ф-ция поддерживает фиксирование такого фильтра... но для этого нужно инициализировать дополнительные структуры (lpstrCustomFilter, nMaxCustFilter).
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:25, 11-02-2008 | #109


Аватара для Creat0R

Must AutoIt


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

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


amel27,
Цитата:
Такое поведение прописано в MSDN для "умолчального" расширения
Я так и понял.

Цитата:
собственно в этой фиче нет большого смысла если научить функцию возвращать выбранный фильтр - можно тем же RegExp проверить наличие расширения и добавить при необходимости.
Однозначно!
Но всё же хотелось бы чтобы эта (подобная) фича устанавливала выбранный фильтр.

Цитата:
Все возможные фильтры нумеруются по порядку следования/отображения начиная с 1, индекс выбранного пользователем фильтра сохраняется в структуре под индексом 7 (nFilterIndex), в принципе его тоже можно вывести... только нужно определиться куда и в каком виде.
Нука попробуем... а в каком виде, это не проблема, в массиве можно, или лучше наверное в @extended (как индекс).

Цитата:
тут есть еще одна тонкость - пользователь может задать свой фильтр (nFilterIndex=0)
Имеется в виду ручной ввод фильтра в поле для вода имени файла? Я почему то думал что это баг (при чём забавный) виндоуса. Ну это вобщем не моя проблема, а уже пользователя - Пока такое поведение приемлемо во всех других программах, я спокоен

Цитата:
судя по доке ф-ция поддерживает фиксирование такого фильтра
Т.е предотвращение ручного ввода фильтра? Было бы неплохо, хоть и не критично.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 06:05, 11-02-2008 | #110



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Вопрос - [Архив] Антивирусные программы - ОБЩИЕ ВОПРОСЫ FOX RED Защита компьютерных систем 67 21-11-2007 15:05
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.2] AutoIt скрипты Dirk Diggler AutoIt 505 02-12-2006 11:00
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход