Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoHotkey

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

chum2000

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

   
 
Актуальная версия: AutoHotkey 2.0.5 от 12 августа 2023
Версия для Windows XP | Changes from v1.1 to v2.0
 
Официальный сайт | Англоязычный форум | Архивный форум | Русскоязычный форум
Документация (англ.) | Документация и статьи (рус.) | История изменений
 
Подборка полезных скриптов | AutoHotkey + Total Commander
 

Цитата:
AutoHotkey — бесплатная программа с открытым исходным кодом для создания макросов и автоматизации, позволяющая упростить выполнение повторяющихся задач.
 
AutoHotkey позволяет изменить интерфейс практически любой программы. Имеет собственный скриптовый язык, специально нацеленный на лёгкое назначение и переназначение горячих клавиш.
 
AutoHotkey можно использовать для запуска программ, отправки текста, имитации мыши. Скриптовый язык позволяет управлять окнами, файлами и папками. Команды могут быть активированы горячими клавишами.
 
Также имеются возможности создания GUI, работы с реестром, использования собственного API окон для вызова DLL-файлов. Скрипты можно скомпилировать в EXE-файл и запускать на любом компьютере с Windows соответствующей версии.
 
Наиболее частое применение AutoHotkey:
- переназначение клавиш (глобально или у отдельных программ)
- управление мышью с помощью клавиатуры или джойстика
- слежение за системой, автоматическое выполнение некоторых действий по желанию пользователя, таких как напоминание, сканирование или резервное копирование
 

Всего записей: 505 | Зарегистр. 04-03-2004 | Отправлено: 00:28 02-06-2005 | Исправлено: Egor2020, 10:08 21-09-2023
totnetot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как получить текст из редактора шапки какой-либо темы данного форума в переменную? Пример.
Я сделал скрипт генерирующий таблицу сравнения программ. Теперь хочу сделать сам внешний редактор этой таблицы. С web-ом пока не очень дружу.

Всего записей: 410 | Зарегистр. 16-03-2013 | Отправлено: 07:46 10-08-2018
quaritexa



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть где-нибудь скрипт OSD нажатой кнопки?

Всего записей: 84 | Зарегистр. 26-09-2006 | Отправлено: 15:13 31-08-2018
totnetot



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quaritexa
Тут

Всего записей: 410 | Зарегистр. 16-03-2013 | Отправлено: 02:14 01-09-2018
LonerD



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Каким образом можно передать скрипту те параметры, которые не являются пустыми (и пропустить/проверить/исключить из обработки пустые)?
Например, в Total Commanderе %L - это путь к временному файлу со списком выделенных файлов. Если нет выделения и под курсором нет файлов, то путь пустой.  
Запускается такой скрипт:

Код:
Param1 = %1%
Param2 = %2%
msgbox, % Param1
msgbox, % Param2

 
В качестве параметров передаётся %L 1
Пробую также менять порядок передаваемых параметров 1 %L
В Тотале ставлю курсор на строку перехода на уровень выше [..] (%L при этом получается пустой) и запускаю скрипт.
В обеих случаях возвращаются пустые ответы, скрипт не считывает первый параметр даже если он существует (=1 во втором случае).
 
Упрощаю скрипт, передаю те же параметры, второй параметр уже даже не считывается. Но опять даже первый параметр не передаётся.

Код:
Param1 = %1%
msgbox, % Param1

Попытка проверить условие количества параметров и считывать только первый параметр ни к чему не приводит, результат всё-равно пустой.

Код:
Param1 = %1%
if 0 < 2
msgbox, % Param1

Всего записей: 838 | Зарегистр. 27-06-2006 | Отправлено: 14:02 22-09-2018 | Исправлено: LonerD, 14:06 22-09-2018
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LonerD

Код:
Param1 = %1%
Param2 = %2%
if (Param1 <> "" )
    msgbox, "<%Param1%>"
else
    msgbox, "Param1 is empty"
if (Param2 <> "" )
    msgbox, "<%Param2%>"
else
    msgbox, "Param2 is empty"

 
А %L в TC заключать в кавычки "%L"  
 

Всего записей: 3218 | Зарегистр. 09-02-2003 | Отправлено: 14:17 22-09-2018 | Исправлено: Smitis, 14:32 22-09-2018
LonerD



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Smitis
Не работает.
Ставлю параметр

