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

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

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

(*.*)


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


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

Профиль | Сайт | Отправить 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

 

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


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

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


Всем привет, почитав ваши произведения в постах выше аж голова кругом...
Открыв мануал, решил сделать автоматизацию некоторых манипуляций в игре.
Написал скрипт, компилировал... а при запуске в ХР он в доли секунды включается и исчезает (в процессах тоже появляется на доли секунды и проподает)


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

Opt ("SendKeyDelay"25       )

Opt ("MouseClickDownDelay"25)
Global 
$Paused
HotKeySet
("{PAUSE}""Paused")

HotKeySet ("{F5}",  "pickup_5"     )
HotKeySet ("{F6}",  "pickup_10"     )

HotKeySet ("{NUMPAD0}""Right_Click")
HotKeySet ("{NUMPAD1}""Right_Click1")
HotKeySet ("{NUMPAD2}""Left_Click")



;********** 
Left Click **********

Func Left_Click ()
While (
1)
ToolTip('"LeftClicker"',200,0)
MouseClick ("Left")
MouseUp ("Left")

WEnd
EndFunc


;********** Right Click **********

Func Right_Click ()
While (
1)
ToolTip('"RightClicker + Pickup"',200,0)
MouseDown"Right" 
Send ("{SPACE}")
WEnd
EndFunc

Func Right_Click1 
()
While (
1)
ToolTip('"RightClicker"',200,0)
MouseClick ("Right")
WEnd
EndFunc

;********** Pause **********

Func Paused()
    
$Paused NOT $Paused
    
While $Paused
        sleep
(100)
        
ToolTip('Script is "Paused"',0,0)
    
WEnd
    ToolTip
("")
EndFunc



;********** pickup 4min. **********

Func pickup_5 ()
While (
1)
    
ToolTip('"Pickup every 5.min"',200,0)
Send ("{SPACE}")
Sleep (30000)

WEnd
EndFunc


;********** pickup 10min. **********

Func pickup_10 ()
While (
1)
    
ToolTip('"Pickup every 10.min"',200,0)
Send ("{SPACE}")
Sleep (60000)

WEnd
EndFunc 

Посмотрите что не так

Написал еще один и та же реакция... проподает.
PHP код: Выделить весь код

Global $Paused

HotKeySet
("{F4}""Pausediii")
Func Pausediii()
    
$Paused NOT $Paused
    
While $Paused
         Send 
('{SPACE}')
    
WEnd
    ToolTip
("")
EndFunc 


Последний раз редактировалось kagorec, 03-04-2008 в 15:41.


Отправлено: 15:20, 03-04-2008 | #381



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

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


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

Ветеран


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

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


kagorec
Цитата kagorec:
Посмотрите что не так »
Нет основного цикла. После назначения функций на горячие клавиши вставь бесконечный цикл:
Код: Выделить весь код
While 1
    Sleep(100)
WEnd

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


Отправлено: 15:41, 03-04-2008 | #382


Googler


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

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


Maza Faka
Цитата:
Пытаюсь реализовать вот такой хинт »
интересно, а чем не устраивает штатный ToolTip?
Цитата:
Если найдётся время посмотри пожалуйста где ошибка »
что касается структур подправил, но сразу после отображения окна скрипт все равно валится... возможно, причина в том что это OCX а не DLL, либо требуется что-то еще.. можешь, кстати, поинтересоваться на оффсайте:
Код: Выделить весь код
#include <GuiConstants.au3>
#include <WinAPI.au3>

Global Const $HH_DISPLAY_TEXT_POPUP = 0xE
Global Const $HH_CLOSE_ALL = 0x12

Global $DllRet

$hGUI = GUICreate("Test GUI", 300, 200, -1, -1, BitOR($WS_CAPTION, $WS_POPUP, $WS_SYSMENU), $WS_EX_CONTEXTHELP)
$hInput1 = GUICtrlCreateInput("", 50, 50, 200, 20)
$hInput2 = GUICtrlCreateInput("Input text here", 50, 100, 200, 20)
$HelpButton = GUICtrlCreateButton("Help", 20, 160, 60, 25)

$HH_POPUP = DllStructCreate("int cbStruct;hwnd hinst;uint idString;ptr pszText;long pt[2];dword clrForeground;dword clrBackground;long rcMargins[4];ptr pszFont")
$tPoint = DllStructCreate("long X;long Y", DllStructGetPtr($HH_POPUP, "pt"))
$tRect = DllStructCreate("long L;long T;long R;long B", DllStructGetPtr($HH_POPUP, "rcMargins"))

$tText = DllStructCreate("char String[256]")
$tFont = DllStructCreate("char String[256]")

DllStructSetData($tText, "String", "Help Popup")
DllStructSetData($tFont, "String", "MS Sans Serif, 10, , BOLD")

DllStructSetData($tRect, "L", -1)
DllStructSetData($tRect, "R", -1)
DllStructSetData($tRect, "T", -1)
DllStructSetData($tRect, "B", -1)

DllStructSetData($HH_POPUP, "cbStruct", DllStructGetSize($HH_POPUP))
DllStructSetData($HH_POPUP, "hinst", _WinAPI_GetModuleHandle(""))
DllStructSetData($HH_POPUP, "idString", 0)
DllStructSetData($HH_POPUP, "pszText", DllStructGetPtr($tText))
DllStructSetData($HH_POPUP, "clrForeground", -1)
DllStructSetData($HH_POPUP, "clrBackground", -1)
DllStructSetData($HH_POPUP, "pszFont", DllStructGetPtr($tFont))

GUISetState()

