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

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

Закрытая тема
Настройки темы
[архив - Часть 2] AutoIt скрипты

(*.*)


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


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

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


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







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


Руководство к действию по работе c AutoIt.


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

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



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

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

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

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

 

Аватара для samsobi

Ветеран


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

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


Цитата amel27:
ТУТ Creat0R давал линк на библиотеку функций для работы с треем (о нем речь?). »
Да, о нем родимом! Большое спасибо за наводку, буду копать и изучать!

-------
http://nick-name.ru/forum/samsobi.gif


Отправлено: 20:56, 05-10-2007 | #551



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

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


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

Ветеран


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

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


Очень часто спрашивают, как кликнуть по иконке программы в трее. С помощью библиотеки SysTray_UDF.au3, которую доработал amel27 сделать это очень просто:
Код: Выделить весь код
#include <SysTray_UDF.au3>

$pid = ProcessExists("edialer.exe")
$index = _SysTrayIconIndex($pid)
If @error Then MsgBox(16, "Error", "This process not have tray icon")
$pos = _SysTrayIconPos($index)
MouseClick("right", $pos[0], $pos[1])

Отправлено: 09:43, 06-10-2007 | #552


Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Хотел сделать ещё и возможность кликания без задействования мышки, но что то не выходит...
Полагаю я неправильно использую функцию ScreenToClient в User32.dll. Может кто-то знает как правильнее? (это кстати моя одна из первых попыток работать с Dll ).

Код: Выделить весь код
#NoTrayIcon
#include <SysTray_UDF.au3>

$Pid = ProcessExists("Opera.exe")
If Not $Pid Then
    MsgBox(16, "Error", "This process not exists")
    Exit
EndIf

$Index = _SysTrayIconIndex($Pid)
If @error Then
    MsgBox(16, "Error", "This process not have tray icon")
    Exit
EndIf

$Pos = _SysTrayIconPos($Index)

$hWnd = WinGetHandle("[Class:Shell_TrayWnd]")
$YPos = ScreenToClient($hWnd, $Pos[0])
$XPos = ScreenToClient($hWnd, $Pos[1])

ControlClick("[Class:Shell_TrayWnd]", "", "ToolbarWindow321", "Right", 1, $XPos, $YPos)

Func ScreenToClient($hWnd, $Point)
    Local $Struct = DllStructCreate("int;int")
    DllStructSetData($Struct, 1, $Point)
    DllStructSetData($Struct, 2, $Point)
    Local $Ret = DllCall("User32.dll", "int", "ScreenToClient", "hwnd", $hWnd, "ptr", DllStructGetPtr($Struct))
    Return $Ret[0]
EndFunc

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

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

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


Отправлено: 10:52, 06-10-2007 | #553


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

Ветеран


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

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


Creat0R
Задумка неплохая, но тут я тебе не советчик, для меня все эти функции с DLL пока тёмный лес :-)

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


Отправлено: 14:02, 06-10-2007 | #554


Аватара для Creat0R

Must AutoIt


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

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


Как можно проверить системные элементы (типа «Мой компьютер», «Мои документы» и т.п) находящиеся на рабочем столе?
Т.е имеется список подобных элементов (имена), нужно каждый из них по этому списку проверить существует ли он на рабочем столе.. как это можно сделать?
В реестре конкретной инфы я так и не нашёл, к примеру у меня «Корзина» называется так: «Mycop» (это латинские буквы) - поиск по реестру почти ничего не дал, т.е нет зацепки чтобы проверить именно это имя, и что именно этот элемент находится на рабочем столе.

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

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

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


Отправлено: 18:43, 06-10-2007 | #555


Аватара для Creat0R

Must AutoIt


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

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


Обновил Au3ToPost 1.7