Код:
1 "%L"

Получаются сообщения "Param1 is empty"  "Param2 is empty".
Имеющийся первый параметр (единичку) скрипт так и не воспринимает.
 

Код:
msgbox, %0%

Сколько  бы параметров не задавать - если один из них не существует, остальные все просто игнорируются, высвечивается, что параметров ноль...
 
PS. Похоже, проблема в плоскости ТС, а не AHK.
ТС вообще не отдаёт параметры в описанном случае.
https://www.ghisler.ch/board/viewtopic.php?f=3&t=50993

Всего записей: 838 | Зарегистр. 27-06-2006 | Отправлено: 16:47 22-09-2018 | Исправлено: LonerD, 01:41 23-09-2018
BEndER_Tech

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет
подскажите, хочу создать максор на выпивание зелий в игре с интервалом в 200 мс
но зелья не весят на кнопках. активировать их приходится ПКМ.
что должно быть прописано в скрипте?

Всего записей: 2472 | Зарегистр. 23-02-2006 | Отправлено: 14:26 02-10-2018
IskanderGorsky

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BEndER_Tech
Можно кликать по картинкам-участкам, вызывающим активацию зелий.

Всего записей: 1 | Зарегистр. 15-11-2018 | Отправлено: 00:22 15-11-2018 | Исправлено: IskanderGorsky, 00:30 16-11-2018
quaritexa



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Существует ли нормальный (не глючный) конвертер ahk1 > ahk2?

Всего записей: 84 | Зарегистр. 26-09-2006 | Отправлено: 14:04 21-11-2018 | Исправлено: quaritexa, 14:04 21-11-2018
Voletho15



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Официальный сайт сейчас ведет на

Цитата:
https://www.autohotkey.com/


Всего записей: 122 | Зарегистр. 22-05-2017 | Отправлено: 13:51 01-12-2018
WatsonRus



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Глюкануло что-то с названием топика... исправил...

Всего записей: 37866 | Зарегистр. 03-05-2004 | Отправлено: 15:09 01-12-2018
DonKarlosOn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дано: Kodi, инфракрасный ПДУ Microsoft Remote Control model 1039 RC6, Autohotkey  1.1.24.02 + скрипт запуска Kodi GSB_Script_AllinOne.ahk (должен запускать Коди с "Большой зеленой кнопки" пульта)
 
С Kodi x32 скрипт работает, но при попытке запустить Kodi x64 проигрыватель не запускается, при этом открывается текст скрипта GSB_Script_AllinOne.ahk  Путь к Kodi x64 проверял.
 
 
 
http://xbmccustomregis.sourceforge.net/remote_manu.html
 
1.1 Keyboard.xml:
 
...
8- Green Start Button GSB Home Jump feature added. MUST download Autohotkey script as well for it to work.
 
Прошу помощи с поиске ошибки в GSB_Script_AllinOne.ahk, который можно взять здесь
 
https://sourceforge.net/projects/xbmccustomregis/files/Autohotkey%20Scripts/GSB/GSB_Script_AllinOne%20v2.39.zip/download
 
 

Всего записей: 21 | Зарегистр. 04-09-2009 | Отправлено: 16:13 04-12-2018 | Исправлено: DonKarlosOn, 16:16 04-12-2018
Aleksks

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть проверенный временем рабочий autoit-скрипт для быстрого и очень удобного переключения окон панели задач по нажатию клавиш:
 
ctrl+win+1 переключает на предыдущее окно
ctrl+win+2 переключает на следующее окно
 
ctrl+win+8 переключает через одно окно назад
ctrl+win+9 переключает через одно окно вперёд
 
ctrl+win+7 переключает на предыдущее окно, затем второе нажатие этой же комбинации переключает на начальное окно (и так далее только между этими двумя окнами, то есть третье нажатие переключает на предыдущее, а четвёртое нажатие переключает на начальное...)
 
ctrl+win+3 переключает на следующее окно, затем второе нажатие этой же комбинации переключает на начальное окно (и так далее только между этими двумя окнами, то есть третье нажатие переключает на следующее, а четвёртое нажатие переключает на начальное...)
 