While 1
    Switch GUIGetMsg()
       Case -3
            ExitLoop
       Case $HelpButton
            $aPos = MouseGetPos()
            DllStructSetData($tPoint, "X", $aPos[0])
            DllStructSetData($tPoint, "Y", $aPos[1])

            $DllRet = DllCall("HHCtrl.ocx", "hwnd", "HtmlHelpA", "hwnd", $hGUI, "ptr", 0, _
            "uint", $HH_DISPLAY_TEXT_POPUP, "dword", DllStructGetPtr($HH_POPUP))

                        Sleep(3000)
            DllCall("HHctrl.ocx", "hwnd", "HtmlHelpA", "hwnd", $DllRet[0], "ptr", 0, "uint", $HH_CLOSE_ALL, "dword", 0)
    EndSwitch
WEnd
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:16, 04-04-2008 | #383


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

Ветеран


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

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


Цитата amel27:
интересно, а чем не устраивает штатный ToolTip? »
Пытался реализовать справку What this.

Цитата amel27:
что касается структур подправил, но сразу после отображения окна скрипт все равно валится... возможно, причина в том что это OCX а не DLL, либо требуется что-то еще.. можешь, кстати, поинтересоваться на оффсайте: »
Мдаа... жалко конечно, что валится, но всё равно спасибо за помощь, хотя бы за пример создания столь сложной структуры.

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


Отправлено: 11:57, 04-04-2008 | #384


Аватара для Mogidin

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


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

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


Вопрос. Требуется сделать окно, которого не будет на панели задач, тока в трее.
И в догонку. Можно поменять иконку этого окна в трее? Как?

вопрос снимается.

Последний раз редактировалось Mogidin, 04-04-2008 в 15:50. Причина: нашел, как сделать


Отправлено: 15:30, 04-04-2008 | #385


Аватара для Котяра

Ветеран


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

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


Помогите написать один скрипт. Короче, есть утилита fontinst.exe. Ее задача установить, шрифты, лежащие с ней в одной директории и прописанные в файле fontinst.inf. Синтаксис запуска:
Код: Выделить весь код
fontinst.exe /f fontinst.inf
Так вот надо написать скрипт для формирования fontinst.inf . Файл выглядит так:
Код: Выделить весь код
[fonts]
imya_faila1.ttf
imya_faila2.ttf
imya_failaX.ttf
Вариант 1: создать файл для всех шрифтов (*.ttf) из директории со скриптом.
Вариант 2: вывести окно со списком шрифтов из текущей директории и флажками.
Как это сделать? Хотя бы первый вариант...

Последний раз редактировалось Котяра, 04-04-2008 в 18:12. Причина: Уточнил условия задачи


Отправлено: 18:10, 04-04-2008 | #386


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

Ветеран


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

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


Котяра
IMHO эту задачу проще и быстрее будет решить с помощью bat-файла:
Код: Выделить весь код

@echo off
echo [fonts]> fontinst.inf
for %%a in (*.ttf) do echo %%a>> fontinst.inf
Если же без AutoIt-а никак, то пожить этот батничек в папку с AutoIt скриптом и вызывать его такой командой:
Код: Выделить весь код
ShellExecuteWait(@ScriptDir & "\fontinst.cmd", "", "", "open", @SW_HIDE)

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


Отправлено: 09:20, 05-04-2008 | #387


Googler


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

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


Maza Faka
Цитата:
жалко конечно, что валится »
Вообще, случай с этим HH забавный (если не сказать грустный). Во-первых, есть такой KB для VB, но добавление команд HH_INITIALIZE/HH_UNINITIALIZE (на всякий случай запостил ниже) ситуацию не меняет... разве только ошибка быстрей валится. Во-вторых, на форуме родственной AutoHotkey лежит готовый пример от PhiLho 2006-го года и судя по отзывам он должен работать, но он не работает!.. у меня валится примерно та же ошибка, можешь кстати проверить.
Код: Выделить весь код
Global Const $HH_INITIALIZE=0x1C
Global Const $HH_UNINITIALIZE=0x1D

$tCookie = DllStructCreate("dword")

$DllRet = DllCall("HHCtrl.ocx", "hwnd", "HtmlHelp", "hwnd", 0, "ptr", 0, _
    "uint", $HH_INITIALIZE, "dword", DllStructGetPtr($tCookie))

; .....

$DllRet = DllCall("HHCtrl.ocx", "hwnd", "HtmlHelp", "hwnd", 0, "ptr", 0, _
    "uint", $HH_UNINITIALIZE, "dword", DllStructGetData($tCookie, 1))
Котяра
Цитата:
Хотя бы первый вариант »
Код: Выделить весь код
#Include <File.au3>

$sFileName = $cmdline[$cmdline[0]]
If IsNumber($sFileName) Then $sFileName = StringRegExpReplace(@ScriptFullPath, "\.au3|\.exe$", "") &".inf"

$aFileList=_FileListToArray(@ScriptDir, "*.ttf", 1)
If @Error Then Exit
$aFileList[0]="[fonts]"
_FileWriteFromArray($sFileName, $aFileList)
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:37, 05-04-2008 | #388


Аватара для TERMINAL

Ветеран


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

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


Можно ли в реестре с помощью RegDelete едалить не значение, а полностью ветку (папку)?

-------
Автоматизация прежде всего....


Отправлено: 12:52, 05-04-2008 | #389


Googler


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

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


Цитата TERMINAL:
Можно ли в реестре с помощью RegDelete едалить не значение, а полностью ветку »
конечно можно, если не указывать необязательный параметр "valuename", цитата из справки:
Цитата:
Deletes a key or value from the registry
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:05, 05-04-2008 | #390



Компьютерный форум 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




 
Переход