Список изменении:
Цитата:
v1.7
  • Ещё более надёжная интеграция в SciTE (теперь если файл настроек пуст или не найден, то используется шаблон стандартного файла, в который и пишутся необходимые пункты).
  • Изменён метод вставки символа Tab - оказывается можно использовать CTRL TAB
  • Исправлена ошибка некорректной вставки раскрашенного кода в форум.
  • В Главное Меню добавлен пункт "Добавлять тег [В] к коду".
  • Пункт "О Программе" перемещён в новое меню "Справка".
  • Добавлен пункт "Проверить обновления..." в меню "Справка".
  • Исправлена проблема при закрытии дочернего окна с результатом (возврат в главное окно) - управление в главное окно возвращалось не сразу после закрытия.
  • Теперь при установленной русской раскладки клавиатуры как раскладка по умолчанию, нажатие <Ctrl A> приведёт к выделению всего текста в Edit поле.
  • Теперь рядом с исходником должна быть папка с ресурсами программы (Resources) - Содержит в себе все необходимые ресурсы для работы скрипта.
  • Мелкие поправки в коде.

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

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

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


Отправлено: 04:06, 07-10-2007 | #556


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

Ветеран


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

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


Цитата Creat0R:
поиск по реестру почти ничего не дал »
Можно проверять по CLSID в ключе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace
Например CLSID корзины выглядит так: {645FF040-5081-101B-9F08-00AA002F954E}

Отправлено: 08:51, 07-10-2007 | #557


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

Ветеран


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

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


Как отследить нажал ли пользователь определённую кнопку в приложении и в соотвествии с этим выполнить некое действие, что-то вроде этого:
Код: Выделить весь код
Dim $command

While Not $command
    $command = ControlCommand("Aut2Exe v3 - AutoIt Script to EXE Converter", "", "Button2", "IsChecked")
    Sleep(30)
WEnd
MsgBox(0, "", "Checked")

Отправлено: 13:56, 07-10-2007 | #558


Аватара для Creat0R

Must AutoIt


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

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


Maza Faka,
Цитата:
Можно проверять по CLSID в ключе реестра
Там нет настоящих имён элементов

Цитата:
Как отследить нажал ли пользователь определённую кнопку в приложении
Твой пример не работает?
Ну можно ещё проверять нажатия кнопки мышки (используя _IsPressed()) по определённым коортдинатам.

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

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

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


Отправлено: 18:01, 07-10-2007 | #559


Googler


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

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


Creat0R
Цитата Creat0R:
Вот оно! »
во замутил! ...у меня вроде получилось без RegExp:
Код: Выделить весь код
Func ConvertProc()
    Send("^{Insert}")
    Local $strSelect = ClipGet()
    If $strSelect='' Then Return
    ClipPut(InvertText($strSelect, $objASC, $objANS))
    Sleep(100)
    Send("+{Insert}")
    RestoreSelection(StringLen($strSelect))
    ClipPut('')
EndFunc

Func RestoreSelection($iLen)
    Local $iOldLen=0, $iNewLen=0, $iFixLen=0
    Send("^+{RIGHT}^{Insert}")
    Local $sOld = ClipGet()
    Send("^+{LEFT}^{Insert}")
    Local $sNew = ClipGet()
    If $sOld<>$sNew Then
        $iFixLen = StringLen($sOld)
        $iNewLen = StringLen($sNew)
    EndIf
    While $iNewLen<$iLen
        Send("^+{LEFT}^{Insert}")
        $iOldLen = $iNewLen
        $iNewLen = StringLen(ClipGet())
    Wend
    If $iNewLen=$iLen Then Return
    If ($iNewLen-$iLen)<(1+$iFixLen+$iLen-$iOldLen) Then
        Send('+{RIGHT ' & ($iNewLen-$iLen) & '}')
    Else
        Send('^+{RIGHT}+{LEFT ' & ($iLen+$iFixLen-$iOldLen) & '}')
    EndIf
EndFunc
Цитата Creat0R:
Как можно проверить системные элементы (типа «Мой компьютер», «Мои документы» и т.п) находящиеся на рабочем столе? »
Ранее уже постил свой вариант через API, потом аналогичная тема появилась на оффсайте, там вроде обошлись только штатными функциями:Restore Icon Positions, on the Desktop and in Windows

ADD:через реестр: http://wiki.oszone.net/index.php/%D0...D0%B0/HKCU.REG

З.Ы. А зачем Send('{CTRLDOWN}') Send('{CTRLUP}'), от залипаний Ctrl?

Последний раз редактировалось amel27, 08-10-2007 в 11:47. Причина: правка скрипта

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

Отправлено: 07:19, 08-10-2007 | #560



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[Архив - Часть 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




 
Переход