ctrl+win+0 переключает на первое окно
ctrl+win+5 переключает на последнее окно
 
неудобные тройные (не двойные) комбинации продуманы и реализованы специально, поскольку изначально чёткой целью было использование максимально удобнейших одинарных комбинаций
 
а хоть как-то терпимые, но не особо удобные двойные комбинации (например, ctrl+1 или win+2 или ctrl+3 или win+0) я оставил доступными для чего-то другого, но не настолько безумно часто используемого и важного как переключение между окнами
(тройные же комбинации всерьёз воспринимать ни могу вообще, настолько они неудобны)
 
 
в моём случае много лет после переназначения это всё выглядит так
(num lock всегда полностью выключен) (панель задач вертикальная слева):
 
не ctrl+win+1, а num7
не ctrl+win+2, а num1
 
не ctrl+win+8, а prt scr
не ctrl+win+9, а insert
 
не ctrl+win+7, а previous track (мультимедийная клавиша, находится правее-выше от num+)
не ctrl+win+3, а next track (мультимедийная клавиша, находится правее-ниже от num+)
 
не ctrl+win+0, а num/
не ctrl+win+5, а num*
 
для большей полноты картины просто упомяну к слову, что помимо этих всех комбинаций мной в системе давно используются ещё такие как:
num lock > переключение режима "always on top" у окна
num 5 > закрытие окна
num- > обновление окна
num+ > сворачивание окна
num0 > переключение режима "transparency" у окна (num0 используется очень редко, а остальные очень часто)
 
прошу помочь полностью переписать этот скрипт из autoit в autohotkey

Всего записей: 127 | Зарегистр. 25-04-2008 | Отправлено: 19:31 20-01-2019
Aleksks

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в начале предыдущего сообщения по ссылке имеется чуть более старая версия autoit-скрипта
размещаю здесь самую последнюю версию, в которой просто убран мелкий неактуальный фрагмент, а также существенно изменены сочетания клавиш
(в сторону упрощения и увеличения удобства при сохранении функционала)
 
много часов на это вчера-сегодня было потрачено, вроде бы в итоге скрипт работает так же хорошо
но при этом 8 возможностей скрипта теперь напрямую прописаны как одинарные комбинации (а не тройные как раньше)
 
почти все проблемы заключались в том, что вообще есть две клавиши home, две клавиши end и две клавиши insert
и, например, на клавишу num7 (она же num-home) нужно было назначить собственную комбинацию (переключение на предыдущее окно панели задач), но заодно не потерять функционал простой клавиши home
 
также добавлены немногочисленные, но подробнейшие комментарии (примерно в строках 20-25), призванные существенно облегчить понимание сути как предыдущего сообщения, так и задумки в целом
 

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIToolbar.au3>
#include <WinAPI.au3>
#include <Array.au3>
#include <Misc.au3>
#include <HotKey.au3>
 
_Singleton("My Windows-Switcher")
 
#Region Variables & Options
Opt("WinWaitDelay", 1)
 
Global $sLast_NextBack_Window       = ""
Global $sLast_BackNext_Window       = ""        
 
; COMMENT:  desired state of num-lock is 'always off'     to achieve it, this constantly running ahk-script is necessary:     NumLock::  {    setnumlockstate, alwaysoff     $numlock::YOUR-HOTKEY-TO-TOGGLE-'ALWAYS-ON-TOP'-STATE   }   return
;
Global $sSwitchBack_HT              = 0x67 ; button num7      COMMENT:  (67: num7) (24: home)       24: works but also affects button 'home'         67: works only if 'num-lock' is on  so this constantly running ahk-script is necessary:        *VK24::send {VK67} return
;
Global $sSwitchNext_HT              = 0x61 ; button num1      COMMENT:  (61: num1) (23: end)       23: works but also affects button 'end'         61: works only if 'num-lock' is on  so this constantly running ahk-script is necessary:        *VK23::send {VK61} return
;
Global $sSwitchDblBack_HT           = 0x2C ; button 'prt scr'
Global $sSwitchDblNext_HT           = 0x2D ; button insert       COMMENT:  (2D: insert) (60: num0)        this constantly running ahk-script is necesssary:        *VK60::send {VK2D} return
Global $sSwitchNextBack_HT          = 0xB0 ; button 'next track'
Global $sSwitchBackNext_HT          = 0xB1 ; button 'previous track'
Global $sSwitchFirst_HT             = 0x6F ; button num/
Global $sSwitchLast_HT              = 0x6A ; button num*
Global $sSwitchAsAltTab_HT          = ""
 
$aHK_Vars = StringSplit("Back|Next|DblBack|DblNext|NextBack|BackNext|First|Last|AsAltTab", "|")
 
For $i = 1 To $aHK_Vars[0]
    _HotKeyAssign(Eval("sSwitch" & $aHK_Vars[$i] & "_HT"), "_SwitchTaskBarWindow_Proc", _
        BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
Next
#EndRegion Variables & Options
 
While 1
    Sleep(100)
WEnd
 
Func _SwitchTaskBarWindow_Proc($iKey)
    Local $HotKeyPressed = "0x" & Hex($iKey, 4)
    _HotKeyAssign($HotKeyPressed)
   
    Local $sActivate_Window = "", $hParent_Active_Wnd = _WinAPI_GetAncestor(WinGetHandle(""), $GA_ROOTOWNER)
    Local $aTaskBarWindows = _WinListTaskBarWindowsEx(Number($HotKeyPressed <> $sSwitchAsAltTab_HT))
   
    If @error Then Return _HotKeyAssign($HotKeyPressed, "_SwitchTaskBarWindow_Proc", BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
   
    For $i = 1 To $aTaskBarWindows[0][0]
        If WinActive($aTaskBarWindows[$i][0]) Or $aTaskBarWindows[$i][0] = $hParent_Active_Wnd Then
            Switch $HotKeyPressed
                Case $sSwitchBack_HT, $sSwitchAsAltTab_HT ;Предыдущее окно (1-ое по счёту)
                    If $i = 1 Then $i = $aTaskBarWindows[0][0] + 1
                    $sActivate_Window = $aTaskBarWindows[$i - 1][0]
                Case $sSwitchNext_HT, $sSwitchAsAltTab_HT ;Следующее окно (1-ое по счёту)
                    If $i = $aTaskBarWindows[0][0] Then $i = 0
                    $sActivate_Window = $aTaskBarWindows[$i + 1][0]
                Case $sSwitchDblBack_HT ;Предыдущее окно (2-ое по счёту)
                    If $i = 1 Then $i = $aTaskBarWindows[0][0] + 1
                    If $i = 2 Then $i = $aTaskBarWindows[0][0] + 2
                    $sActivate_Window = $aTaskBarWindows[$i - 2][0]
                Case $sSwitchDblNext_HT ;Следующее окно (2-ое по счёту)
                    If $i = $aTaskBarWindows[0][0] Then $i = 0
                    If $i + 2 <= $aTaskBarWindows[0][0] Then $sActivate_Window = $aTaskBarWindows[$i + 2][0]
                Case $sSwitchNextBack_HT ;Следующее <> Предыдущее окно
                    If $sLast_NextBack_Window <> $aTaskBarWindows[$i][0] Then $sLast_NextBack_Window = ""
                   
                    If $sLast_NextBack_Window = "" Then
                        If $i = $aTaskBarWindows[0][0] Then $i = 0
                        $sActivate_Window = $aTaskBarWindows[$i + 1][0]
                        $sLast_NextBack_Window = $sActivate_Window
                    Else
                        If $i = 1 Then $i = $aTaskBarWindows[0][0] + 1
                        $sActivate_Window = $aTaskBarWindows[$i - 1][0]
                        $sLast_NextBack_Window = ""
                    EndIf
                Case $sSwitchBackNext_HT ;Предыдущее <> Следующее окно
                    If $sLast_BackNext_Window <> $aTaskBarWindows[$i][0] Then $sLast_BackNext_Window = ""
                   
                    If $sLast_BackNext_Window = "" Then
                        If $i = 1 Then $i = $aTaskBarWindows[0][0] + 1
                        $sActivate_Window = $aTaskBarWindows[$i - 1][0]
                        $sLast_BackNext_Window = $sActivate_Window
                    Else
                        If $i = $aTaskBarWindows[0][0] Then $i = 0
                        $sActivate_Window = $aTaskBarWindows[$i + 1][0]
                        $sLast_BackNext_Window = ""
                    EndIf
                Case $sSwitchFirst_HT, $sSwitchLast_HT
                    $sActivate_Window = ""
            EndSwitch
           
            ExitLoop
        EndIf
    Next
   
    ;Не найдены активные окна...
    If $sActivate_Window = "" Then
        Switch $HotKeyPressed
            Case $sSwitchBack_HT, $sSwitchLast_HT
                ;Активируем последнее окно
                $sActivate_Window = $aTaskBarWindows[$aTaskBarWindows[0][0]][0]
            Case Else
                ;Активируем первое окно
                $sActivate_Window = $aTaskBarWindows[1][0]
        EndSwitch
    EndIf
   
    WinActivate($sActivate_Window)
    _HotKeyAssign($HotKeyPressed, "_SwitchTaskBarWindow_Proc", BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
EndFunc
 
Func _WinListTaskBarWindowsEx($iListSort=1)
    Local $hToolbar = ControlGetHandle("[CLASS:Shell_TrayWnd]", "", "ToolbarWindow322")
    If @error Then $hToolbar = ControlGetHandle("[CLASS:Shell_TrayWnd]", "", "ToolbarWindow323")
    If @error Then Return SetError(1, 0, 0)
   
    Local $aWinList = WinList()
    Local $aRet_List[$aWinList[0][0] + 1][2], $iToolbarButtonIndex
   
    For $i = 1 To $aWinList[0][0] Step 1
        If Not BitAND(WinGetState($aWinList[$i][1]), 2) Then ContinueLoop
       
        $iToolbarButtonIndex = _WinAPI_FindToolbarButton($aWinList[$i][1], $hToolbar)
       
        If $iToolbarButtonIndex > 0 Then
            $aRet_List[0][0] += 1
            $aRet_List[$aRet_List[0][0]][0] = $aWinList[$i][1]
            $aRet_List[$aRet_List[0][0]][1] = $iToolbarButtonIndex
        EndIf
    Next
   
    If $aRet_List[0][0] = 0 Then Return SetError(2, 0, 0)
   
    ReDim $aRet_List[$aRet_List[0][0] + 1][2]
    If $iListSort Then _ArraySort($aRet_List, 0, 1, $aRet_List[0][0], 1)
   
    Return $aRet_List
EndFunc
 
Func _WinAPI_FindWindowEx($hParent, $hChild, $sClass, $sWindow)
    ; must create structs and use ptrs to account for passing a true NULL as classname or window title
    ; simply using "wstr" and "" does NOT work
    Local $sStruct1, $sStruct2
   
    If $sClass = "" Then
        $sClass = 0
    Else
        $sStruct1 = DllStructCreate("wchar[256]")
        DllStructSetData($sStruct1, 1, $sClass)
        $sClass = DllStructGetPtr($sStruct1)
    EndIf
   
    If $sWindow = "" Then
        $sWindow = 0
    Else
        $sStruct2 = DllStructCreate("wchar[256]")
        DllStructSetData($sStruct2, 1, $sWindow)
        $sWindow = DllStructGetPtr($sStruct2)
    EndIf
   
    Local $aRet = DllCall("user32.dll", "hwnd", "FindWindowExW", "hwnd", $hParent, "hwnd", $hChild, "ptr", $sClass, "ptr", $sWindow)
   
    $sStruct1 = 0
    $sStruct2 = 0
   
    Return $aRet[0]
EndFunc
 
Func _WinAPI_FindToolbarButton($hWnd, $hTB)
    Local $iReturn = -1, $iPID, $hProcess, $sStruct = DllStructCreate("ptr")
   
    ; open process owning toolbar control
    _WinAPI_GetWindowThreadProcessId($hTB, $iPID)
   
    $hProcess = _WinAPI_OpenProcess(0x410, False, $iPID)
   
    If $hProcess Then
        Local $iCount = _GUICtrlToolbar_ButtonCount($hTB)
       
        For $i = 0 To $iCount - 1
            Local $iID = _GUICtrlToolbar_IndexToCommand($hTB, $i)
           
            ; button param is ptr to owner's window handle, stored in target process's memory space
            Local $dwData = _GUICtrlToolbar_GetButtonParam($hTB, $iID)
           
            ; read the window handle from the explorer process
            Local $aRet = DllCall("kernel32.dll", "int", "ReadProcessMemory", "ptr", _
                    $hProcess, "ptr", $dwData, "ptr", DllStructGetPtr($sStruct), "uint", 4, "uint*", 0)
           
            If $aRet[5] Then
                If $hWnd = DllStructGetData($sStruct, 1) Then
                    $iReturn = $i
                    ExitLoop
                EndIf
            EndIf
        Next
       
        _WinAPI_CloseHandle($hProcess)
    EndIf
   
    Return $iReturn
EndFunc
 
Func _Exit()
    Exit
EndFunc

Всего записей: 127 | Зарегистр. 25-04-2008 | Отправлено: 19:53 21-01-2019 | Исправлено: Aleksks, 20:31 21-01-2019
Krot66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksks
Вы всерьез рассчитываете, что кто-то будет переписывать вам это языком Autohotkey? Скрипт не имеет настроек - скомпилируйте и пользуйтесь им где угодно в свое удовольствие. Людей полноценно знающих Autoit и Autohotkey не так много: это два родственных языка с дублирующими возможностями, поэтому обычно выбирают один из них

Всего записей: 1202 | Зарегистр. 10-12-2007 | Отправлено: 21:32 21-01-2019
creature_ws



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Насколько я понимаю, проблема в том что Autoit скрипт не работает на win 10 x64, скорее всего дело в вызове вин апи функций и интерпретация результатов без учёта различий 32- и 64-битных адресов, переписывать на Autohotkey может быть полезным и оправданным только если цель — изучить ахк, иначе — нужно лишь подправить Autoit скрипт.
 
(компилирование в x64 не меняет логику скрипта)

Всего записей: 304 | Зарегистр. 29-07-2008 | Отправлено: 04:03 22-01-2019 | Исправлено: creature_ws, 04:07 22-01-2019
Aleksks

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
creature_ws
1) проблемы как таковой нет, но есть желание не плодить лишние процессы в памяти (в тех случаях, когда почти наверняка можно обойтись одним общим ahk-скриптом)
 
2) этот autoit-скрипт является единственным autoit-скриптом, постоянно висящим в памяти (другой ahk-скрипт тоже постоянно загружен, но содержит он в десятки раз больше функционала); поэтому пытаюсь перенести возможность переключать окна из одного мелкого autoit-скрипта в большой ahk-скрипт, чтобы затем мелкий убрать
 
 
3) я мог бы изначально ничего не расписывать и не пояснять, а просто (ни на что не рассчитывая) озвучить коротко просьбу написать ahk-скрипт, выполняющий эти 8 действий с окнами; мне куда проще было бы
 
- но иногда чтобы получить помощь, неплохо бы по возможности и усилия приложить для этого; я объяснил задачу так подробно, как смог; в том числе в надежде, что данный полностью готовый и рабочий autoit-скрипт принесёт пользу и даст хороший ориентир и сэкономит время тому, кто возьмётся помочь
 
- конечно, если кому-то это будет интересно; хотя всё-таки, если вдуматься, это потенциально очень полезный скрипт для многих; вот только наверняка не знаю, способен ли и ahk на реализацию такой идеи
 
 
4) дело совершенно не в win 10 x64, так как используется сервер-2003 r2 sp2 х32 (но с 32 гб озу и с поддержкой gpt), в котором скрипт с тройными комбинациями работает хорошо, и с одинарными вроде бы тоже (но нужно ещё немного потестировать, чтобы быть уверенным полностью)

Всего записей: 127 | Зарегистр. 25-04-2008 | Отправлено: 05:31 22-01-2019
quaritexa



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksks
 
Вряд ли тут кт-то согласится переписывать такой специфичный скрипт. Кроме вас он скорей всего никому не нужен. Возможно тут кто-нибудь откликнется: forum.script-coding.com/viewforum.php?id=13
 
Но самый прямой путь это самостоятельно освоить autohotkey (изучив справку) и написать себе скрипт. Рекомендую начать сразу со второй версии.

Всего записей: 84 | Зарегистр. 26-09-2006 | Отправлено: 18:01 22-01-2019
Aleksks

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
quaritexa
переписывать не обязательно; даже смотреть на этот autoit-скрипт не прошу; просьба тут в том, чтобы создать ahk-скрипт, который мог бы делать тоже самое
 
на данный момент даже не особо понимаю многих элементарных (для опытных людей) нюансов относительно создания ahk-скриптов;  
как раз почти весь этот январь впервые пытаюсь что-то своё довольно примитивное создать: потрачены сотни часов (в прямом смысле), многое сделано, почти всё работает, десятки возникших проблем решены или их удалось разными способами обойти
 
но вопросов/уточнений полно; никого ими тут не нагружал и не особо пока планирую, но с этой одной тяжёлой задачей в принципе не справлюсь; не технический склад ума совсем; актуальная chm-справка глючная (в отличие от более старой chm-справки версии 1.0.48.05), online-справка терпимая, но тормозная; при этом мне катастрофически не хватает самых разных просто примеров почти на каждой странице справки
 
в теории же, изучение языка программирования ради одного довольно небольшого скрипта представляется неадекватным соотношением затраченных сил/времени к полученному результату; причём я до сих пор не знаю, реально ли такое создать в ahk (могу ошибаться, но сильно подозреваю, что при наличии знаний и опыта, это делается левой ногой за очень короткий срок, исчисляемый десятками минут)
 
 
несколько недель назад зарегистрироваться на ahk-форуме мне не удалось (на просьбу помочь с регистрацией админ по почте не ответил), а так-то я как раз начинал с попытки попросить там помощи с этим одним скриптом
 
Кроме вас он скорей всего никому не нужен
приведённая мной выше ссылка на тему главного русского autoit-форума не позволяет согласиться; пройдя по ней, можно увидеть фразу: "(Прочитано 34416 раз)"

Всего записей: 127 | Зарегистр. 25-04-2008 | Отправлено: 20:28 22-01-2019 | Исправлено: Aleksks, 20:52 22-01-2019
metatrop

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aleksks

Цитата:
 
так как используется сервер-2003 r2 sp2 х32 (но с 32 гб озу и с поддержкой gpt)
 

 
Неплохо. В наше время всё больше хомячки, смирившиеся с бесконечными обновлениями и телеметрическим слежением. С другой стороны, и многие почитатели Windows XP остаются на ней во многом потому, что железо старое, не знают всех её преимуществ, и уж тем более не досягают до видения объективной (при некоторых условиях, вполне реалистичных) оптимальности WS2003 32-bit PAE, как потенциальной "вечной ОС" (во всяком случае в прошлый десяток лет, в настоящем и в обозримом будущем, которое, будем надеяться, продлится как можно дольше).
 
Необычно, однако, что при столь грамотном подходе к компьютерному обустройству Вам всё-таки трудно разобраться в скриптах. Интересно, какой тут соционический тип мог бы быть, чтобы сочеталась свобода от стереотипов (в этой области) с "не техническим складом ума совсем"
http://www.socionika.info/test.html
(достоверность 70%, 25% - признаки искажения ответов, 5% - ошибки)
 
Я бы перевёл этот скрипт, но, к сожалению, для себя пока не уяснил, стоит ли начинать использовать подобные языки, т.е. к ним вообще не прикасался пока. Пользуюсь преимущественно FAR, его текстовым редактором, продвинутыми макросами, множеством скриптов и утилит командной строки, а GUI - только в тех случаях, где оно действительно нужно (интернет, картинки, видео, аудио). Т.е. объективно понятно, что AutoHotKey нужен меньше, чем людям повязанным на GUI и мышь.
 
Но, возможно, всё-таки, он был бы полезен. Эта мысль время от времени всплывает. И данный случай - как раз об одном из универсально нужных применений. Стандартное переключение окон по ALT-TAB и впрямь нередко раздражает. С другой стороны есть игры, которые падают по ALT-TAB, а вот как игры будут реагировать на AutoIt/AutoHotKey - вообще непонятно... И не будет ли постоянно работающий резидент, перехватывающий много всякого разного, конфликтовать с чем-то? Как он будет вести себя в отношении Sandboxie? Все эти неясности создают высокий начальный барьер сомнений.

Всего записей: 313 | Зарегистр. 17-09-2010 | Отправлено: 10:15 23-01-2019 | Исправлено: metatrop, 10:38 23-01-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoHotkey


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru