├── .gitattributes ├── .gitignore ├── .vscode └── launch.json ├── AppData ├── .gitignore ├── Saved Flows │ ├── .gitignore │ ├── Flow 100439537.json │ ├── Flow 1010290492.json │ ├── Flow 1087828277.json │ ├── Flow 1175892536.json │ ├── Flow 1210127300.json │ ├── Flow 1271479101.json │ ├── Flow 130786371.json │ ├── Flow 1333431302.json │ ├── Flow 1384439262.json │ ├── Flow 1587447767.json │ ├── Flow 1666346379.json │ ├── Flow 1849072261.json │ ├── Flow 1990010495.json │ ├── Flow 2052424815.json │ ├── Flow 2133155705.json │ ├── Flow 369404488.json │ ├── Flow 381419056.json │ ├── Flow 561135904.json │ ├── Flow 634320780.json │ ├── Flow 65341778.json │ ├── Flow 74366368.json │ ├── Flow 884290977.json │ └── ignore-not-test-flows.ahk └── settings.json ├── AutoHotFlow.ahk ├── AutoHotKey └── AutoHotFlow.exe ├── Changelog.txt ├── Checklist before publishing.txt ├── Documentation ├── AHK Data Types.txt └── screenshots │ ├── Element Tooltip.png │ ├── Element settings.png │ ├── Flow Editor.png │ └── Manager.png ├── Help ├── en │ ├── .gitignore │ ├── Color chart.html │ ├── Index.html │ ├── Key list.html │ ├── Menu - template of one entry.html │ ├── Menu - template.html │ ├── Menu.html │ ├── Variables.html │ └── Welcome.html ├── stylesheet.css └── template.html ├── Icons ├── Disabled small.ico ├── Edit.ico ├── Enabled small.ico ├── Exclamation mark.ico ├── MainIcon.ico ├── Move.ico ├── Plus.ico ├── Question mark.ico ├── Small Icons template.xcf ├── Translator.ico ├── Trash.ico ├── Update Checker.ico ├── VariableName.ico ├── disabled.ico ├── e_plus.png ├── e_star_empty.ico ├── e_star_empty.png ├── e_star_empty.xcf ├── e_star_filled.ico ├── e_star_filled.png ├── e_star_filled.xcf ├── e_switch.xcf ├── e_switch_off.ico ├── e_switch_on.ico ├── enabled.ico ├── expression.ico ├── folder.ico ├── running.ico └── string.ico ├── Lib ├── 7z wrapper │ └── 7z wrapper.ahk ├── GDI+ │ └── Gdip.ahk ├── Json │ └── Jxon.ahk ├── Objects │ └── Objects.ahk ├── Random Word List │ └── Random Word List.ahk ├── Yunit │ ├── LICENSE.txt │ ├── README.md │ ├── Stdout.ahk │ ├── Window.ahk │ ├── Yunit.ahk │ └── doc │ │ ├── Example.ahk │ │ └── Main.md └── ini │ └── ini helper.ahk ├── License.txt ├── Package uninstaller.ahk ├── README.md ├── Saved Flows └── demo flows │ ├── Flow 1369089307.json │ ├── Flow 1428714744.json │ ├── Flow 1638325262.json │ └── Flow 806132298.json ├── Source_Common ├── Debug │ ├── Debug.ahk │ └── Logger.ahk ├── Elements │ ├── Elements.ahk │ └── Manage Elements.ahk ├── Flows │ ├── Compatibility.ahk │ ├── Flow actions.ahk │ ├── Load.ahk │ ├── Manage Flows.ahk │ ├── Save.ahk │ └── States.ahk ├── Multithreading │ ├── API Caller to Draw.ahk │ ├── API Caller to Editor.ahk │ ├── API Caller to Execution.ahk │ ├── API Caller to Main.ahk │ ├── API Caller to Manager.ahk │ ├── API for Elements.ahk │ └── Shared Variables.ahk ├── Other │ ├── Design.ahk │ └── Other.ahk ├── Settings │ └── Settings.ahk └── Variables │ ├── Code evaluator.ahk │ ├── Code parser.ahk │ ├── Code tokenizer.ahk │ ├── Expression evaluator.ahk │ └── Global variables.ahk ├── Source_Draw ├── Draw.ahk └── GDIp │ └── GDIp.ahk ├── Source_Editor ├── API │ └── API for Elements.ahk ├── Assistants │ ├── Choose Color.ahk │ ├── Get window information.ahk │ └── Mouse tracker.ahk ├── Editor.ahk ├── Elements │ ├── Clipboard.ahk │ └── Select elements.ahk └── User Interface │ ├── Editor GUI Menu bar.ahk │ ├── Editor GUI User Input.ahk │ ├── Editor GUI.ahk │ ├── Element settings other.ahk │ ├── Element settings.ahk │ ├── Flow settings.ahk │ ├── GDI+.ahk │ ├── Help.ahk │ ├── Tooltip.ahk │ └── Tray.ahk ├── Source_Elements ├── .gitignore └── Default │ ├── Actions │ ├── Absolute_Number.ahk │ ├── Add_to_list.ahk │ ├── AutoHotkey_script.ahk │ ├── Beep.ahk │ ├── Block_User_Input.ahk │ ├── Change_Drive_Label.ahk │ ├── Change_character_case.ahk │ ├── Click.ahk │ ├── Close_Window.ahk │ ├── Compress_files.ahk │ ├── Convert_list_to_string.ahk │ ├── Convert_string_to_list.ahk │ ├── Copy_file.ahk │ ├── Copy_folder.ahk │ ├── Create_Shortcut.ahk │ ├── Create_folder.ahk │ ├── Delete_From_Ini.ahk │ ├── Delete_file.ahk │ ├── Delete_folder.ahk │ ├── Delete_from_list.ahk │ ├── Do_nothing.ahk │ ├── Download_file.ahk │ ├── Drag_with_mouse.ahk │ ├── Eject_Drive.ahk │ ├── Empty_Recycle_bin.ahk │ ├── Encode_string.ahk │ ├── Execute_Flow.ahk │ ├── Exponentiation.ahk │ ├── Extract_files.ahk │ ├── Get_Clipboard.ahk │ ├── Get_Drive_Information.ahk │ ├── Get_Screen_Settings.ahk │ ├── Get_Volume.ahk │ ├── Get_control_text.ahk │ ├── Get_file_attributes.ahk │ ├── Get_file_size.ahk │ ├── Get_file_time.ahk │ ├── Get_from_list.ahk │ ├── Get_index_of_element_in_list.ahk │ ├── Get_list_info.ahk │ ├── Get_mouse_position.ahk │ ├── Get_pixel_color.ahk │ ├── Get_shortcut_information.ahk │ ├── Get_string_Length.ahk │ ├── HTTP_Request.ahk │ ├── Hibernate_Computer.ahk │ ├── Hide_window.ahk │ ├── Input_Box.ahk │ ├── Kill_Process.ahk │ ├── List_Drives.ahk │ ├── Lock_Computer.ahk │ ├── Lock_Or_Unlock_Drive.ahk │ ├── Log_Off.ahk │ ├── Message_Box.ahk │ ├── Minimize_All_Windows.ahk │ ├── Move_File.ahk │ ├── Move_Folder.ahk │ ├── Move_Mouse.ahk │ ├── Move_window.ahk │ ├── New_List.ahk │ ├── New_Time.ahk │ ├── New_Variable.ahk │ ├── Play_Sound.ahk │ ├── Random_Number.ahk │ ├── Read_From_File.ahk │ ├── Read_From_Ini.ahk │ ├── Reboot_Computer.ahk │ ├── Rename_Folder.ahk │ ├── Rename_file.ahk │ ├── Replace_in_a_string.ahk │ ├── Rounding_a_number.ahk │ ├── Run.ahk │ ├── Screenshot.ahk │ ├── Script.ahk │ ├── Search_Image.ahk │ ├── Search_in_a_string.ahk │ ├── Search_pixel.ahk │ ├── Select_file.ahk │ ├── Select_folder.ahk │ ├── Send_Keystrokes.ahk │ ├── Send_Keystrokes_To_Control.ahk │ ├── Set_Clipboard.ahk │ ├── Set_Flow_Status.ahk │ ├── Set_Lock_Key.ahk │ ├── Set_Process_Priority.ahk │ ├── Set_Screen_Settings.ahk │ ├── Set_Volume.ahk │ ├── Set_control_text.ahk │ ├── Set_element_parameter.ahk │ ├── Set_file_attributes.ahk │ ├── Set_file_time.ahk │ ├── Show_window.ahk │ ├── Shuffle_list.ahk │ ├── Shutdown.ahk │ ├── Sleep.ahk │ ├── Speech_output.ahk │ ├── Split_a_string.ahk │ ├── Split_path.ahk │ ├── Square_Root.ahk │ ├── Stop_Flow.ahk │ ├── Stop_Sound.ahk │ ├── Substring.ahk │ ├── Substring2.ahk │ ├── Suspend_Computer.ahk │ ├── Time_calculation.ahk │ ├── Time_difference.ahk │ ├── Tooltip.ahk │ ├── Trace_Point.ahk │ ├── Trace_Point_Check.ahk │ ├── Trigonometry.ahk │ ├── Trim_a_string.ahk │ ├── Write_To_File.ahk │ ├── Write_to_ini.ahk │ └── activate_Window.ahk │ ├── Conditions │ ├── Confirmation_Dialog.ahk │ ├── Debug_dialog.ahk │ ├── Do_nothing.ahk │ ├── Expression.ahk │ ├── File_Exists.ahk │ ├── File_Has_Attribute.ahk │ ├── Flow_Enabled.ahk │ ├── Flow_Running.ahk │ ├── Key_Is_Down.ahk │ ├── List_Contains_Element.ahk │ ├── NumberIs.ahk │ ├── Process_Is_Running.ahk │ ├── String_Contains_Text.ahk │ ├── Variable_Is_Empty.ahk │ ├── Variable_content_is.ahk │ ├── Window_Active.ahk │ └── Window_Exists.ahk │ ├── Icons │ ├── Bug.png │ ├── Bullhorn.png │ ├── Keyboard.png │ ├── Sleep.ico │ ├── Tooltip.png │ ├── new Variable.png │ └── yellow.png │ ├── License.txt │ ├── Loops │ ├── Condition.ahk │ ├── Loop_Through_Files.ahk │ ├── Parse_A_String.ahk │ ├── SimpleLoop.ahk │ └── Work_through_a_list.ahk │ ├── Test status.ods │ ├── Triggers │ ├── AutoHotkey_Script.ahk │ ├── Clipboard_Changes.ahk │ ├── Hotkey.ahk │ ├── Hotstring.ahk │ ├── Manual.ahk │ ├── Periodic_Timer.ahk │ ├── Process_closes.ahk │ ├── Process_starts.ahk │ ├── Shortcut.ahk │ ├── Start_up.ahk │ ├── Time_of_Day.ahk │ ├── User_Idle_Time.ahk │ ├── Window_closes.ahk │ ├── Window_gets_active.ahk │ ├── Window_gets_inactive.ahk │ └── Window_opens.ahk │ ├── common │ ├── Window functions.ahk │ └── compatibility.ahk │ ├── help │ └── en │ │ ├── Actions │ │ ├── Absolute_number.html │ │ ├── Add_to_list.html │ │ ├── AutoHotKey_script.html │ │ ├── Beep.html │ │ ├── Block_user_input.html │ │ ├── Change_Drive_Label.html │ │ ├── Change_character_case.html │ │ ├── Click.html │ │ ├── Convert_list_to_string.html │ │ ├── Convert_string_to_list.html │ │ ├── Copy_file.html │ │ ├── Copy_folder.html │ │ ├── Create_folder.html │ │ ├── Create_shortcut.html │ │ ├── Delete_file.html │ │ ├── Delete_folder.html │ │ ├── Delete_from_ini.html │ │ ├── Delete_from_list.html │ │ ├── Do_nothing.html │ │ ├── Download_file.html │ │ ├── Drag_with_mouse.html │ │ ├── Eject_Drive.html │ │ ├── Empty_recycle_bin.html │ │ ├── Execute_Flow.html │ │ ├── Exponentiation.html │ │ ├── Extract_files.html │ │ ├── Get_Clipboard.html │ │ ├── Get_Drive_Information.html │ │ ├── Get_Screen_Settings.html │ │ ├── Get_Volume.html │ │ ├── Get_control_text.html │ │ ├── Get_file_attributes.html │ │ ├── Get_file_size.html │ │ ├── Get_file_time.html │ │ ├── Get_from_list.html │ │ ├── Get_index_of_element_in_list.html │ │ ├── Get_list_info.html │ │ ├── Get_mouse_position.html │ │ ├── Get_pixel_color.html │ │ ├── Get_shortcut_information.html │ │ ├── Get_string_length.html │ │ ├── HTTP_Request.html │ │ ├── Hibernate_Computer.html │ │ ├── Hide_window.html │ │ ├── Input_box.html │ │ ├── Kill_Process.html │ │ ├── List_Drives.html │ │ ├── Lock_Computer.html │ │ ├── Log_off.html │ │ ├── Message_Box.html │ │ ├── Minimize_all_windows.html │ │ ├── Move_file.html │ │ ├── Move_folder.html │ │ ├── Move_mouse.html │ │ ├── Move_window.html │ │ ├── New_List.html │ │ ├── New_Time.html │ │ ├── New_Variable.html │ │ ├── Play_Sound.html │ │ ├── Random_number.html │ │ ├── Read_from_file.html │ │ ├── Read_from_ini.html │ │ ├── Rename_file.html │ │ ├── Rename_folder.html │ │ ├── Replace_in_a_string.html │ │ ├── Rounding_a_number.html │ │ ├── Run.html │ │ ├── Screenshot.html │ │ ├── Script.html │ │ ├── Search_image.html │ │ ├── Search_in_a_string.html │ │ ├── Search_pixel.html │ │ ├── Select_file.html │ │ ├── Select_folder.html │ │ ├── Send_keystrokes.html │ │ ├── Send_keystrokes_To_Control.html │ │ ├── Set_Clipboard.html │ │ ├── Set_Flow_Status.html │ │ ├── Set_Process_Priority.html │ │ ├── Set_Screen_Settings.html │ │ ├── Set_Volume.html │ │ ├── Set_control_text.html │ │ ├── Set_element_parameter.html │ │ ├── Set_file_attributes.html │ │ ├── Set_file_time.html │ │ ├── Set_lock_key.html │ │ ├── Show_window.html │ │ ├── Shuffle_list.html │ │ ├── Speech_output.html │ │ ├── Split_a_string.html │ │ ├── Split_path.html │ │ ├── Square_root.html │ │ ├── Stop_Flow.html │ │ ├── Stop_Sound.html │ │ ├── Substring.html │ │ ├── Substring2.html │ │ ├── Suspend_Computer.html │ │ ├── Time_calculation.html │ │ ├── Time_difference.html │ │ ├── Trace_Point.html │ │ ├── Trace_Point_Check.html │ │ ├── Trigonometry.html │ │ ├── Trim_a_string.html │ │ ├── Write_to_file.html │ │ ├── Write_to_ini.html │ │ ├── activate_Window.html │ │ ├── close_Window.html │ │ ├── reboot_Computer.html │ │ ├── shutdown.html │ │ ├── sleep.html │ │ └── tooltip.html │ │ ├── Conditions │ │ ├── Debug_dialog.html │ │ ├── Do_nothing.html │ │ ├── Expression.html │ │ ├── File_exists.html │ │ ├── File_has_attribute.html │ │ ├── Flow_Enabled.html │ │ ├── Flow_Running.html │ │ ├── List_contains_element.html │ │ ├── Number is.html │ │ ├── Process_is_running.html │ │ ├── String_contains_text.html │ │ ├── Variable_content_is.html │ │ ├── Variable_is_empty.html │ │ ├── Window_active.html │ │ ├── Window_exists.html │ │ ├── confirmation_dialog.html │ │ └── key_is_down.html │ │ ├── Loops │ │ ├── Loop_through_files.html │ │ ├── Parse_a_string.html │ │ ├── Work_through_a_list.html │ │ ├── condition.html │ │ └── simpleloop.html │ │ └── Triggers │ │ ├── AutoHotkey_Script.html │ │ ├── Clipboard_Changes.html │ │ ├── Hotkey.html │ │ ├── Hotstring.html │ │ ├── Manual.html │ │ ├── Periodic_Timer.html │ │ ├── Process_closes.html │ │ ├── Process_starts.html │ │ ├── Shortcut.html │ │ ├── Start_up.html │ │ ├── Time_of_Day.html │ │ ├── User_Idle_Time.html │ │ ├── window_closes.html │ │ ├── window_gets_active.html │ │ ├── window_gets_inactive.html │ │ └── window_opens.html │ ├── language │ ├── .gitignore │ ├── de.ini │ ├── en.ini │ ├── ko.ini │ └── ru.ini │ ├── lib │ ├── Class_Monitor │ │ └── Class_Monitor.ahk │ ├── Eject │ │ └── Eject.ahk │ ├── HTTP Request │ │ ├── HTTPRequest.ahk │ │ └── Uriencode.ahk │ ├── Json │ │ └── Jxon.ahk │ ├── Process list │ │ └── getProcessList.ahk │ ├── TTS │ │ └── TTS by Learning One.ahk │ └── Yaml │ │ └── Yaml.ahk │ └── manifest.json ├── Source_Execution ├── API │ └── API for Elements.ahk ├── Execution Task │ ├── Execution Task.ahk │ └── Instances and Threads.ahk ├── Execution.ahk ├── Trigger │ └── Trigger.ahk └── Variables │ └── Variables.ahk ├── Source_Main ├── API │ ├── API for Elements.ahk │ └── Shared Variables.ahk ├── Elements │ └── Elements.ahk ├── Hidden window │ └── Hidden window.ahk ├── Threads │ └── Threads.ahk ├── Tray │ └── Tray.ahk └── main.ahk ├── Source_Manager ├── API │ └── API for Elements.ahk ├── Manager.ahk └── User Interface │ ├── About.ahk │ ├── Change Category GUI.ahk │ ├── Global_Settings.ahk │ ├── Help.ahk │ ├── Import and export.ahk │ └── Manager GUI.ahk ├── Source_Test ├── Unit_Tests.ahk └── main │ └── Globals │ └── Test globals.ahk ├── Tools for contributors ├── AHF development │ ├── addDebugMessages.ahk │ └── checkCriticalSection.ahk ├── Element creation │ ├── Create new package.ahk │ ├── Element template creator.ahk │ ├── help │ │ ├── Element API.html │ │ ├── Element functions.html │ │ ├── How to start.html │ │ ├── Index.html │ │ ├── Menu.html │ │ ├── Parametrization details.html │ │ └── stylesheet.css │ ├── raw templates │ │ ├── template - action.ahk │ │ ├── template - compatibility.ahk │ │ ├── template - condition.ahk │ │ ├── template - loop.ahk │ │ └── template - trigger.ahk │ └── readme.txt └── Translation │ ├── How to translate.html │ ├── Translation Tool.ahk │ ├── lang crawler.ahk │ ├── start translation tool.bat │ └── stylesheet.css ├── bin ├── 7-zip.chm ├── 7za.exe ├── license.txt └── readme.txt ├── find modules - only default package.ahk ├── find modules.ahk ├── innoSetupPrebuildSteps - extension package.ahk ├── innoSetupPrebuildSteps.ahk ├── innoSetupScript - Extension Package template.iss ├── innoSetupScript.iss ├── language ├── .gitignore ├── basic │ ├── .gitignore │ ├── de.ini │ ├── en.ini │ ├── ko.ini │ └── ru.ini └── language.ahk └── settings.json /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # AutoHotKey 2 | *.bak 3 | 4 | # compiled files 5 | /*.exe 6 | 7 | # exclude flows except of demonstration flows 8 | Saved Flows/backup 9 | Saved Flows/demo flows/backup 10 | 11 | # Windows image file caches 12 | Thumbs.db 13 | ehthumbs.db 14 | 15 | # Folder config file 16 | Desktop.ini 17 | 18 | #other 19 | /innoSetupScript - Extension Package.iss 20 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "ahk", 9 | "request": "launch", 10 | "name": "Autohotkey", 11 | "program": "${workspaceFolder}/AutoHotflow.ahk", 12 | "stopOnEntry": true 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /AppData/.gitignore: -------------------------------------------------------------------------------- 1 | /Log/ 2 | /Variables/ 3 | /Saved Flows/backup -------------------------------------------------------------------------------- /AppData/Saved Flows/.gitignore: -------------------------------------------------------------------------------- 1 | /*.json 2 | !/Flow 100439537.json 3 | !/Flow 1010290492.json 4 | !/Flow 1087828277.json 5 | !/Flow 1175892536.json 6 | !/Flow 1210127300.json 7 | !/Flow 1271479101.json 8 | !/Flow 130786371.json 9 | !/Flow 1333431302.json 10 | !/Flow 1384439262.json 11 | !/Flow 1587447767.json 12 | !/Flow 1666346379.json 13 | !/Flow 1849072261.json 14 | !/Flow 1990010495.json 15 | !/Flow 2052424815.json 16 | !/Flow 2133155705.json 17 | !/Flow 369404488.json 18 | !/Flow 381419056.json 19 | !/Flow 561135904.json 20 | !/Flow 634320780.json 21 | !/Flow 65341778.json 22 | !/Flow 74366368.json 23 | !/Flow 884290977.json 24 | -------------------------------------------------------------------------------- /AppData/Saved Flows/ignore-not-test-flows.ahk: -------------------------------------------------------------------------------- 1 | #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 2 | ; #Warn ; Enable warnings to assist with detecting common errors. 3 | SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 4 | SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 5 | SetBatchLines -1 6 | 7 | ; this script renames test flows and adds the prefix "Test " 8 | ; this way we can set a .gitignore filter to ignore all flows but test flows 9 | ; if you add a new test flow, call the function to rename it 10 | ; it detects whether it is a test flow by its category. 11 | 12 | testCategories := [] 13 | testCategories.push("Automatic tests") 14 | testCategories.push("Manual tests") 15 | 16 | filedelete, .gitignore 17 | fileappend, % "/*.json`n", .gitignore 18 | 19 | loop, files, *.json 20 | { 21 | FileRead, fileContent, % a_loopfilepath 22 | isTestFlow := false 23 | 24 | for oneCategoryIndex, oneCategory in testCategories 25 | { 26 | if instr(fileContent, """category"": """ oneCategory """,") 27 | isTestFlow := true 28 | } 29 | 30 | if (isTestFlow) 31 | { 32 | fileappend, % "!/" a_loopfilename "`n", .gitignore 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /AppData/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "developing": 1, 3 | "FlowExecutionPolicy": "parallel", 4 | "FlowWorkingDir": "C:\\Users\\bichl\\Documents\\AutoHotFlow", 5 | "HideDemoFlows": 0, 6 | "LogLevelApp": "0", 7 | "LogLevelFlow": "0", 8 | "LogLevelThread": "0", 9 | "LogToFile": "0", 10 | "runAsAdmin": "0", 11 | "ShowElementsLevel": "Programmer", 12 | "UILanguage": "en" 13 | } -------------------------------------------------------------------------------- /AutoHotFlow.ahk: -------------------------------------------------------------------------------- 1 | #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 2 | ;#Warn ; Recommended for catching common errors. 3 | SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 4 | SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 5 | ;~ MsgBox '%1%' - %2% - %3% - %4% - %5% 6 | 7 | if not fileexist("language\en.ini") 8 | { 9 | runwait, "find modules.ahk" 10 | } 11 | 12 | 13 | FileEncoding utf-8 14 | 15 | ;Handle a command line parameter if any 16 | command = %1% 17 | commandMessage = %2% 18 | if (command = "AHFCommand") 19 | { 20 | DetectHiddenWindows,on 21 | 22 | ;If an instance of AutoHotFlow already exists, pass the command to the hidden window of AutoHotFlow 23 | IfWinExist,%A_ScriptDir% AHF_HIDDEN_COMMAND_WINDOW 24 | { 25 | ControlSetText,Edit1,%commandMessage%,%A_ScriptDir% AHF_HIDDEN_COMMAND_WINDOW 26 | ExitApp 27 | } 28 | } 29 | 30 | 31 | ;At last run main.ahk passing all command line parameters which were passed to this script 32 | run,autohotkey\AutoHotFlow.exe "%A_ScriptDir%\source_main\main.ahk" "%1%" "%2%" "%3%" "%4%" "%5%" "%6%" "%7%" "%8%" "%9%" "%10%" 33 | -------------------------------------------------------------------------------- /AutoHotKey/AutoHotFlow.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/AutoHotKey/AutoHotFlow.exe -------------------------------------------------------------------------------- /Checklist before publishing.txt: -------------------------------------------------------------------------------- 1 | - run "innoSetupPrebuildSteps.ahk" 2 | - run all test flows 3 | - run "lang crawler" and use "Translation tool" to add German translation 4 | - make installer via innoSetupScript.iss 5 | - test the installer 6 | - open installed AHF 7 | -------------------------------------------------------------------------------- /Documentation/screenshots/Element Tooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Documentation/screenshots/Element Tooltip.png -------------------------------------------------------------------------------- /Documentation/screenshots/Element settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Documentation/screenshots/Element settings.png -------------------------------------------------------------------------------- /Documentation/screenshots/Flow Editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Documentation/screenshots/Flow Editor.png -------------------------------------------------------------------------------- /Documentation/screenshots/Manager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Documentation/screenshots/Manager.png -------------------------------------------------------------------------------- /Help/en/.gitignore: -------------------------------------------------------------------------------- 1 | /actions/ 2 | /conditions/ 3 | /loops/ 4 | /triggers/ 5 | *.html 6 | -------------------------------------------------------------------------------- /Help/en/Index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hilfe 5 | -------------------------------------------------------------------------------- /Help/en/Menu - template of one entry.html: -------------------------------------------------------------------------------- 1 |
  • 2 |

    %name%

    -------------------------------------------------------------------------------- /Help/en/Menu - template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Help 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 28 | 29 | 30 |

    Help 31 |

    32 |


    33 |
    34 | 35 |

    36 |

    Contents

    37 |


    38 |
    39 | 40 |

    41 | 77 | 78 | -------------------------------------------------------------------------------- /Help/stylesheet.css: -------------------------------------------------------------------------------- 1 | html, table{ 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | h1 { 6 | color: black; 7 | margin-top: 0.3cm; 8 | margin-bottom: 0.4cm; 9 | page-break-before: "always"; 10 | } 11 | h2 { 12 | color: black; 13 | margin-top: 0.3cm; 14 | margin-bottom: 0.4cm; 15 | page-break-before: "always"; 16 | } 17 | p.warning { 18 | border-left: 6px solid #ccc!important; 19 | border-color: rgb(255, 0, 0)!important; 20 | background-color: rgb(255, 196, 196); 21 | padding: 0.1em 16px; 22 | } 23 | p.info { 24 | border-left: 6px solid #ccc!important; 25 | border-color: rgb(206, 203, 0)!important; 26 | background-color: rgb(255, 254, 185); 27 | padding: 0.1em 16px; 28 | } 29 | table { 30 | border-color: #000000; 31 | border-width: 2px; 32 | border-style: solid; 33 | border-collapse: collapse; 34 | } 35 | 36 | td { 37 | border-color: #000000; 38 | border-width: 2px; 39 | border-style: solid; 40 | padding: 5px; 41 | } 42 | td.example-parameter { 43 | width: 30%; 44 | padding-right: 10px; 45 | border-width: 1px; 46 | } 47 | td.example-value { 48 | font-family: monospace; 49 | width: 100%; 50 | border-width: 1px; 51 | } 52 | table.settings { 53 | width: 100%; 54 | background-color: #ccffff; 55 | } 56 | table.examples { 57 | width: 100%; 58 | background-color: #ccffcc; 59 | } 60 | table.example { 61 | width: 100%; 62 | background-color: #ccffcc; 63 | border-width: 1px; 64 | } 65 | table.variables { 66 | width: 100%; 67 | background-color: #feffcc; 68 | } 69 | 70 | table.codeblock { 71 | width: 100%; 72 | background-color: #d3d3d3; 73 | font-family: monospace; 74 | } 75 | ul.examples { 76 | background-color: #ccffcc; 77 | border-color: #000000; 78 | border-width: 1px; 79 | border-style: solid; 80 | line-height: 100%; 81 | font-family: monospace; 82 | } 83 | 84 | i { 85 | font-family: sans-serif; 86 | font-weight: normal; 87 | color:rgb(59, 59, 59); 88 | } 89 | 90 | h4 { 91 | font-size: 16px; 92 | } 93 | h4.VariableName { 94 | font-family: monospace; 95 | } 96 | code { 97 | background-color: rgb(228, 228, 228); 98 | } 99 | 100 | iframe { 101 | width: 100%; 102 | height: 80%; 103 | } 104 | 105 | -------------------------------------------------------------------------------- /Icons/Disabled small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Disabled small.ico -------------------------------------------------------------------------------- /Icons/Edit.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Edit.ico -------------------------------------------------------------------------------- /Icons/Enabled small.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Enabled small.ico -------------------------------------------------------------------------------- /Icons/Exclamation mark.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Exclamation mark.ico -------------------------------------------------------------------------------- /Icons/MainIcon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/MainIcon.ico -------------------------------------------------------------------------------- /Icons/Move.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Move.ico -------------------------------------------------------------------------------- /Icons/Plus.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Plus.ico -------------------------------------------------------------------------------- /Icons/Question mark.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Question mark.ico -------------------------------------------------------------------------------- /Icons/Small Icons template.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Small Icons template.xcf -------------------------------------------------------------------------------- /Icons/Translator.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Translator.ico -------------------------------------------------------------------------------- /Icons/Trash.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Trash.ico -------------------------------------------------------------------------------- /Icons/Update Checker.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/Update Checker.ico -------------------------------------------------------------------------------- /Icons/VariableName.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/VariableName.ico -------------------------------------------------------------------------------- /Icons/disabled.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/disabled.ico -------------------------------------------------------------------------------- /Icons/e_plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_plus.png -------------------------------------------------------------------------------- /Icons/e_star_empty.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_star_empty.ico -------------------------------------------------------------------------------- /Icons/e_star_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_star_empty.png -------------------------------------------------------------------------------- /Icons/e_star_empty.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_star_empty.xcf -------------------------------------------------------------------------------- /Icons/e_star_filled.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_star_filled.ico -------------------------------------------------------------------------------- /Icons/e_star_filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_star_filled.png -------------------------------------------------------------------------------- /Icons/e_star_filled.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_star_filled.xcf -------------------------------------------------------------------------------- /Icons/e_switch.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_switch.xcf -------------------------------------------------------------------------------- /Icons/e_switch_off.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_switch_off.ico -------------------------------------------------------------------------------- /Icons/e_switch_on.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/e_switch_on.ico -------------------------------------------------------------------------------- /Icons/enabled.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/enabled.ico -------------------------------------------------------------------------------- /Icons/expression.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/expression.ico -------------------------------------------------------------------------------- /Icons/folder.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/folder.ico -------------------------------------------------------------------------------- /Icons/running.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/running.ico -------------------------------------------------------------------------------- /Icons/string.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Icons/string.ico -------------------------------------------------------------------------------- /Lib/7z wrapper/7z wrapper.ahk: -------------------------------------------------------------------------------- 1 | ;written by bichlepa. License: WTFPL 2 | ;thanks to joedf for the 7z_compress() function (https://www.autohotkey.com/boards/viewtopic.php?f=5&t=26832) 3 | 4 | 7z_exe:=_ScriptDir "\bin\7za.exe" 5 | ;~ 7z_exe:="C:\Program Files\7-Zip\7z.exe" 6 | 7 | 7z_compress(dPack, opts, files*) { 8 | global 7z_exe 9 | flist:="" 10 | for each, file in files 11 | flist:= flist """" file """" " " 12 | 13 | RunWait, %7z_exe% a %opts% "%dPack%" %flist%,,Hide UseErrorLevel 14 | return 7z_error(ErrorLevel) 15 | } 16 | 17 | 7z_extract(dPack,opts="",dFolder="") { 18 | global 7z_exe 19 | if StrLen(dFolder) 20 | out:="-o" . """" . dFolder . """" 21 | RunWait, %7z_exe% x "%dPack%" %out% -y %opts%,,Hide UseErrorLevel 22 | return 7z_error(ErrorLevel) 23 | } 24 | 25 | 7z_list(dPack) { 26 | global 7z_exe 27 | tmp:=TempFile() 28 | RunWait,%comspec% /c %7z_exe% l "%dPack%" > "%tmp%",,Hide UseErrorLevel 29 | r:={} 30 | if (!(e:=7z_error(ErrorLevel))) { 31 | FileRead,o,%tmp% 32 | Loop, Parse, o, `n, `r 33 | { 34 | if (RegExMatch(A_LoopField,"(-+\s+){4}")) { 35 | if (!i) 36 | i:=A_Index 37 | else 38 | break 39 | } 40 | if (A_Index-i > 0) { 41 | p:=StrSplit(A_LoopField,A_Space) 42 | RegExMatch(SubStr(A_LoopField,StrLen(p.1 p.2 p.3)+3),"\d+",S) 43 | c:=InStr(A_LoopField,S)+StrLen(S) 44 | StringTrimLeft,n,A_LoopField,%c% 45 | 46 | k:={} 47 | k.Date := p.1 48 | k.Time := p.2 49 | k.Attr := p.3 50 | k.Size := S 51 | k.Name := RegExReplace(n,"\s+\d*\s+","","",1) 52 | 53 | r.Insert(k) 54 | } 55 | } 56 | } 57 | FileDelete,%tmp% 58 | return (e?0:r) 59 | } 60 | 61 | 7z_error(e) { 62 | if (e=0) 63 | return lang("Success") 64 | if (e=1) 65 | return lang("Warning. Probably one or more files were locked by some other application, so they were not compressed.") 66 | else if (e=2) 67 | return lang("Fatal error") 68 | else if (e=7) 69 | return lang("Command line error") 70 | else if (e=8) 71 | return lang("Not enough memory for operation") 72 | else if (e=255) 73 | return lang("User stopped the process") 74 | else if (e="ERROR") 75 | return lang("7zip not found") 76 | else 77 | return lang("unknown error") 78 | } 79 | 80 | TempFile() { 81 | Loop 82 | tempName := A_Temp "\~temp" A_TickCount ".tmp" 83 | until !FileExist(tempName) 84 | return tempName 85 | } -------------------------------------------------------------------------------- /Lib/Objects/Objects.ahk: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ;Thanks to fincs 5 | ObjFullyClone(obj, keysToSkip = "") 6 | { 7 | if IsObject(obj) 8 | { 9 | nobj := obj.Clone() 10 | for k,v in nobj 11 | { 12 | if (keysToSkip) 13 | { 14 | found := false 15 | for oneIndex, oneKey in keysToSkip 16 | { 17 | if (oneKey = k) 18 | found := true 19 | } 20 | if (found) 21 | { 22 | nobj.delete(k) 23 | Continue 24 | } 25 | } 26 | if IsObject(v) 27 | nobj[k] := A_ThisFunc.(v) 28 | } 29 | } 30 | else 31 | nobj := obj 32 | return nobj 33 | } 34 | 35 | ObjFullyCompare_oneDir(obj1, obj2) 36 | { 37 | for k,v in obj1 38 | { 39 | if IsObject(v) 40 | { 41 | if (A_ThisFunc.(v, obj2[k]) = false) 42 | return false 43 | } 44 | else 45 | { 46 | if (v != obj2[k]) 47 | return false 48 | } 49 | } 50 | return true 51 | } 52 | 53 | ; deeply merges content of obj2 in obj1 54 | ObjFullyMerge(obj1, obj2) 55 | { 56 | for k,v in obj2 57 | { 58 | if (isobject(v)) 59 | { 60 | if (isobject(obj1[k])) 61 | { 62 | ObjFullyMerge(obj1[k], v) 63 | } 64 | else 65 | { 66 | obj1[k] := ObjFullyClone(v) 67 | } 68 | } 69 | else 70 | { 71 | obj1[k] := v 72 | } 73 | } 74 | return obj1 75 | } 76 | 77 | ;Copied from https://autohotkey.com/board/topic/84006-ahk-l-containshasvalue-method/ 78 | ;thanks to trismarck 79 | ObjHasValue(aObj, aValue) { 80 | for key, val in aObj 81 | if(val = aValue) 82 | return, true, ErrorLevel := 0 83 | return, false, errorlevel := 1 84 | } 85 | 86 | 87 | ArrayToDelimitedString(obj, delimiter) 88 | { 89 | result := "" 90 | for oneKey, oneValue in obj 91 | { 92 | if a_index != 1 93 | result .= delimiter 94 | result .= oneValue 95 | } 96 | return result 97 | } -------------------------------------------------------------------------------- /Lib/Random Word List/Random Word List.ahk: -------------------------------------------------------------------------------- 1 | ; written by Paul Bichler 2 | ; license: WTFPL 3 | 4 | ;This script contains a wordlist. 5 | 6 | RandomWordList_Adjectives:=["big", "small", "tall", "large", "great", "little", "noisy", "silent", "tired", "happy", "sad", "boring", "stupid", "silly", "smart", "clever", "bright", "dark", "shiny", "liquid", "hard", "soft", "tough", "light", "lazy", "eager", "dilligent", "horrible", "beautiful", "closed", "open", "attractive", "anxious", "charming", "evil", "friendly","greedy", "serious", "fast", "slow", "curious", "weak", "strong", "strange", "odd", "funny", "surprised", "dirty", "clean", "black", "white", "yellow", "red", "green", "blue", "dangerous", "safe", "early", "late", "empty", "full", "flying", "standing", "floating", "sick", "left", "right"] 7 | RandomWordList_Nouns:=["house", "door", "window", "ladder", "stairs", "chair", "cupboard", "table", "wall", "car", "boat", "ship", "bus", "train", "bicycle", "plane", "soil", "apple", "banana", "bird", "ape", "cat", "dog", "fly", "horse", "bottle", "box", "tree", "bush", "grass", "branch", "potato", "breakfast", "lunch", "dinner", "morning", "evening", "night", "cake", "cheese", "salad", "sadnwich", "chocolate", "coffee", "ice", "milk", "city", "clock", "eye", "hand", "head", "leg", "nose", "ear", "mouth", "finger", "joke", "message", "paper", "pencil", "picture", "rain", "snow", "water", "rock", "air"] 8 | 9 | randomAdjective() 10 | { 11 | global RandomWordList_Adjectives, RandomWordList_Nouns 12 | random, randomvalue, 1, % RandomWordList_Adjectives.maxindex() 13 | return % RandomWordList_Adjectives[randomvalue] 14 | } 15 | randomNoun() 16 | { 17 | global RandomWordList_Adjectives, RandomWordList_Nouns 18 | random, randomvalue, 1, % RandomWordList_Nouns.maxindex() 19 | return % RandomWordList_Nouns[randomvalue] 20 | } 21 | randomPhrase() 22 | { 23 | return randomAdjective() " " randomNoun() 24 | } -------------------------------------------------------------------------------- /Lib/Yunit/README.md: -------------------------------------------------------------------------------- 1 | Yunit 2 | ===== 3 | Super simple unit testing framework for [AutoHotkey](http://www.autohotkey.com/). 4 | 5 | Usage 6 | ----- 7 | See [doc/Main.md](doc/Main.md) 8 | 9 | License 10 | ------- 11 | Copyright 2012 Anthony Zhang (Uberi) and Joe Taber (infogulch). 12 | 13 | This file is part of Yunit. Source code is available at . 14 | 15 | Yunit is free software: you can redistribute it and/or modify 16 | it under the terms of the GNU Affero General Public License as published by 17 | the Free Software Foundation, either version 3 of the License, or 18 | (at your option) any later version. 19 | 20 | This program is distributed in the hope that it will be useful, 21 | but WITHOUT ANY WARRANTY; without even the implied warranty of 22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 | GNU Affero General Public License for more details. 24 | 25 | You should have received a copy of the GNU Affero General Public License 26 | along with this program. If not, see . 27 | -------------------------------------------------------------------------------- /Lib/Yunit/Stdout.ahk: -------------------------------------------------------------------------------- 1 | class YunitStdOut 2 | { 3 | Update(Category, Test, Result) ;wip: this only supports one level of nesting? 4 | { 5 | if IsObject(Result) 6 | { 7 | Details := " at line " Result.Line " " Result.Message 8 | Status := "FAIL" 9 | } 10 | else 11 | { 12 | Details := "" 13 | Status := "PASS" 14 | } 15 | FileAppend, %Status%: %Category%.%Test% %Details%`n, * 16 | } 17 | } -------------------------------------------------------------------------------- /Lib/ini/ini helper.ahk: -------------------------------------------------------------------------------- 1 | ; written by Paul Bichler 2 | ; license: WTFPL 3 | 4 | ; reads ini content from string 5 | ; returns a 2-dimensional array 6 | importIni(fileContent) 7 | { 8 | iniContent := [] 9 | 10 | StringReplace, fileContent, fileContent, `r, `n, all 11 | 12 | loop, parse, fileContent, `n, % a_space a_tab 13 | { 14 | oneLine := A_LoopField 15 | if not oneLine 16 | continue 17 | 18 | if (substr(oneLine, 1, 1) = "[" and substr(oneLine, 0, 1) = "]") 19 | { 20 | currentSection := substr(oneLine, 2, -1) 21 | iniContent[currentSection] := [] 22 | continue 23 | } 24 | 25 | onePos := instr(oneLine, "=") 26 | if (not onePos) 27 | { 28 | return "Line " a_index " has no euqal sign: " oneLine 29 | } 30 | oneKey := trim(substr(oneLine, 1, onePos - 1)) 31 | oneValue := trim(substr(oneLine, onePos + 1)) 32 | 33 | if (currentSection = "" and not iniContent[currentSection]) 34 | iniContent[currentSection] := [] 35 | 36 | iniContent[currentSection][oneKey] := oneValue 37 | } 38 | return iniContent 39 | } 40 | 41 | ; writes ini content to string 42 | exportIni(iniContent) 43 | { 44 | fileContent := [] 45 | 46 | for oneSection, oneSectionContent in iniContent 47 | { 48 | fileContent .= "[" oneSection "]`n" 49 | for oneKey, oneValue in oneSectionContent 50 | { 51 | fileContent .= oneKey "=" oneValue "`n" 52 | } 53 | } 54 | 55 | return fileContent 56 | } -------------------------------------------------------------------------------- /Package uninstaller.ahk: -------------------------------------------------------------------------------- 1 | #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 2 | ; #Warn ; Enable warnings to assist with detecting common errors. 3 | SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 4 | SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 5 | SetBatchLines -1 6 | 7 | if not instr(fileexist("Source_elements"), "D") 8 | { 9 | MsgBox, Error! directory "Source_elements" does not exist. 10 | ExitApp 11 | } 12 | 13 | ; test wheter rights are sufficient 14 | FileAppend, test, Source_elements\WriteTest.txt 15 | if errorlevel 16 | { 17 | ; rights are not sufficient, run as admin 18 | if a_iscompiled 19 | { 20 | try Run *RunAs "%A_ScriptFullPath%" ;Run as admin. See https://autohotkey.com/docs/commands/Run.htm#RunAs 21 | } 22 | Else 23 | { 24 | try Run *RunAs "%a_ahkPath%" "%A_ScriptFullPath%" ;Run as admin. See https://autohotkey.com/docs/commands/Run.htm#RunAs 25 | } 26 | exitapp 27 | } 28 | FileDelete, Source_elements\WriteTest.txt 29 | 30 | 31 | ; find all packages 32 | allPackages := "" 33 | loop, files, Source_elements\*, D 34 | { 35 | if (A_LoopFileName = "Default") 36 | continue 37 | if (allPackages != "") 38 | allPackages .= "|" 39 | allPackages .= A_LoopFileName 40 | } 41 | 42 | if not allPackages 43 | { 44 | MsgBox, No packages found! 45 | ExitApp 46 | } 47 | 48 | gui, add, text,,Which package do you want to uninstall? 49 | gui, add, DropDownList, w200 vpackageName choose1, % allPackages 50 | gui, add, button, w200 gpackageSelected default, OK 51 | gui,show 52 | return 53 | 54 | packageSelected: 55 | gui, submit 56 | 57 | if not packageName 58 | { 59 | MsgBox, Unknown error! 60 | ExitApp 61 | } 62 | FileRemoveDir, Source_elements\%packageName%, 1 63 | if errorlevel 64 | { 65 | MsgBox, Error! Package %packageName% could net be deleted. 66 | } 67 | Else 68 | { 69 | run, "find modules.exe" 70 | MsgBox, Package %packageName% was successfully deleted. 71 | run, "autoHotFlow.exe" 72 | } 73 | ExitApp -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AutoHotFlow [[Download here]](https://github.com/bichlepa/AutoHotFlow/releases) 2 | This script is designed to make programming and automation easy as never before! Just pull in some elements in the graphical interface and set up some triggers. Ready! :smile: 3 | This project ist made for people who never have programmed before and for those who want to make some automation, etc. without writing long codes. 4 | It's very easy to use. You need to pull an action or a condition, configurate them and connect them. 5 | You can optionally add some triggers, that will trigger the flow in certain cases. 6 | 7 | When the flow executes the currently running elements are highlighted red. 8 | 9 | ![Element Tooltip](/Documentation/screenshots/Flow%20Editor.png) 10 | 11 | Every element has settings 12 | 13 | ![Element Tooltip](/Documentation/screenshots/Element%20Tooltip.png) 14 | 15 | There is also flow manager 16 | 17 | ![Element Tooltip](/Documentation/screenshots/Manager.png?dl=1) 18 | 19 | It has all basic functions. I'm working on it and its abilities are raising. 20 | 21 | My aim is to include many elements that would need many lines of ahk-code and thus to allow programming some complex things easier. 22 | 23 | It could also demontrate the broad possibilities of AutoHotkey. 24 | You can track the progress on [trello](https://trello.com/b/Ca91IaeG/autohotflow). 25 | 26 | # How to install and use 27 | Go the the [Releases section](https://github.com/bichlepa/AutoHotFlow/releases) and download the installer of the current version. 28 | # How to develop 29 | Here you'll find instructions for those who want to work on AHF. 30 | After first checkout, `find modules.ahk` will be automatically started by AHF. Please run `find modules.ahk` every time after you pulled some changes. Otherwise errors may sometimes occur. 31 | ## Add new elements 32 | If you want to add some new elements, you'll find everything you need in the folder `Tools for contributors\Element creation`. 33 | ## Improve AHF and create an installer 34 | To create an installer, you have to run the script `innoSetupPrebuildSteps.ahk`. This will update the content of some files. 35 | Then you can open the InnoSetup file `innoSetupScript.iss`. To do that you have to install InnoSetup on your PC. 36 | -------------------------------------------------------------------------------- /Source_Common/Flows/Compatibility.ahk: -------------------------------------------------------------------------------- 1 | global FlowCompabilityVersionOfApp := 1 ;This variable contains a number which will be incremented as soon an incompability appears. This will make it possible to identify old scripts and convert them. This value will be written in any saved flows. 2 | 3 | ;Check an element after it was loaded 4 | LoadFlowCheckCompabilityElement(p_FlowID, p_ElementID, p_AHFVersion) 5 | { 6 | ; example: 7 | ; elementClass := x_getElementClass(p_FlowID, p_ElementID) 8 | ; if (elementClass = "Loop_Work_through_a_list") 9 | ; { 10 | ; value := _getElementProperty(p_FlowID, p_ElementID, "pars.VarName") 11 | ; _setElementProperty(p_FlowID, p_ElementID, "pars.VarValue", value) 12 | ; } 13 | 14 | oneElementPackage := _getElementProperty(p_FlowID, p_ElementID, "Package") 15 | oneElementPackageVersion := _getElementProperty(p_FlowID, p_ElementID, "PackageVersion") 16 | if (oneElementPackage and isFunc("LoadFlowCheckCompatibilityElement_Package_" oneElementPackage)) 17 | { 18 | LoadFlowCheckCompatibilityElement_Package_%oneElementPackage%(p_FlowID, p_ElementID, p_AHFVersion, oneElementPackageVersion) 19 | } 20 | } 21 | 22 | ;Check a connection after it was loaded 23 | LoadFlowCheckCompabilityConnection(p_FlowID, p_ConnectionID, p_AHFVersion) 24 | { 25 | 26 | } 27 | 28 | ;Check the flow after it was loaded 29 | LoadFlowCheckCompabilityFlow(p_FlowID, p_AHFVersion) 30 | { 31 | 32 | } -------------------------------------------------------------------------------- /Source_Common/Multithreading/API Caller to Draw.ahk: -------------------------------------------------------------------------------- 1 | ;This file is included by all threads which want to communicate to draw thread 2 | 3 | ; tells the draw thread that it needs to redraw the image in the editor for a flow 4 | API_Draw_Draw(p_FlowID) 5 | { 6 | logger("t3", A_ThisFunc " called from thread", _ahkThreadID) 7 | 8 | _setFlowProperty(p_FlowID, "draw.mustDraw", true) 9 | } 10 | -------------------------------------------------------------------------------- /Source_Common/Multithreading/API Caller to Editor.ahk: -------------------------------------------------------------------------------- 1 | ;This file is included by all threads which want to communicate to editor thread 2 | 3 | ; tells the editor thread that it should show the gui 4 | API_Editor_EditGUIshow(par_FlowID) 5 | { 6 | logger("t2", A_ThisFunc " called from thread", _ahkThreadID) 7 | 8 | _setTask("editor" par_FlowID, {name: "EditGUIshow"}) 9 | } 10 | 11 | ; tells the editor thread that it should exit 12 | API_Editor_Exit(par_flowID) 13 | { 14 | logger("t2", A_ThisFunc " called from thread", _ahkThreadID) 15 | 16 | _setTask("editor" par_FlowID, {name: "exit"}) 17 | } -------------------------------------------------------------------------------- /Source_Common/Multithreading/API Caller to Manager.ahk: -------------------------------------------------------------------------------- 1 | ;This file is included by all threads which want to communicate to manager thread 2 | 3 | ; tells the manager thread that it should refill the treeview 4 | API_manager_TreeView_Refill() 5 | { 6 | logger("t2", A_ThisFunc " called from thread", _ahkThreadID) 7 | 8 | _setTask("manager", {name: "TreeView_Refill"}) 9 | } 10 | 11 | ; tells the manager thread that it should show the window 12 | API_Manager_ShowWindow() 13 | { 14 | logger("t2", A_ThisFunc " called from thread", _ahkThreadID) 15 | 16 | _setTask("manager", {name: "ShowWindow"}) 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Source_Common/Other/Design.ahk: -------------------------------------------------------------------------------- 1 | ; super-global variables defining the design of the flows in flow editor 2 | ; some of them may become configurable in future 3 | global default_ZoomFactor = 0.7 4 | global default_OffsetX = -200 5 | global default_OffsetY = -200 6 | 7 | global default_zoomFactorMin = 0.1 8 | global default_zoomFactorMax = 3 9 | global default_textSize = 15 10 | global default_SizeOfButtons = 35 11 | global default_MinimumHeightOfConnection = 15 12 | global default_NewElementIconHeight = 75 13 | global default_NewElementIconWidth = 100 14 | global default_ElementHeight = 105 15 | global default_ElementWidth = 140 16 | global default_Gridy = 35 17 | global default_Gridx = 35 -------------------------------------------------------------------------------- /Source_Common/Other/Other.ahk: -------------------------------------------------------------------------------- 1 | ; Returns the path of AHF 2 | GetAhfPath() 3 | { 4 | if fileexist(_ScriptDir "\AutoHotFlow.exe") 5 | { 6 | return _ScriptDir "\AutoHotFlow.exe" 7 | } 8 | else if fileexist(_ScriptDir "\AutoHotFlow.ahk") 9 | { 10 | return _ScriptDir "\AutoHotFlow.ahk" 11 | } 12 | else 13 | { 14 | logger("a0", "Can't find AutoHotflow.exe") 15 | return 16 | } 17 | } 18 | 19 | ; sets the icon of a GUI. 20 | ; before call of this function, the command has to be called: gui, +LastFound 21 | setGuiIcon(iconPath) 22 | { 23 | global 24 | 25 | local hIcon := DllCall("LoadImage", uint, 0, str, iconPath, uint, 1, int, 0, int, 0, uint, 0x10) 26 | 27 | SendMessage 0x80, 0, hIcon ; 0x80 is WM_SETICON; and 1 means ICON_BIG (vs. 0 for ICON_SMALL). 28 | SendMessage 0x80, 1, hIcon ; 0x80 is WM_SETICON; and 1 means ICON_BIG (vs. 0 for ICON_SMALL). 29 | } -------------------------------------------------------------------------------- /Source_Common/Variables/Expression evaluator.ahk: -------------------------------------------------------------------------------- 1 |  2 | ; evaluate an expression 3 | ; useCommonFunctions: if false we will use functions "var_get" and "var_set", if true, we will use "var_get_common" and "var_set_common" 4 | Var_EvaluateExpression(environment, ExpressionString, useCommonFunctions) 5 | { 6 | ; step 1: tokenize the code 7 | tokens := tokenizer(ExpressionString) 8 | 9 | ; step 2: parse the tokenized code 10 | parsedCode := class_parser.parse(tokens, "expression") 11 | 12 | ; check for returned error 13 | if (parsedCode.errors.MaxIndex()) 14 | { 15 | ; there were errors. return a readable string 16 | ;generate readable string 17 | string := "" 18 | for oneindex, oneerror in parsedCode.errors 19 | { 20 | if (a_index != 1) 21 | string .= "`n`n" 22 | string .= lang("line %1%, col %2%", oneerror.line, oneerror.col) "`n" 23 | string .= oneerror.wholeline "`n" 24 | string .= oneerror.description 25 | } 26 | 27 | return {error: string} 28 | } 29 | ; there was no error 30 | ; step 3: evaluate the tokenized code 31 | evaluatedCode := class_evaluator.evaluate(parsedCode, environment, useCommonFunctions) 32 | if (evaluatedCode.errors.MaxIndex()) 33 | { 34 | ; there were errors. return a readable string 35 | ;generate readable string 36 | string := "" 37 | for oneindex, oneerror in evaluatedCode.errors 38 | { 39 | if (a_index != 1) 40 | string .= "`n`n" 41 | string .= lang("line %1%, col %2%", oneerror.line, oneerror.col) "`n" 42 | string .= oneerror.wholeline "`n" 43 | string .= oneerror.description 44 | } 45 | 46 | return {error: string} 47 | } 48 | ; return the evaluated expression 49 | return {result: evaluatedCode.res} 50 | } -------------------------------------------------------------------------------- /Source_Editor/User Interface/Tooltip.ahk: -------------------------------------------------------------------------------- 1 |  2 | ; show a tooltip which follows the mouse 3 | ToolTip(text = "", duration = 1000) 4 | { 5 | global 6 | 7 | ; save tooltip and duration parameters to global variables 8 | ToolTip_text := text 9 | ToolTip_duration := duration 10 | Tooltip_Oldx := "" 11 | Tooltip_Oldy := "" 12 | 13 | ; show tooltip 14 | gosub, Tooltip_follow_mouse 15 | 16 | ; set up timer which will move the tooltip with mouse 17 | SetTimer, Tooltip_follow_mouse, 10 18 | 19 | ; set up timer which will disable the tooltip 20 | SetTimer, Tooltip_RemoveTooltip, -%ToolTip_duration% 21 | 22 | return 23 | 24 | ; timer label which will move the tooltip with mouse 25 | Tooltip_follow_mouse: 26 | ; get mouse position 27 | MouseGetPos, tempTooltipx, tempTooltipy 28 | 29 | ; check whether the mouse has moved 30 | if (Tooltip_Oldx != tempTooltipx or Tooltip_Oldy != tempTooltipy) 31 | { 32 | ; mouse has moved. Recreate the tooltip. 33 | ToolTip, %ToolTip_text% 34 | Tooltip_Oldx := tempTooltipx 35 | Tooltip_Oldy := tempTooltipy 36 | } 37 | return 38 | 39 | ; timer label which will remove the tooltip 40 | Tooltip_RemoveTooltip: 41 | ; disable timer 42 | SetTimer, Tooltip_follow_mouse, off 43 | ; hide tooltip 44 | ToolTip 45 | return 46 | } 47 | 48 | -------------------------------------------------------------------------------- /Source_Editor/User Interface/Tray.ahk: -------------------------------------------------------------------------------- 1 |  2 | ; disable default tooltip controls if AHF is compiled 3 | if (not _getSettings("developing")) 4 | { 5 | menu, tray, NoStandard 6 | } 7 | 8 | ; initialize tray menu 9 | ;TODO I want that the menu will be renamed when the language changes. 10 | initializeTrayBar() 11 | { 12 | global 13 | try menu, tray, deleteall 14 | 15 | menu, tray, add, tray_show 16 | Menu, tray, default, tray_show 17 | menu, tray, rename, tray_show, % lang("Show #verb") 18 | 19 | menu, tray, add, tray_start 20 | menu, tray, rename, tray_start, % lang("Run #verb") 21 | 22 | menu, tray, add, tray_enable 23 | menu, tray, rename, tray_enable, % lang("Enable or disable") 24 | 25 | menu, tray, add, Exit 26 | menu, tray, rename, Exit, % lang("Exit #verb") 27 | 28 | menu, tray, tip, % lang("Flow") ": " _getFlowProperty(_FlowID, "name") 29 | } 30 | 31 | ; react if user clicks on "show" entry 32 | tray_show() 33 | { 34 | EditGUIshow() 35 | } 36 | 37 | ; react if user clicks on "start" entry 38 | tray_start() 39 | { 40 | executeFlow(_FlowID) 41 | } 42 | 43 | ; react if user clicks on "enable" entry 44 | tray_enable() 45 | { 46 | enableToggleFlow(_FlowID) 47 | } 48 | 49 | tray_setIcon(flowState) 50 | { 51 | ; check whether icon has to be changed 52 | static oldFlowState 53 | if (oldFlowState != flowState) 54 | { 55 | oldFlowState := flowState 56 | 57 | menu, tray, icon, %_ScriptDir%\Icons\%flowState%.ico 58 | } 59 | 60 | } -------------------------------------------------------------------------------- /Source_Elements/.gitignore: -------------------------------------------------------------------------------- 1 | # ignore all custom packages 2 | /* 3 | !/Default 4 | -------------------------------------------------------------------------------- /Source_Elements/Default/Actions/Log_Off.ahk: -------------------------------------------------------------------------------- 1 |  2 | ;Name of the element 3 | Element_getName_Action_Log_Off() 4 | { 5 | return x_lang("Log_Off") 6 | } 7 | 8 | ;Category of the element 9 | Element_getCategory_Action_Log_Off() 10 | { 11 | return x_lang("Power") 12 | } 13 | 14 | ;Minimum user experience to use this element. 15 | ;Elements which are complicated or rarely used by beginners should not be visible to them. 16 | ;This will help them to get started with AHF 17 | Element_getElementLevel_Action_Log_Off() 18 | { 19 | ;"Beginner" or "Advanced" or "Programmer" 20 | return "Beginner" 21 | } 22 | 23 | ;Icon file name which will be shown in the background of the element 24 | Element_getIconPath_Action_Log_Off() 25 | { 26 | } 27 | 28 | ;How stable is this element? Experimental elements will be marked and can be hidden by user. 29 | Element_getStabilityLevel_Action_Log_Off() 30 | { 31 | ;"Stable" or "Experimental" 32 | return "Stable" 33 | } 34 | 35 | ;Returns an array of objects which describe all controls which will be shown in the element settings GUI 36 | Element_getParametrizationDetails_Action_Log_Off(Environment) 37 | { 38 | parametersToEdit:=Object() 39 | 40 | return parametersToEdit 41 | } 42 | 43 | ;Returns the detailed name of the element. The name can vary depending on the parameters. 44 | Element_GenerateName_Action_Log_Off(Environment, ElementParameters) 45 | { 46 | return x_lang("Log_Off") 47 | } 48 | 49 | ;Called every time the user changes any parameter. 50 | ;This function allows to check the integrity of the parameters. For example you can: 51 | ;- Disable options which are not available because of other options 52 | ;- Correct misconfiguration 53 | Element_CheckSettings_Action_Log_Off(Environment, ElementParameters, staticValues) 54 | { 55 | 56 | } 57 | 58 | 59 | ;Called when the element should execute. 60 | ;This is the most important function where you can code what the element acutally should do. 61 | Element_run_Action_Log_Off(Environment, ElementParameters) 62 | { 63 | ; log off 64 | shutdown, 0 65 | 66 | ; finish 67 | x_finish(Environment,"normal") 68 | return 69 | } 70 | 71 | 72 | ;Called when the execution of the element should be stopped. 73 | ;If the task in Element_run_...() takes more than several seconds, then it is up to you to make it stoppable. 74 | Element_stop_Action_Log_Off(Environment, ElementParameters) 75 | { 76 | } 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /Source_Elements/Default/Actions/Stop_Sound.ahk: -------------------------------------------------------------------------------- 1 |  2 | ;Name of the element 3 | Element_getName_Action_Stop_Sound() 4 | { 5 | return x_lang("Stop_Sound") 6 | } 7 | 8 | ;Category of the element 9 | Element_getCategory_Action_Stop_Sound() 10 | { 11 | return x_lang("Sound") 12 | } 13 | 14 | ;Minimum user experience to use this element. 15 | ;Elements which are complicated or rarely used by beginners should not be visible to them. 16 | ;This will help them to get started with AHF 17 | Element_getElementLevel_Action_Stop_Sound() 18 | { 19 | ;"Beginner" or "Advanced" or "Programmer" 20 | return "Beginner" 21 | } 22 | 23 | ;Icon file name which will be shown in the background of the element 24 | Element_getIconPath_Action_Stop_Sound() 25 | { 26 | } 27 | 28 | ;How stable is this element? Experimental elements will be marked and can be hidden by user. 29 | Element_getStabilityLevel_Action_Stop_Sound() 30 | { 31 | ;"Stable" or "Experimental" 32 | return "Stable" 33 | } 34 | 35 | ;Returns an array of objects which describe all controls which will be shown in the element settings GUI 36 | Element_getParametrizationDetails_Action_Stop_Sound(Environment) 37 | { 38 | parametersToEdit:=Object() 39 | 40 | return parametersToEdit 41 | } 42 | 43 | ;Returns the detailed name of the element. The name can vary depending on the parameters. 44 | Element_GenerateName_Action_Stop_Sound(Environment, ElementParameters) 45 | { 46 | return x_lang("Stop_Sound") 47 | } 48 | 49 | ;Called every time the user changes any parameter. 50 | ;This function allows to check the integrity of the parameters. For example you can: 51 | ;- Disable options which are not available because of other options 52 | ;- Correct misconfiguration 53 | Element_CheckSettings_Action_Stop_Sound(Environment, ElementParameters, staticValues) 54 | { 55 | 56 | } 57 | 58 | 59 | ;Called when the element should execute. 60 | ;This is the most important function where you can code what the element acutally should do. 61 | Element_run_Action_Stop_Sound(Environment, ElementParameters) 62 | { 63 | ; stop sound 64 | SoundPlay, - 65 | 66 | ; finish 67 | x_finish(Environment,"normal") 68 | return 69 | } 70 | 71 | 72 | ;Called when the execution of the element should be stopped. 73 | ;If the task in Element_run_...() takes more than several seconds, then it is up to you to make it stoppable. 74 | Element_stop_Action_Stop_Sound(Environment, ElementParameters) 75 | { 76 | } 77 | 78 | 79 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /Source_Elements/Default/Icons/Bug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Icons/Bug.png -------------------------------------------------------------------------------- /Source_Elements/Default/Icons/Bullhorn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Icons/Bullhorn.png -------------------------------------------------------------------------------- /Source_Elements/Default/Icons/Keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Icons/Keyboard.png -------------------------------------------------------------------------------- /Source_Elements/Default/Icons/Sleep.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Icons/Sleep.ico -------------------------------------------------------------------------------- /Source_Elements/Default/Icons/Tooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Icons/Tooltip.png -------------------------------------------------------------------------------- /Source_Elements/Default/Icons/new Variable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Icons/new Variable.png -------------------------------------------------------------------------------- /Source_Elements/Default/Icons/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Icons/yellow.png -------------------------------------------------------------------------------- /Source_Elements/Default/License.txt: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to -------------------------------------------------------------------------------- /Source_Elements/Default/Test status.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/Test status.ods -------------------------------------------------------------------------------- /Source_Elements/Default/common/compatibility.ahk: -------------------------------------------------------------------------------- 1 | LoadFlowCheckCompatibilityElement_Package_Default(p_FlowID, p_ElementID, p_AHFVersion, p_PackageVersion) 2 | { 3 | elementClass := x_getElementClass(p_FlowID, p_ElementID) 4 | if (p_PackageVersion <= 1.1.0) 5 | { 6 | if (elementClass = "Action_New_variable") 7 | { 8 | elementPars := x_getElementPars(p_FlowID, p_ElementID) 9 | if (elementPars.onlyIfNotExist = "") 10 | { 11 | x_setElementPar(p_FlowID, p_ElementID, "onlyIfNotExist", 0) 12 | } 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Absolute_number.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Absolute Number

    11 |

    The action Absolute Number finds the absolute value of a number.

    12 | 13 |

    Settings

    14 | 15 | 16 | 20 | 21 | 22 | 26 | 27 |
    17 |

    Output variable name

    18 |

    Name of the variable which will contain the result.

    19 |
    23 |

    Input number

    24 |

    The input number.

    25 |
    28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Add_to_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Add to list

    11 |

    12 | The action Add to list adds a value to a list. If the list does not exist, it will be created. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 35 | 36 | 37 | 44 | 45 |
    19 |

    Variable name

    20 |

    Name of the variable which contains a list. If the list doesn't exist, it will be created.

    21 |
    25 |

    Number of elements

    26 |

    Either one or multiple elements can be added to the list.

    27 |
    31 |

    Content to add

    32 |

    If Add one element is selected, this field can contain either a value or an expression.

    33 |

    If Add multiple elements is selected, this multiline field can contain one or multiple values that will be added. Specify which delimiter will be used. The default setting is a new element in each line.

    34 |
    38 |

    Key

    39 |

    Specify the position or key of insertion.

    40 |

    If First position is selected, the value(s) will be added numerically as the first item(s) with the index 1 (, 2, …). The indexes of other items will be incremented.

    41 |

    If Last position is selected, the value(s) will be added as the last item(s). For example if a list has three elements, the other element(s) will be added as the fourth element (, fifth element, …)

    42 |

    If Following position or key is selected, the value(s) will be added into a specified position. You can specify the insertion method if position is an integer.

    43 |
    46 | 47 | 48 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Beep.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Beep

    11 |

    12 | The action Beep emits a tone from the PC speaker. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Frequency in Hz

    20 |

    Frequency of the tone.

    21 |
    25 |

    Duration in ms

    26 |

    Duration of the tone.

    27 |
    30 | 31 | 32 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Block_user_input.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Block input

    11 |

    12 | The action Block input disables or enables the user's ability to interact with the computer via keyboard and mouse. 13 |

    14 | 15 |

    This action might have no effect if UAC is enabled or AutoHotFlow has not been run as administrator.

    16 | 17 |

    Settings

    18 | 19 | 20 | 25 | 26 |
    21 |

    New block state

    22 |

    If Block user input is selected, the user input will be blocked.

    23 |

    If Unblock user input is selected, a previously enabled block will be removed.

    24 |
    27 | 28 |

    Remarks

    29 |

    30 | When BlockInput is in effect, user input is blocked but AutoHotkey can simulate keystrokes and mouse clicks. However, pressing Ctrl+Alt+Del will re-enable input due to a Windows API feature. 31 |

    32 | 33 | 34 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Change_Drive_Label.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Change drive label

    11 |

    12 | The action Change drive label changes a drive's volume label. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Drive letter

    20 |

    Specify a drive letter, followed by a colon and an optional backslash. In some cases a UNC name (such as \\server1\share1) might work.

    21 |
    25 |

    New label

    26 |

    Specify the new label for the drive. This field can be left empty in order to remove the label.

    27 |
    30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Change_character_case.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Change character case

    11 |

    12 | The action Change character case converts a string to lowercase or uppercase. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Input string

    26 |

    String that will be converted to lowercase or uppercase.

    27 |
    31 |

    Which case

    32 |

    Specify the desired character case.

    33 |
    36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Convert_list_to_string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Convert list to string

    11 |

    12 | The action Convert list to string converts a list to a string. Supported formats are JSON and YAML. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 41 | 42 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the string.

    21 |
    25 |

    Input list

    26 |

    The input list.

    27 |
    31 |

    Output format

    32 |

    Specify the format of the string.

    33 |
    37 |

    Options

    38 |

    If JSON is selected, some options can be set.

    39 |

    If Compact mode is selected, the output string will not have any linebreaks or indentation. Otherwise the intentation length can be set.

    40 |
    43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Convert_string_to_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Convert string to list

    11 |

    12 | The action Convert string to list converts a string to a list. Supported formats are JSON and YAML. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output list name

    20 |

    Name of the variable which will contain the list.

    21 |
    25 |

    Input string

    26 |

    The input string.

    27 |
    31 |

    Input format

    32 |

    Specify the format of the string.

    33 |
    36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Create_folder.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Create folder

    11 |

    12 | The action Create folder creates a new directory. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 30 | 31 |
    19 |

    Folder path

    20 |

    Path of the directory to create. 21 |
    The folder path is assumed to be in the working directory if an absolute path isn't specified. 22 |

    23 |
    27 |

    Options

    28 |

    If Throw exception if folder already exists is not selected, nothing will happen, if the folder already exists.

    29 |
    32 | 33 | 34 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Delete_file.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Delete file 9 | 10 | 11 |

    Delete file

    12 |

    The action Delete file deletes one or more files.

    13 |

    Be careful using that action. It may cause loss of data.

    14 | 15 |

    Settings

    16 | 17 | 18 | 25 | 26 |
    19 |

    File path

    20 |

    The name of a single file or folder, or a wildcard pattern. 21 |
    Both asterisks and question marks are supported as wildcards. 22 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 23 |

    24 |
    27 | 28 |

    Examples

    29 | 30 | 31 | 44 | 45 | 46 | 59 | 60 | 61 | 74 | 75 |
    32 |

    Delete one file from MyDocuments folder..

    33 | 34 | 35 | 38 | 41 | 42 |
    36 |

    File path

    37 |
    39 |

    A_MyDocuments%\Example.txt

    40 |
    43 |
    47 |

    Delete all files from a drive.

    48 | 49 | 50 | 53 | 56 | 57 |
    51 |

    File path

    52 |
    54 |

    G:\*

    55 |
    58 |
    62 |

    Delete all text files from the working directory.

    63 | 64 | 65 | 68 | 71 | 72 |
    66 |

    File path

    67 |
    69 |

    *.txt

    70 |
    73 |
    76 | 77 | 78 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Delete_folder.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Delete folder

    11 |

    12 | The action Delete folder deletes a folder. 13 |

    14 | 15 |

    Be careful using that action. It may cause loss of data.

    16 | 17 |

    Settings

    18 | 19 | 20 | 26 | 27 | 28 | 32 | 33 | 34 | 38 | 39 |
    21 |

    Folder path

    22 |

    Path of the directory to delete. 23 |
    The folder path is assumed to be in the working directory if an absolute path isn't specified. 24 |

    25 |
    29 |

    Options

    30 |

    If Remove only if the folder is empty is selected, the folder will not be deleted, if it contains any file or folder.

    31 |
    35 |

    Error handling

    36 |

    If Throw exception if folder does not exist is not selected, nothing will happen, if the folder doesn't exists.

    37 |
    40 | 41 |

    Examples

    42 | 43 | 44 | 57 | 58 |
    45 |

    Delete one folder from MyDocuments folder.

    46 | 47 | 48 | 51 | 54 | 55 |
    49 |

    Folder path

    50 |
    52 |

    %A_MyDocuments%\ExampleFolder

    53 |
    56 |
    59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Delete_from_ini.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Delete from ini

    11 |

    12 | The action Delete from ini deletes a value from a standard format .ini file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 32 | 33 | 34 | 38 | 39 |
    19 |

    Path of an .ini file

    20 |

    Name and path of the file. 21 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 22 |

    23 |
    27 |

    Action

    28 |

    If Delete a key is checked, only one key will be deleted. 29 |
    If Delete a section is checked, the entire section with all its keys will be deleted. 30 |

    31 |
    35 |

    Section and Key

    36 |

    The section and the key which content will be deleted.

    37 |
    40 | 41 | 42 |

    Remarks

    43 |

    44 | A standard ini file looks like this: 45 | 46 | 47 | 51 | 52 |
    48 | [SectionName] 49 |
    Key=Value 50 |
    53 |

    54 | 55 | 56 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Delete_from_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Delete from list

    11 |

    12 | The action Delete from list deletes a value from an existing list. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 32 | 33 | 34 | 38 | 39 |
    19 |

    Variable name

    20 |

    Name of the variable which contains the list.

    21 |
    25 |

    Which element

    26 |

    Either one or multiple elements can be added to the list. 27 |
    If First position is selected, the first value (usually with the key 1) will be deleted. 28 |
    If Last position is selected, the first value with the highest key will be deleted. 29 |
    If Following position or key is selected, the specified key will be deleted. If you specify an integer position, you can decide whether higher positions should be decremented after the deletion (to maintain a gapless array). 30 |

    31 |
    35 |

    Deleted value

    36 |

    You may write the deleted value to a new variable.

    37 |
    40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Do_nothing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Do nothing

    11 |

    12 | The action Do nothing does nothing. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Result

    20 |

    The result of the execution

    21 |
    24 | 25 | 26 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Download_file.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Dowload file

    11 |

    12 | The action Dowload file downloads a file from an URL. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 |
    19 |

    URL

    20 |

    URL of the file to download. For example, http://someorg.org might retrieve the welcome page for that organization.

    21 |
    25 |

    File path

    26 |

    Name and path of the file where the download will be written. 27 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 28 |

    29 |
    32 | 33 | 34 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Eject_Drive.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Eject drive

    11 |

    12 | The action Eject drive ejects a drive. It can also retract a CD/DVD tray. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 38 | 39 |
    19 |

    Drive letter

    20 |

    Specify a drive letter, followed by a colon and an optional backslash. In some cases a UNC name (such as \\server1\share1) might work.

    21 |
    25 |

    Action

    26 |

    Choose what should be done.

    27 |
    31 |

    Method

    32 |

    There are three methods for ejecting a drive. All three methods work with a CD or DVD drive. If removing a removable drive, like a USB Flash drive or an external hard disk drive, each method behave differently. 33 |
    Method 1: The recommended method. It is safely removing the removable drive. If the drive is in use, the ejection will fail. 34 |
    Method 2: The drive will be ejected, regardless whether it is in use. Warning: This may cause a loss of data! 35 |
    Method 3: This method only works with CD or DVD drives. 36 |

    37 |
    40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Empty_recycle_bin.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Empty recycle bin

    11 |

    12 | The action Empty recycle bin empties the recycle bin. 13 |

    14 | 15 |

    Be careful using that action. It may cause loss of data.

    16 | 17 |

    Settings

    18 | 19 | 20 | 26 | 27 |
    21 |

    Which drive

    22 |

    If All files is selected, the recycle bin for all drives will be emptied. 23 |
    If Specified drive is selected, only the recycle bin for the specified drive will be emptied. The drive is specified by its letter. 24 |

    25 |
    28 | 29 |

    Examples

    30 | 31 | 32 | 47 | 48 |
    33 |

    Empty recycle bin for the drive C.

    34 | 35 | 36 | 39 | 44 | 45 |
    37 |

    Which drive

    38 |
    40 |

    Specified drive 41 |
    C:\ 42 |

    43 |
    46 |
    49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Execute_Flow.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Execute flow

    11 |

    12 | The action Execute flow executes a flow. The target trigger must be enabled. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 | 32 | 40 | 41 |
    19 |

    Which flow

    20 |

    Choose which flow should be executed.

    21 |
    25 |

    Which trigger

    26 |

    Choose which trigger should be executed. You can choose any of the manual triggers. 27 |
    The trigger must be enabled, otherwise the action will throw an exception by default. 28 |

    29 |
    33 |

    Options

    34 |

    If Send local variables is checked, all local variables from the current instance will be sent to the executed flow. 35 |
    If Skip disabled flow is checked, the action will not throw an error if the target flow is not enabled. 36 |
    If Wait for called flow to finish is checked, the action will wait until the target flow has finished. 37 |
    If Return variables to the calling flow is checked, all generated variables in the target flow will be sent back after it finishes. 38 |

    39 |
    42 | 43 | 44 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Exponentiation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Exponentiation

    11 |

    12 | The action Exponentiation performs an exponentiation. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Base

    26 |

    The base.

    27 |
    31 |

    Exponent

    32 |

    The exponent.

    33 |
    36 | 37 |

    Remarks

    38 |

    39 | The formula of the calculation is: Base^Exponent = Result 40 |

    41 | 42 | 43 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Extract_files.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Extract files

    11 |

    12 | The action Extract files extracts files from an archive. 13 |
    Following formats are supported: zip, 7z, xz, tar, gzip, BZIP2, Z, lzma 14 |

    15 | 16 |

    Settings

    17 | 18 | 19 | 23 | 24 | 25 | 29 | 30 | 31 | 35 | 36 |
    20 |

    Source archive

    21 |

    Path of the archive file.

    22 |
    26 |

    Destination folder

    27 |

    Folder where the files from the archive will be extracted.

    28 |
    32 |

    Options

    33 |

    Format: By default the format of the archive will be automatically determined (*), however you may choose the expected format.

    34 |
    37 | 38 |

    Remarks

    39 |

    40 | This action uses the command line version of 7zip. 41 |

    42 | 43 | 44 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_Clipboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get clipboard

    11 |

    12 | The action Get clipboard copies the containing text of the clipboard to a variable. 13 |

    14 | 15 |

    Only text will be imported. If clipboard contains binary data, the variable will contain an empty string.

    16 | 17 |

    Settings

    18 | 19 | 20 | 24 | 25 |
    21 |

    Variable name

    22 |

    Name of the variable which will contain the clipboard text.

    23 |
    26 | 27 | 28 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_Screen_Settings.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get screen settings

    11 |

    12 | The action Get screen settings retrieves some attributes of a screen. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 30 | 31 |
    19 |

    Which screen

    20 |

    Select a screen. 21 |
    If your computer has only one screen, specify 1. 22 |

    23 |
    27 |

    Output variables

    28 |

    Name of the variables which will contain the retrieved settings. If a attribute is not needed, the corresponding field can be left empty.

    29 |
    32 | 33 |

    Remarks

    34 |

    35 | Not every screen supports those settings. 36 |
    This action requires Windows Vista or later. 37 |

    38 | 39 | 40 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_Volume.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get volume

    11 |

    12 | The action Get volume gets the master volume of the first sound device. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    24 | 25 | 26 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_file_attributes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get file attributes

    11 |

    12 | The action Get file attributes retrieves the attributes (read-only, hidden, etc) of a file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    File path

    26 |

    Name and path of the file. The file path is assumed to be in the working directory if an absolute path isn't specified.

    27 |
    30 | 31 |

    Remarks

    32 |

    33 | The result string will contain a subset of the letters in the string RASHNDOCT: 34 |

      35 |
    • 36 |

      R = READONLY

      37 |
    • 38 |

      A = ARCHIVE

      39 |
    • 40 |

      S = SYSTEM

      41 |
    • 42 |

      H = HIDDEN

      43 |
    • 44 |

      N = NORMAL

      45 |
    • 46 |

      D = DIRECTORY

      47 |
    • 48 |

      O = OFFLINE

      49 |
    • 50 |

      C = COMPRESSED

      51 |
    • 52 |

      T = TEMPORARY

      53 |
    54 |

    55 | 56 | 57 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_file_size.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get file size

    11 |

    12 | The action Get file size retrieves the size of a file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    File path

    26 |

    Name and path of the file. The file path is assumed to be in the working directory if an absolute path isn't specified.

    27 |
    31 |

    Unit

    32 |

    Specify the unit of the file size.

    33 |
    36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_file_time.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get file time

    11 |

    12 | The action Get file time retrieves a datetime stamp of a file or folder. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    File path

    26 |

    Name and path of the file. The file path is assumed to be in the working directory if an absolute path isn't specified.

    27 |
    31 |

    Which time

    32 |

    Specify whether the Modification time, Creation time or the Last access time should be retrieved

    33 |
    36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_from_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get from list

    11 |

    12 | The action Get from list retrieves a value from an existing list. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 38 | 39 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the value.

    21 |
    25 |

    Input list

    26 |

    Name of the variable which contains the list.

    27 |
    31 |

    Key or position

    32 |

    Specify the position or key of the value to retrieve. 33 |
    If First position is selected, the first value (usually with the key 1) will be retrieved. 34 |
    If Last position is selected, the first value with the highest key will be retrieved. 35 |
    If Following position or key is selected, the specified key will be retrieved. 36 |

    37 |
    40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_index_of_element_in_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get index from element in list

    11 |

    12 | The action Get index from element in list searches for an item in the list with the specified value. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the value.

    21 |
    25 |

    Input list

    26 |

    Name of the variable which contains the list.

    27 |
    31 |

    Seeked content

    32 |

    Specify a string or a number that should be searched.

    33 |
    36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_list_info.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get list info

    11 |

    12 | The action Get list info gets an information about a list. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the value.

    21 |
    25 |

    Input list

    26 |

    Name of the variable which contains the list.

    27 |
    31 |

    Which info

    32 |

    Information that will be retrieved.

    33 |
    36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_mouse_position.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get mouse position

    11 |

    12 | The action Get mouse position retrieves the mouse position. 13 |
    It can also retrieve information about the window ID and control ID beneath the mouse. 14 |

    15 | 16 |

    Settings

    17 | 18 | 19 | 25 | 26 | 27 | 31 | 32 |
    20 |

    Output variables

    21 |

    Names of the variables which will contain the result. 22 |
    You can choose the reference point of the coordinates. 23 |

    24 |
    28 |

    Additional information

    29 |

    Choose whether the window ID and control ID beneath the mouse should be retrieved as well.

    30 |
    33 | 34 | 35 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_pixel_color.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get pixel color

    11 |

    12 | The action Get pixel color retrieves the color of the pixel at the specified coordinates. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 32 | 33 | 34 | 40 | 41 |
    19 |

    Output variables

    20 |

    Name of the variables which will contain the color of the pixel. 21 |
    You can choose whether a variable should contain the RGB value of the color or whether three variables will contain a value between 0 and 255 for each color. Or both. 22 |

    23 |
    27 |

    Position

    28 |

    Specify the coordinates of the pixel which color will be retrieved. 29 |
    You can choose the reference point of the coordinates. 30 |

    31 |
    35 |

    Method

    36 |

    There are three methods to get the pixel color. 37 |
    This parameter may be changed if this action does not produce accurate result for the desired application. 38 |

    39 |
    42 | 43 | 44 |

    Remarks

    45 |

    46 | The pixel must be visible; in other words, it is not possible to retrieve the pixel color of a window hidden behind another window. By contrast, pixels beneath the mouse cursor can usually be detected. The exception to this is game cursors, which in most cases will hide any pixels beneath them. 47 |

    48 | 49 | 50 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_shortcut_information.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get shortcut information

    11 |

    12 | The action Get shortcut information retrieves information about a shortcut (.lnk) file, such as its target file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 36 | 37 |
    19 |

    Shortcut path

    20 |

    The path of the shortcut file to be analyzed. Be sure to include the .lnk extension.

    21 |
    25 |

    Output variables

    26 |

    Names of the variables that will contain the retrieved informations. The fields may be empty, if those informations are not required.

    27 |

    Target path: The shortcut's target (not including any arguments it might have) 28 |

    Target arguments: The shortcut's parameters (blank if none). 29 |

    Working directory: The shortcut's working directory. 30 |

    Description: The shortcut's comments (blank if none). 31 |

    Icon path: The filename of the shortcut's icon (blank if none). 32 |

    Icon number: The the shortcut's icon number within the icon file (blank if none). This value is most often 1, which means the first icon. 33 |

    Run mode: The shortcut's initial launch state, which is one of the following strings: Normal, Maximized, Minimized. 34 |

    35 |
    38 | 39 | 40 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Get_string_length.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get string length

    11 |

    12 | The action Get string length retrieves how many characters are in a string. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Input string

    26 |

    String which characters will be count.

    27 |
    30 | 31 | 32 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Hibernate_Computer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Hibernate computer

    11 |

    12 | The action Hibernate computer hibernates the computer. 13 |

    14 | 15 | 16 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Kill_Process.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Kill process

    11 |

    12 | The action Kill process terminates a process. 13 |

    14 |

    Be careful using that action. It may cause loss of data.

    15 | 16 |

    Settings

    17 | 18 | 19 | 23 | 24 |
    20 |

    Process name or ID

    21 |

    Name or ID of the process.

    22 |
    25 | 26 |

    Supplied Variables

    27 | 28 | 29 | 33 | 34 |
    30 |

    A_PID

    31 |

    Former Process ID of the terminated process

    32 |
    35 | 36 | 37 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/List_Drives.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    List drives

    11 |

    12 | The action List drives lists all drives in the system. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 | 32 | 36 | 37 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the list of found drives.

    21 |
    25 |

    Drive type

    26 |

    If Find all drives is selected, all drives types are retrieved. 27 |
    If Get only a specific type of drive is selected, you can choose which type of drive are retrieved. 28 |

    29 |
    33 |

    If no drive can be found

    34 |

    Choose whether the variable will be empty or this action should throw an exception if no drive can be found.

    35 |
    38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Lock_Computer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Lock computer

    11 |

    12 | The action Lock computer locks the computer. 13 |

    14 | 15 | 16 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Log_off.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Log off

    11 |

    12 | The action Log off logs off the user. 13 |

    14 | 15 | 16 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Message_Box.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Message box

    11 |

    12 | The action Message box displays a window with a message. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 36 | 37 | 38 | 42 | 43 | 44 | 50 | 51 |
    19 |

    Title and Message

    20 |

    Message shown to the user.

    21 |
    25 |

    Button Text

    26 |

    Enter the text which will be shown as the OK button.

    27 |
    31 |

    Timeout

    32 |

    If Define timeout is selected, the dialog will automatically close after the specified amount of time. 33 |
    Result on timeout: If timeout reaches zero, the action will end with the specified result. 34 |

    35 |
    39 |

    Width and height

    40 |

    Specify the size of the window that will be shown. Make sure, that the window is not too small.

    41 |
    45 |

    Cancelling

    46 |

    If Show cancel button is selected, a second button near to the OK button will be shown. The text can be specified. 47 |
    Result if cancelled: If uses either closes the window or clicks on the cancel button, the action will end with the specified result. 48 |

    49 |
    52 | 53 |

    Supplied Variables

    54 | 55 | 56 | 63 | 64 |
    57 |

    A_UserAction

    58 |

    The operation used to close the dialog. Can be one of: 59 |
    ok: when the user pressed the OK-button 60 |
    timeout: when the dialog was closed by a timeout 61 |
    cancel: when the user pressed the back key and the appropriate option is set 62 |

    65 | 66 | 67 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Minimize_all_windows.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Minimize all windows

    11 |

    12 | The action Minimize all windows minimizes all windows. It can also undo the action. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 |
    19 |

    Event

    20 |

    If Minimize all windows is selected, all current visible windows will be minimized. 21 |
    The option Undo is used after minimization of all windows. This restores all previously minimized windows. 22 |

    23 |
    26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Move_mouse.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Move mouse

    11 |

    12 | The action Move mouse simulates a mouse movement. The coordinates can be specified. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 35 | 36 | 37 | 43 | 44 | 45 | 51 | 52 |
    19 |

    Mouse position

    20 |

    The mouse will be moved to the specified position.

    21 |
    25 |

    Method

    26 |

    There are different methods to simulate mouse events. If the mouse movement is not recognized by the application using the default method, you may try to change it. 27 |
    Input mode has best performance and is the recommended one in most cases. It does not allow to set mouse movement speed. 28 |
    Event mode has lower performance. 29 |
    Play mode may require to disable the UAC to work. It may work better in games. It does not allow to set mouse movement speed. 30 |

    31 |

    32 | Input mode can only be used in one AutoHotFlow instance. If you run multiple AutoHotFlow instances simultanously, the second instance will not be able to use it. Also other applications and AutoHotkey scripts may block the input mode. If Input mode is blocked, it will automatically fall back to Event mode. 33 |

    34 |
    38 |

    Mouse movement speed

    39 |

    The mouse movement speed can be changed here. 40 |
    If Input mode or Play mode is selected, the mouse will always move instantly. 41 |

    42 |
    46 |

    Delay in ms

    47 |

    Specify the delay between each mouse action. It will be effective between every mouse click and between mouse movements. 48 |
    If Input mode is selected, the delay will always be 0 and this option will have no effect. 49 |

    50 |
    53 | 54 | 55 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/New_List.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    New list

    11 |

    12 | The action New list creates a new list, and initialize it with some data. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 | 32 | 37 | 38 | 39 | 45 | 46 |
    19 |

    Variable name

    20 |

    Name of the variable which will contain the list.

    21 |
    25 |

    Number of elements

    26 |

    The new list can be empty. 27 |
    Optionally one or multiple elements can be initially added to the list. 28 |

    29 |
    33 |

    Content to add

    34 |

    If Initialize with one element is selected, this field can contain either a value or an expression.

    35 |

    If Initialize with multiple elements is selected, this multiline field can contain one or multiple values that will be added. Specify which delimiter will be used. The default setting is a new element in each line.

    36 |
    40 |

    Key

    41 |

    Specify the position or key of insertion.

    42 |

    If Numerically as first element is selected, the value(s) will be added numerically as the first item(s) with the index 1 (, 2, …).

    43 |

    If Following key is selected, the value(s) will be added into a specified numerically position. If only one element will be added, any key name can be specified.

    44 |
    47 | 48 | 49 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/New_Time.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    New time

    11 |

    12 | The action New time creates a new timestamp. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Time

    26 |

    Specify the date and time that should be stored to the variable.

    27 |
    30 | 31 |

    Remarks

    32 |

    33 | The current timestamp is always accessible in the built in variable a_now. 34 |

    35 | 36 | 37 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/New_Variable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    New variable

    11 |

    12 | The action New variable creates a new variable with a specified value. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 29 | 30 |
    19 |

    Variable name

    20 |

    Name of the variable which will contain the value.

    21 |
    25 |

    Value

    26 |

    The content of the variable. 27 |

    28 |
    31 | 32 | 33 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Play_Sound.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Play sound

    11 |

    12 | The action Play sound plays a system sound, or any sound file of supported type. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 31 | 32 |
    19 |

    Select sound

    20 |

    There is a selection of standard system sounds. 21 |
    If Sound file is selected, specify the name and path of the file. The file path is assumed to be in the working directory if an absolute path isn't specified. 22 |

    23 |
    27 |

    Preview

    28 |

    You can start and stop the sound

    29 |

    The sound playback will not automatically stop when you close the element settings window.

    30 |
    33 | 34 |

    Remarks

    35 |

    36 | Only one sound can be played simuntaneously. If this action is executed while an other sound is playing, it will stop the playback and play the new sound. 37 |

    38 | 39 | 40 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Random_number.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Random number

    11 |

    12 | The action Random number creates a new variable. The output variable will be of same type as the input variable. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 |
    19 |

    Variable name

    20 |

    Name of the variable which will contain the copy.

    21 |
    25 |

    Minimum value and Maximum value

    26 |

    A number, variable or expression. 27 |
    If both numbers are integers, the generated number will be an integer. If one of them is a floating point, the generated number will be a floating point. 28 |

    29 |
    32 | 33 |

    Examples

    34 | 35 | 36 | 57 | 58 | 59 | 80 | 81 |
    37 |

    Get an integer between 1 and 10.

    38 | 39 | 40 | 43 | 46 | 47 | 48 | 51 | 54 | 55 |
    41 |

    Minimum value

    42 |
    44 |

    1

    45 |
    49 |

    Maximum value

    50 |
    52 |

    10

    53 |
    56 |
    60 |

    Get a floating point number between -10 and 10.

    61 | 62 | 63 | 66 | 69 | 70 | 71 | 74 | 77 | 78 |
    64 |

    Minimum value

    65 |
    67 |

    -10.0

    68 |
    72 |

    Maximum value

    73 |
    75 |

    10.0

    76 |
    79 |
    82 | 83 | 84 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Read_from_file.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Read from file

    11 |

    12 | The action Read from file reads the content of a file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 | 32 | 36 | 37 | 38 | 42 | 43 | 44 | 48 | 49 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    File path

    26 |

    Path of the file which contents will be read. 27 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 28 |

    29 |
    33 |

    Encoding

    34 |

    The text in the files may be encoded differently. If the encoding is not set correctly, some of the characters can't be read properly.

    35 |
    39 |

    Size limit

    40 |

    The amount of read data can be limited.

    41 |
    45 |

    Linefeed

    46 |

    Standard text files in windows use a carriage return & linefeed when there is a line break. It might be useful to replace the two characters with a single linefeed.

    47 |
    50 | 51 | 52 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Read_from_ini.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Read from ini

    11 |

    12 | The action Read from ini reads a value from a standard format .ini file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 | 32 | 39 | 40 | 41 | 47 | 48 | 49 | 55 | 56 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Path of .ini file

    26 |

    Path of the file. 27 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 28 |

    29 |
    33 |

    Action

    34 |

    If Read a key is checked, only one key will be read and its value will be stored to the output variable. 35 |
    If Read the entire section is checked, the entire section will be stored to the output variable. Comments and empty lines are omitted. Only the first 65,533 characters of the section are retrieved. 36 |
    If Read the section names is checked, a list of all section names will be stored to the output variable. 37 |

    38 |
    42 |

    Section and Key

    43 |

    The section and the key that contain the value. 44 |
    One or both of the options may be disabled, depending on the choice in Action. 45 |

    46 |
    50 |

    Behavior on error

    51 |

    This option is only available if Read a key is checked. 52 | If the file, section or key won't be found, the action could throw an exception or write a default value in the variable. 53 |

    54 |
    57 | 58 |

    Remarks

    59 |

    60 | A standard ini file looks like this: 61 | 62 | 63 | 67 | 68 |
    64 | [SectionName] 65 |
    Key=Value 66 |
    69 |

    70 | 71 | 72 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Rename_file.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Rename file

    11 |

    12 | The action Rename file renames one file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 30 | 31 |
    19 |

    Source file

    20 |

    The name of a single file. 21 |
    The file is assumed to be in the working directory if an absolute path isn't specified. 22 |

    23 |
    27 |

    New name

    28 |

    The new file name including extension.

    29 |
    32 | 33 | 34 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Rename_folder.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Rename folder

    11 |

    12 | The action Rename folder renames one folder. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 30 | 31 |
    19 |

    Source folder

    20 |

    The name of a single folder. 21 |
    The folder is assumed to be in the working directory if an absolute path isn't specified. 22 |

    23 |
    27 |

    New name

    28 |

    The new folder name.

    29 |
    32 | 33 | 34 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Replace_in_a_string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Replace in a string

    11 |

    12 | The action Replace in a string replaces the specified substring with a new string. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 42 | 43 | 44 | 48 | 49 | 50 | 56 | 57 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Input string

    26 |

    The input string.

    27 |
    31 |

    Text to search

    32 |

    The string to search for.

    33 |
    37 |

    Replace by

    38 |

    Found text will be replaced with this text. 39 |
    If blank, the found text will be deleted. 40 |

    41 |
    45 |

    Number of replacements

    46 |

    Either one occurrence other all occurrences can be replaced.

    47 |
    51 |

    Case sensitivity

    52 |

    If Case insensitive is selected, the character case will be ignored. For example if the input string is “Hello World”, the search text “world” will match. 53 |
    If Case sensitive is selected, the character case will not be ignored. 54 |

    55 |
    58 | 59 |

    Supplied Variables

    60 | 61 | 62 | 66 | 67 |
    63 |

    a_numberOfReplacements

    64 |

    Number of replacements that were performed.

    65 |
    68 | 69 | 70 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Rounding_a_number.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Rounding a number

    11 |

    12 | The action Rounding a number finds the next integer number to another number or cuts off some digits after comma. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 36 | 37 | 38 | 44 | 45 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Input number

    26 |

    The input number.

    27 |
    31 |

    Places after comma

    32 |

    If this field contains 0, the result will be an integer. 33 |
    If field contains a positive integer, that many digits after comma will remain.

    34 |
    If field contains a negative integer, that many digits before comma will be zero.

    35 |
    39 |

    Operation

    40 |

    If Round normally is selected, the nearest integer will be found. 41 |
    It is also possible to round up or to round down. 42 |

    43 |
    46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Script.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Script

    11 |

    12 | The action Script allows to execute a script. 13 |

    14 |

    This action is in a very early stage and the scripting language is not complete. There is no detailed help available yet. Compatibilty breaking changes are likely in future.

    15 | 16 |

    Settings

    17 | 18 | 19 | 23 | 24 |
    20 |

    Script

    21 |

    Script that will be executed

    22 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Search_in_a_string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Search in a string

    11 |

    12 | The action Search in a string searches for the position of the specified substring in a string. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 40 | 41 | 42 | 46 | 47 | 48 | 54 | 55 |
    19 |

    Output variable

    20 |

    Name of the variable which will contain the result. This is the position of the substring.

    21 |
    25 |

    Input string

    26 |

    A string whose contents will be read from.

    27 |
    31 |

    Text to search

    32 |

    The string to search for.

    33 |
    37 |

    Which occurrence

    38 |

    Defines which occurrence from left or right will be found.

    39 |
    43 |

    Start position

    44 |

    Defines the offset from left or right where the search begins. Position 1 is the first character.

    45 |
    49 |

    Case sensitivity

    50 |

    If Case insensitive is selected, the character case will be ignored. For example if the input string is “Hello World”, the search text “world” will match. 51 |
    If Case sensitive is selected, the character case will not be ignored. 52 |

    53 |
    56 | 57 | 58 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Select_file.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Select file

    11 |

    12 | The action Select file displays a standard dialog that allows the user to select one or multiple file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 24 | 25 | 26 | 30 | 31 | 32 | 38 | 39 | 40 | 44 | 45 | 46 | 58 | 59 | 60 | 64 | 65 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result. 21 |
    If Options -> Allow to select multiple files is selected, the result will be a list instead of a string. 22 |

    23 |
    27 |

    Prompt

    28 |

    Text displayed in the window to instruct the user what to do.

    29 |
    33 |

    Root directory

    34 |

    The name of a single file or folder. This file or folder will be the preselected file or folder when the dialog appars. 35 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 36 |

    37 |
    41 |

    Filter

    42 |

    Indicates which types of files are shown by the dialog.

    43 |
    47 |

    Options

    48 |

    Some further options can be set here.

    49 |
      Examples: 50 |
    • 51 |

      All Files (*.*)

      52 |
    • 53 | Documents (*.txt)

      54 |
    • 55 | Audio (*.wav; *.mp2; *.mp3)

      56 |
    57 |
    61 |

    Options

    62 |

    Some further options can be set here.

    63 |
    66 | 67 | 68 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Select_folder.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Select folder

    11 |

    12 | The action Select folder displays a standard dialog that allows the user to select a folder. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 36 | 37 | 38 | 42 | 43 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Prompt

    26 |

    Text displayed in the window to instruct the user what to do.

    27 |
    31 |

    Root directory

    32 |

    The name of a single file or folder. This file or folder will be the preselected file or folder when the dialog appars. 33 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 34 |

    35 |
    39 |

    Options

    40 |

    Some further options can be set here.

    41 |
    44 | 45 | 46 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Send_keystrokes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Send keystrokes

    11 |

    12 | The action Send keystrokes sends simulated keystrokes and mouse clicks to the active window. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 25 | 26 | 27 | 38 | 39 |
    19 |

    Keys or text to send

    20 |

    Specify the keys that will be sent. 21 |
    If Raw mode is selected, the entered string will be sent as is. 22 |
    If Raw mode is not selected, some keys can be declared as described in the section Remarks. 23 |

    24 |
    28 |

    Method

    29 |

    There are different methods to simulate keyboard events. If the sent keys are not recognized by the application using the default method, you may try to change it. 30 |
    Input mode has best performance and is the recommended one in most cases. 31 |
    Event mode has lower performance. 32 |
    Play mode may require to disable the UAC to work. It may work better in games. 33 |

    34 |

    35 | Input mode can only be used in one AutoHotFlow instance. If you run multiple AutoHotFlow instances simultanously, the second instance will not be able to use it. Also other applications and AutoHotkey scripts may block the input mode. If Input mode is blocked, it will automatically fall back to Event mode. 36 |

    37 |
    40 | 41 |

    Remarks

    42 |

    43 |

    44 |

    45 | 46 | 47 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_Clipboard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Set clipboard

    11 |

    12 | The action Set clipboard sets the content of the clipboard. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    New clipboard content

    20 |

    Text to write into clipboard. If this field is empty, the clipboard will be cleared.

    21 |
    24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_Flow_Status.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Set flow status

    11 |

    12 | The action Set flow status enables or disables one or all triggers of a flow. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    New state

    20 |

    Choose whether the trigger(s) will be enabled or disabled.

    21 |
    25 |

    Which flow

    26 |

    Choose which flow state should be changed.

    27 |
    31 |

    Which trigger

    32 |

    Choose which trigger(s) should be enabled or disabled. Either all, or the default trigger, or any other trigger can be selected.

    33 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_Process_Priority.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Set process priority

    11 |

    12 | The action Set process priority sets the priority level of a process. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 29 | 30 |
    19 |

    Process name or ID

    20 |

    Name or ID of the process.

    21 |
    25 |

    Priority

    26 |

    Specify the priority to set.

    27 |

    Any process not designed to run at Realtime priority might reduce system stability if set to that level.

    28 |
    31 | 32 |

    Supplied Variables

    33 | 34 | 35 | 39 | 40 |
    36 |

    A_PID

    37 |

    Process ID of the found process

    38 |
    41 | 42 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_Volume.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Set volume

    11 |

    12 | The action Set volume sets the master volume of the first sound device. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 40 | 41 |
    19 |

    Action

    20 |

    Specify which action should be done.

    21 |
    25 |

    Mute settings

    26 |

    If Set mute state is selected, specify which mute state to set.

    27 |
    31 |

    Absolute volume

    32 |

    If Set a specific volume is selected, specify the new volume from 0 to 100 %.

    33 |
    37 |

    Relative volume

    38 |

    If Increase or decrease volume is selected, specify by how many percent the volume should be increased or decreased.

    39 |
    42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_element_parameter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Set element parameter

    11 |

    12 | The action Set element parameter changes a parameter of an element 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 40 | 41 |
    19 |

    Which flow

    20 |

    Choose a flow.

    21 |
    25 |

    Which trigger

    26 |

    Choose an element.

    27 |
    31 |

    Which parameter

    32 |

    Choose an element parameter.

    33 |
    37 |

    New value

    38 |

    Definde the new value. After selection of a parameter, one of the controls will be enabled where the new value can be set.

    39 |
    42 | 43 |

    Remarks

    44 |

    45 | If a parameter of a trigger is changed, the trigger will be disabled and reenabled. This will activate the new parameter. 46 |

    47 | 48 | 49 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_file_attributes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Set file attributes

    11 |

    12 | The action Set file attributes sets a timestamp of a file or folder. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    File path

    20 |

    Name and path of the file. The file path is assumed to be in the working directory if an absolute path isn't specified.

    21 |
    25 |

    Attributes

    26 |

    The attributes to change.

    27 |
    31 |

    Options

    32 |

    This action can perform on files, forlder or both. It can also iterate in the subfolders.

    33 |
    36 | 37 |

    Examples

    38 | 39 | 40 | 69 | 70 |
    41 |

    Hide all files in a folder.

    42 | 43 | 44 | 47 | 50 | 51 | 52 | 55 | 58 | 59 | 60 | 63 | 66 | 67 |
    45 |

    File path

    46 |
    48 |

    %A_MyDocuments%\exampleFolder\*

    49 |
    53 |

    Attributes

    54 |
    56 |

    ☑ Hidden
    all others

    57 |
    61 |

    Options

    62 |
    64 |

    ◉ Operate on files
    ☐ Recurse into subfolders

    65 |
    68 |
    71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_file_time.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Get file attributes

    11 |

    12 | The action Get file attributes retrieves the attributes (read-only, hidden, etc) of a file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 40 | 41 |
    19 |

    File path

    20 |

    Name and path of the file. The file path is assumed to be in the working directory if an absolute path isn't specified.

    21 |
    25 |

    New time

    26 |

    The timestamp to set. The timestamp has the format YYYYMMDDHH24MISS.

    27 |
    31 |

    Which time.

    32 |

    Which time to change.

    33 |
    37 |

    Options

    38 |

    This action can perform on files, forlder or both. It can also iterate in the subfolders.

    39 |
    42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Set_lock_key.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Set lock key

    11 |

    12 | The action Set lock key sets the state of one of the lock keys. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 32 | 33 |
    19 |

    Which lock key

    20 |

    Specify which lock key should be changed.

    21 |
    25 |

    Status to set

    26 |

    Specify whether the flow should be enabled or disabled.

    27 |

    If On or Off is selected, the key is turned on or off. 28 |
    If Toggle is selected, the key state will be toggled. 29 |
    If Always on or Always off is selected, the key is turned on or off and forces the key to stay in this state permanently. 30 |

    31 |
    34 | 35 | 36 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Shuffle_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Shuffle list

    11 |

    12 | The action Shuffle list shuffles all entries that have a numeric key in a list. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Output list name

    20 |

    Name of the variable which will contain the shuffled list. It can be the same as the input list.

    21 |
    25 |

    Input list

    26 |

    Input list.

    27 |
    30 | 31 |

    Remarks

    32 |

    33 | Only numeric keys will be shuffled. If the list contains keys that are not a number, they will remain unchanged. 34 |

    35 | 36 | 37 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Speech_output.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Speech output

    11 |

    12 | The action Speech output uses an installed text to speech engine to read some text. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 | 32 | 38 | 39 | 40 | 46 | 47 | 48 | 52 | 53 | 54 | 58 | 59 |
    19 |

    Text to speak

    20 |

    Text that should be spoken.

    21 |
    25 |

    Wait options

    26 |

    If Wait until previous speech output has finished is selected, the flow will pause if the text to speech is currently used by an other element. Otherwise either the current speech output will be interrupted and a new one will be started. 27 |
    If Wait until current speech output finishes is selected, the flow will pause until the speech output will finish. 28 |

    29 |
    33 |

    Speech engine

    34 |

    This list contains all installed speech engines of your computer. Select one of them. 35 |
    AutoHotFlow tries to preselect a speech engine that has the same language as the OS language. 36 |

    37 |
    41 |

    Volume

    42 |

    Specify the volume from 0 to 100 %. 43 |
    A volume of 100 % means that it will be spoken with the current sound volume. 44 |

    45 |
    49 |

    Speed

    50 |

    Specify the speed of the speech.

    51 |
    55 |

    Pitch

    56 |

    Specify the pitch of the speech.

    57 |
    60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Split_a_string.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Split a string

    11 |

    12 | The action Split a string splits a string into a list of substrings using the specified delimiters. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 47 | 48 | 49 | 61 | 62 |
    19 |

    Output list name

    20 |

    Name of the variable which will contain the list with the results.

    21 |
    25 |

    Input string

    26 |

    A string whose contents will be read from.

    27 |
    31 |

    Delimiter characters

    32 |

    This field contains the separator characters (case sensitive). On every appearance of one of those characters the input text will be split into substrings. 33 |
    If this field is blank, each character of the input string will be treated as a separate substring. 34 |
    Each letter is a delimiter. Don't separate the delimiters by a comma or space, unless you want the comma or space to be a delimiter. 35 |

    36 |
      Examples: 37 |
    • 38 |

      , (Use comma as delimiter)

      39 |
    • 40 | %a_space%%a_tab%%a_lf%%a_cr% (separate by whitespaces)

      41 |
    • 42 | %delimiters% (variable that contains the delimiters)

      43 |
    • 44 | ab c (use the letters a, b, c and a space as delimiter)

      45 |
    46 |
    50 |

    Omit characters

    51 |

    This field contains the characters (case sensitive) to exclude from the beginning and end of each substring. 52 |
    This field can be blank. 53 |

    54 |
      Examples: 55 |
    • 56 |

      ,.:;-!? (Omit punctuation characters)

      57 |
    • 58 | %a_space%%a_tab%%a_lf%%a_cr% (omit whitespaces)

      59 |
    60 |
    63 | 64 | 65 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Square_root.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Square root

    11 |

    12 | The action Square root calculates the square root of a number. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Input number

    26 |

    The input number

    27 |
    30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Stop_Flow.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Stop flow

    11 |

    12 | The action Stop flow stops all running instances of a flow. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Which flow

    20 |

    Choose which flow should be stopped.

    21 |
    24 | 25 | 26 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Stop_Sound.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Stop sound

    11 |

    12 | The action Stop sound stops a sound that is currently played by AutoHotFlow. 13 |

    14 | 15 | 16 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Suspend_Computer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Suspend computer

    11 |

    12 | The action Suspend computer suspends the computer. 13 |

    14 | 15 | 16 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Time_calculation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Time calculation

    11 |

    12 | The action Time calculation adds an amount of time to a timestamp. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Input time

    26 |

    Input timestamp

    27 |
    31 |

    Time to add

    32 |

    The amount of time which will be added to the input timestamp

    33 |
    36 | 37 | 38 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Time_difference.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Time difference

    11 |

    12 | The action Time difference calculates the time difference between two timestamps. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 40 | 41 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    First input time

    26 |

    First timestamp

    27 |
    31 |

    Second input time

    32 |

    Second timestamp

    33 |
    37 |

    Which unit

    38 |

    Unit of the resulting time difference

    39 |
    42 | 43 |

    Remarks

    44 |

    45 | The formula of the calculation is: FirstInputTime - SecondInputTime = Result 46 |

    47 | 48 | 49 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Trace_Point.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Trace point

    11 |

    12 | The action Trace point is used to debug the flow. 13 |
    Trace points can be added anywhere in the flow. With the action Trace point check it is possible to check which trace points have passed. 14 |
    The trace point can also write a log message and stop the instance if a condtion is true. 15 |

    16 | 17 |

    Settings

    18 | 19 | 20 | 24 | 25 | 26 | 32 | 33 | 34 | 39 | 40 |
    21 |

    ID

    22 |

    ID of the trace point. It can have any id and it helps to identify the correct trace point in the action Trace point check.

    23 |
    27 |

    Log message

    28 |

    The trace point can log a message. 29 |
    This field can be left empty. 30 |

    31 |
    35 |

    Stop condition

    36 |

    If the condition is true, the current instance with all its threads will be stopped. 37 |
    This field can be left empty.

    38 |
    41 | 42 | 43 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Trace_Point_Check.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Trace point check

    11 |

    12 | The action Trace point check is used to debug the flow. 13 |
    Trace points can be added anywhere in the flow with the action Trace point. With this action it is possible to check which trace points have passed. 14 |
    You can define freely which trace points must have beed passed and which mustn't have been passed. You can also ignore any trace point. 15 |

    16 | 17 |

    Settings

    18 | 19 | 20 | 27 | 28 | 29 | 36 | 37 |
    21 |

    Trace points which must have been passed

    22 |

    If All trace points is checked, all trace points will be checked. 23 |
    You may exclude some trace points under Trace points which must not have been passed.

    24 |

    If All trace points is not checked, you can select which trace point will be checked. It is allowed not to select any trace point.

    25 |

    The action will throw an exception if any of the selected tracepoints have not passed until the moment when this action is executed.

    26 |
    30 |

    Trace points which must not have been passed

    31 |

    If All trace points is checked, all trace points will be checked. 32 |
    You may exclude some trace points under Trace points which must have been passed.

    33 |

    If All trace points is not checked, you can select which trace point will be checked. It is allowed not to select any trace point.

    34 |

    The action will throw an exception if any of the selected tracepoints have passed until the moment when this action is executed.

    35 |
    38 | 39 | 40 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Trigonometry.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Trigonometry

    11 |

    12 | The action Trigonometry calculates the sinus, cosine, tangent or the arcsine, arccosine, arctangent of a number. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 40 | 41 |
    19 |

    Output variable name

    20 |

    Name of the variable which will contain the result.

    21 |
    25 |

    Input number

    26 |

    The input number.

    27 |
    31 |

    Operation

    32 |

    Specify which tigonomic function should be done.

    33 |
    37 |

    Unit

    38 |

    Choose whether the input or output number (depending on the operation) is in radians or degrees.

    39 |
    42 | 43 | 44 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Write_to_file.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Write to file

    11 |

    12 | The action Write to file writes some text to a file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 35 | 36 | 37 | 43 | 44 | 45 | 51 | 52 |
    19 |

    Text to write

    20 |

    Text that will be written to the file.

    21 |
    25 |

    File path

    26 |

    Path of the file. The file path is assumed to be in the working directory if an absolute path isn't specified.

    27 |
    31 |

    Encoding

    32 |

    The text in the files may be encoded differently. 33 |
    UTF-8 is the recommended encoding.

    34 |
    38 |

    Append or overwrite

    39 |

    If Append is selected and the specified file exists, the existing file will remain and text will be written to the end of the file. 40 |
    If Overwrite is selected and the specified file exists, the file will be overwritten. 41 |

    42 |
    46 |

    Linefeed

    47 |

    A line break can be represented either by a single linefeed character or by the two characters linefeed and carriage return. 48 |
    Standard text files in windows use both characters, a linefeed and a carriage return, when there is a line break. 49 |

    50 |
    53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/Write_to_ini.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Write to ini

    11 |

    12 | The action Write to ini writes a value to a standard format .ini file. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 30 | 31 | 32 | 36 | 37 |
    19 |

    Value

    20 |

    Value that will be written in the .ini file.

    21 |
    25 |

    Path of .ini file

    26 |

    Path of the file, including extension. 27 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 28 |

    29 |
    33 |

    Section and Key

    34 |

    The section and the key that will contain the value.

    35 |
    38 | 39 |

    Remarks

    40 |

    41 | A standard ini file looks like this: 42 | 43 | 44 | 48 | 49 |
    45 | [SectionName] 46 |
    Key=Value 47 |
    50 |

    51 | 52 | 53 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/reboot_Computer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Reboot computer

    11 |

    12 | The action Reboot computer reboots the computer. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 23 | 24 |
    19 |

    Force

    20 |

    If Force is selected, all open applications will be forced to close.

    21 |

    Be careful using that option. It may cause loss of data.

    22 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/shutdown.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Shutdown

    11 |

    12 | The action Shutdown shuts down the computer. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 23 | 24 |
    19 |

    Force

    20 |

    If Force is selected, all open applications will be forced to close.

    21 |

    Be careful using that option. It may cause loss of data.

    22 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/sleep.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Sleep

    11 |

    12 | The action Sleep pauses the current thread for a specified amount of time. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Duration

    20 |

    Duration of the sleep.

    21 |
    24 | 25 |

    Remarks

    26 |

    27 | If there are other execution instances or threads, other actions will be executed while this sleep action is running. 28 |

    29 | 30 | 31 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Actions/tooltip.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Tooltip

    11 |

    12 | The action Tooltip displays a tooltip with a message. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 |
    19 |

    Text to show

    20 |

    Message shown to the user.

    21 |
    25 |

    Duration

    26 |

    Specify how long the tooltip will be shown.

    27 |
    31 |

    Options

    32 |

    If Follow mouse is selected, the tooltip will follow the mouse. If not, the tooltip will remain at its position.

    33 |
    36 | 37 |

    Remarks

    38 |

    39 | If another action is executed while the a tooltip is shown, the tooltip will be replaced by the new one. 40 |

    41 | 42 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Debug_dialog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Debug dialog

    11 |

    12 | The condition Debug dialog is used to debug a flow. 13 |
    It opens a dialog which allows to view and change all variables and their content. The result of the dialog can be selected. 14 |

    15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Do_nothing.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Do nothing

    11 |

    12 | The condition Do nothing does nothing. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Result

    20 |

    The result of the execution

    21 |
    24 | 25 | 26 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Expression.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Expressions

    11 |

    12 | The condition Expressions evaluates an expression and decides whether the result is true or false. This is similar to an if-statement in most programming languages. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 32 | 33 |
    19 |

    Expression

    20 |

    Expression to evaluate. 21 |
    The condition exits with yes if the result of the expression is not 0 or empty. 22 |
    The condition exits with no if the result is 0 or empty. 23 |

    24 |
      Examples:

      25 |
    • 26 | (1 or 0) and 1 (results to 1)

      27 |
    • 28 | number > 5 && number <= 7 (results to 1 if number is between 6 or 7)

      29 |
    • 30 | Var%VarContainingTwo% (Accessing variable Var2)

      31 |
    34 | 35 |

    Remarks

    36 |

    37 | Read more about expressions in the chapter Variables. 38 |

    39 | 40 | 41 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/File_exists.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    File exists

    11 |

    12 | The condition File exists checks whether a file or folder exists. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 25 | 26 |
    19 |

    File path

    20 |

    The name of a single file or folder, or a wildcard pattern. 21 |
    Both asterisks and question marks are supported as wildcards. A match occurs when the pattern appears in either the file's long/normal name or its 8.3 short name. 22 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 23 |

    24 |
    27 | 28 | 29 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/File_has_attribute.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    File has attribute

    11 |

    12 | The condition File has attribute checks whether a file or folder has an attribute. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 25 | 26 | 27 | 31 | 32 |
    19 |

    File path

    20 |

    The name of a single file or folder, or a wildcard pattern. 21 |
    Both asterisks and question marks are supported as wildcards. A match occurs when the pattern appears in either the file's long/normal name or its 8.3 short name. 22 |
    The file path is assumed to be in the working directory if an absolute path isn't specified. 23 |

    24 |
    28 |

    Which attribute

    29 |

    Select which attribute will be checked.

    30 |
    33 | 34 | 35 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Flow_Enabled.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Flow enabled

    11 |

    12 | The condition Flow enabled checks whether a trigger in a flow is enabled. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Which flow

    20 |

    Choose which flow should be checked.

    21 |
    25 |

    Which trigger

    26 |

    Choose which trigger(s) should be checked. Either any, or the default trigger, or any other trigger can be selected.

    27 |
    30 | 31 | 32 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Flow_Running.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Flow executing

    11 |

    12 | The condition Flow executing checks whether a flow is executing. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Which flow

    20 |

    Choose which flow should be checked.

    21 |
    24 | 25 | 26 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/List_contains_element.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    List contains element

    11 |

    12 | The condition List contains element checks whether a list contains an item. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 36 | 37 | 38 | 44 | 45 |
    19 |

    Input list

    20 |

    The input list.

    21 |
    25 |

    Search for what

    26 |

    It's possible either to search for an index or key or to search for an element with a specific content.

    27 |
    31 |

    Key or index

    32 |

    Only accessible if Search for an index or key is selected. 33 |
    Specify the position or key of the value to retrieve. 34 |

    35 |
    39 |

    Seeked content

    40 |

    Only accessible if Search for an element with a specific content is selected. 41 |
    Enter the value to search for. 42 |

    43 |
    46 | 47 |

    Supplied Variables

    48 | 49 | 50 | 55 | 56 |
    51 |

    A_FoundKey

    52 |

    This variable is only set if Search for an element with a specific content is selected. 53 |
    It contains the found key name which contains the searched content.

    54 |
    57 | 58 | 59 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Number is.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Number is

    11 |

    12 | The condition Number is checks whether a number has a specified value. It can compare float values and allow a certain deviation. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 36 | 37 |
    19 |

    Input number

    20 |

    The first number to compare.

    21 |
    25 |

    Expected number

    26 |

    The second number to compare.

    27 |
    31 |

    Maximum difference.

    32 |

    Maximum absolute and realtive difference of the number. 33 |
    The relative difference is calculated with the (first) Input number. 34 |

    35 |
    38 | 39 | 40 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Process_is_running.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Process is running

    11 |

    12 | The condition Process is running hecks whether a process is running. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Process name or ID

    20 |

    Name or ID of the process.

    21 |
    24 | 25 |

    Supplied Variables

    26 | 27 | 28 | 32 | 33 |
    29 |

    A_PID

    30 |

    Process ID of the found process.

    31 |
    34 | 35 | 36 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/String_contains_text.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    String contains text

    11 |

    12 | The condition String contains text checks whether a string contains the specified text. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 | 30 | 34 | 35 | 36 | 42 | 43 |
    19 |

    Input string

    20 |

    A string its contents will be read from.

    21 |
    25 |

    Text to search

    26 |

    The string to search for.

    27 |
    31 |

    Search text position

    32 |

    Specify whether the input string must start or end with the searched text or just contain it anywhere.

    33 |
    37 |

    Case sensitivity

    38 |

    If Case insensitive is selected, the character case will be ignored. For example if the input string is “Hello World”, the search text “world” will match. 39 |
    If Case sensitive is selected, the character case will not be ignored. 40 |

    41 |
    44 | 45 | 46 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/Variable_is_empty.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Variable is empty

    11 |

    12 | The condition Variable is empty hecks whether a variable is empty or unset. 13 |
    The result will be Yes if the variable is either unset or contains nothing. 14 |

    15 | 16 |

    TODOWarning

    17 |

    TODOInfo

    18 |

    Be careful using that action. It may cause loss of data.

    19 |

    This action has low performance, since a new AutoHotkey thread must be started.

    20 | 21 |

    Settings

    22 | 23 | 24 | 28 | 29 |
    25 |

    Variable name

    26 |

    Name of the variable which will be checked.

    27 |
    30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Conditions/key_is_down.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Key is down

    11 |

    12 | The condition Key is down checks whether a key is being held down. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 29 | 30 |
    19 |

    Key name

    20 |

    Name of the key which will be checked.

    21 |
    25 |

    Which key state

    26 |

    If Logical is selected, the result will be yes if the key is physically held down and if any other flow holds the key.

    27 |

    If Physical is selected, the result will be yes only if the key is physically held down.

    28 |
    31 | 32 |

    Remarks

    33 |

    34 |

    35 |

    36 | 37 | 38 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Loops/Work_through_a_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Work through a list

    11 |

    12 | The loop Work through a list allows to loop over all elements in a list, one at a time. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    Input list

    20 |

    The input list. The loop will iterathe through all elements of the list.

    21 |
    24 | 25 |

    Supplied Variables

    26 | 27 | 28 | 32 | 33 | 34 | 38 | 39 | 40 | 44 | 45 |
    29 |

    A_Index

    30 |

    Index of the current iteration. It starts with the value 1 and increases on every loop.

    31 |
    35 |

    A_LoopKey

    36 |

    Position or key of the current element.

    37 |
    41 |

    A_LoopField

    42 |

    Value of the current element.

    43 |
    46 | 47 |

    Remarks

    48 |

    49 | All supplied variables will be removed after last iteration. 50 |

    51 | 52 | 53 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Loops/condition.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Condition

    11 |

    12 | The loop Condition evaluates an expression on each iteraction and continues only if the condition result is true. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 28 | 29 |
    19 |

    Condition

    20 |

    Expression to evaluate on each iteration.

    21 |

    If Evaluate on first iteration is checked, the condition will be checked before first iteration. If it is not checked, the first iteration will be always performed, with no regard whether the condition is true or not.

    22 |
      Examples:

      23 |
    • 24 | a_index <= 10 (performs 10 iterations)

      25 |
    • 26 | VariableContainingBreakCondition (continues as long as the variable is not false)

      27 |
    30 | 31 |

    Supplied Variables

    32 | 33 | 34 | 38 | 39 |
    35 |

    A_Index

    36 |

    Index of the current iteration. It starts with the value 1 and increases on every loop.

    37 |
    40 | 41 |

    Remarks

    42 |

    43 | The supplied variable will be removed after last iteration. 44 |

    45 |

    46 | Read more about expressions in the chapter Variables. 47 |

    48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Loops/simpleloop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Loop through files

    11 |

    12 | The loop Loop through files allows to repeat some actions several times. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 23 | 24 |
    19 |

    Repeats

    20 |

    If Endless loop is checked, the loop will never end. The loop can still be left if a connection leads to "break" part. 21 |
    If Endless loop is not checked, the loop will end after the specified repeats.

    22 |
    25 | 26 |

    Supplied Variables

    27 | 28 | 29 | 33 | 34 |
    30 |

    A_Index

    31 |

    Index of the current iteration. It starts with the value 1 and increases on every loop.

    32 |
    35 | 36 |

    Remarks

    37 |

    38 | The supplied variable will be removed after last iteration. 39 |

    40 | 41 | 42 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Clipboard_Changes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Clipboard changes

    11 |

    12 | The trigger Clipboard changes triggers whenever the clipboard content changes. 13 |

    14 | 15 | 16 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Manual.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Manual

    11 |

    12 | The trigger Manual can be triggered manually or via action Execute flow. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 |
    19 |

    ID

    20 |

    Name of the trigger. It will help you to identify the correct trigger in dialogs where you have to select a trigger.

    21 |
    24 | 25 |

    Supplied Variables

    26 | 27 | 28 | 32 | 33 |
    29 |

    A_ManualTriggerID

    30 |

    The ID of the manual trigger.

    31 |
    34 | 35 | 36 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Periodic_Timer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Periodic timer

    11 |

    12 | The trigger Periodic timer triggers periodically. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 23 | 24 |
    19 |

    Time interval

    20 |

    Specify the time interval.

    21 |

    Be careful if you specify a period smaller than 100 ms. AutoHotFlow might not be able to work that fast!

    22 |
    25 | 26 |

    Remarks

    27 |

    28 | It will not trigger on activation, instead the entirety of its period must elapse before it triggers the flow. 29 |

    30 | 31 | 32 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Process_closes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Process closes

    11 |

    12 | The trigger Process closes triggers whenever a process closes. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 23 | 24 | 25 | 30 | 31 |
    19 |

    Process name or ID

    20 |

    Name or ID of the process. 21 |
    This field can be left empty, it will trigger whenever any process closes.

    22 |
    26 |

    Options

    27 |

    Specify the check interval in ms.

    28 |

    Be careful if you specify a period smaller than 1000 ms. It might sometimes trigger multiple times when a process closes.

    29 |
    32 | 33 |

    Supplied Variables

    34 | 35 | 36 | 40 | 41 | 42 | 46 | 47 |
    37 |

    A_ProcessID

    38 |

    ID of the closed process.

    39 |
    43 |

    A_ProcessName

    44 |

    Name of the closed process.

    45 |
    48 | 49 | 50 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Process_starts.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Process starts

    11 |

    12 | The trigger Process starts triggers whenever a process starts. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 23 | 24 | 25 | 30 | 31 |
    19 |

    Process name or ID

    20 |

    Name or ID of the process. 21 |
    This field can be left empty, it will trigger whenever any process starts.

    22 |
    26 |

    Options

    27 |

    Specify the check interval in ms.

    28 |

    Be careful if you specify a period smaller than 1000 ms. It might sometimes trigger multiple times when a process starts.

    29 |
    32 | 33 |

    Supplied Variables

    34 | 35 | 36 | 40 | 41 | 42 | 46 | 47 |
    37 |

    A_ProcessID

    38 |

    ID of the started process.

    39 |
    43 |

    A_ProcessName

    44 |

    Name of the started process.

    45 |
    48 | 49 | 50 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Shortcut.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Shortcut

    11 |

    12 | The trigger Shortcut reates a shortcut file which can be launched to trigger the flow. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Path of the shortcut

    20 |

    Path of the shortcut file. The file path is assumed to be in the working directory if an absolute path isn't specified. The shortcut must have the extension .lnk

    21 |
    25 |

    Options

    26 |

    If Remove shortcut when disabling is selected, the shortcut will be deleted, when the trigger is disabled.

    27 |
    30 | 31 |

    Remarks

    32 |

    33 | The shortcut will not trigger the flow if it is disabled. 34 |
    If AutoHotFlow is not running, the shortcut will start it. After start, it will trigger the flow, if the trigger is enabled. 35 |

    36 | 37 | 38 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Start_up.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Start up

    11 |

    12 | The trigger Start up triggers either when the computer boots or when AutoHotFlow starts. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 23 | 24 |
    19 |

    Trigger event

    20 |

    If AutoHotFlow startup is selected, the trigger will trigger whenever AutoHotFlow starts.

    21 |

    If Windows startup is selected, the trigger will trigger whenever Windows starts. It works only if AutoHotFlow is configured to start with windows.

    22 |
    25 | 26 | 27 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/Time_of_Day.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Time of day

    11 |

    12 | The trigger Time of day triggers on specifed time of day. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 28 | 29 |
    19 |

    Weekdays

    20 |

    Weekdays on which the flow will start.

    21 |
    25 |

    Time of day

    26 |

    Time when the flow will start.

    27 |
    30 | 31 | 32 | -------------------------------------------------------------------------------- /Source_Elements/Default/help/en/Triggers/User_Idle_Time.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    User idle time

    11 |

    12 | The trigger User idle time triggers whenever the user is inactive for a specified amount of time. 13 |

    14 | 15 |

    Settings

    16 | 17 | 18 | 22 | 23 | 24 | 29 | 30 |
    19 |

    Period of time

    20 |

    The amount of time the user has to be idle before the trigger triggers.

    21 |
    25 |

    Method

    26 |

    If Method: Default is selected, every physical user input and simulated user input (e.g. using action Send keystrokes) will reset the timer.

    27 |

    If Method: Physical is selected, only physical user input will reset the timer.

    28 |
    31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Source_Elements/Default/language/.gitignore: -------------------------------------------------------------------------------- 1 | *_removed.ini 2 | -------------------------------------------------------------------------------- /Source_Elements/Default/language/de.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/language/de.ini -------------------------------------------------------------------------------- /Source_Elements/Default/language/en.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/language/en.ini -------------------------------------------------------------------------------- /Source_Elements/Default/language/ko.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/language/ko.ini -------------------------------------------------------------------------------- /Source_Elements/Default/language/ru.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/Source_Elements/Default/language/ru.ini -------------------------------------------------------------------------------- /Source_Main/Hidden window/Hidden window.ahk: -------------------------------------------------------------------------------- 1 | ;The hidden window can receive messages from other processes. 2 | ;The initial purpose is to allow the trigger "shortcut". This trigger creates a shortcut. 3 | ;The shortcut starts the AutoHotFlow.ahk/exe and it sends the message to start the trigger to the already running AHF instance. 4 | 5 | ; create a hidden window which will be able to receive commands from outside 6 | CreateHiddenCommandWindow() 7 | { 8 | global 9 | gui, HiddenCommandWindow:add, edit, gHiddenCommandWindowOnNewMessage vHiddenCommandWindowEditMessage 10 | gui, HiddenCommandWindow:show, hide, %_ScriptDir% AHF_HIDDEN_COMMAND_WINDOW 11 | } 12 | 13 | ; a new command was pasted in the hidden window. 14 | HiddenCommandWindowOnNewMessage() 15 | { 16 | global HiddenCommandWindowEditMessage 17 | 18 | ; get the command 19 | guicontrolget, newMessage,, HiddenCommandWindowEditMessage 20 | 21 | ; process the command 22 | HiddenCommandWindowProcessMessage(newMessage) 23 | } 24 | 25 | ; Process a command which was passed to the hidden window 26 | HiddenCommandWindowProcessMessage(message) 27 | { 28 | ; split the parts of the message, which are delimited by pipes 29 | messageParsed := Object() 30 | loop, parse, message, | 31 | { 32 | messageParsed.push(A_LoopField) 33 | } 34 | 35 | ; process known commands 36 | if (messageParsed[1] = "trigger") 37 | { 38 | flowID := messageParsed[2] 39 | triggerID := messageParsed[3] 40 | 41 | if (_getElementInfo(flowID, triggerID, "enabled")) 42 | { 43 | API_Execution_ExecuteFlow(flowID, triggerID) 44 | } 45 | } 46 | Else 47 | { 48 | logger("a0", "unknown command received through command window: " substr(messageParsed, 1, 100)) 49 | } 50 | } -------------------------------------------------------------------------------- /Source_Main/Tray/Tray.ahk: -------------------------------------------------------------------------------- 1 |  2 | ; change the tray icon 3 | Menu, tray, Icon, %_ScriptDir%\Icons\mainicon.ico 4 | 5 | ; create tray menu 6 | if a_iscompiled 7 | { 8 | ; delete default menu if compiled 9 | Menu, tray, NoStandard 10 | } 11 | else 12 | { 13 | ; if not compiled, add a delimiter 14 | ;Menu, tray, add 15 | } 16 | 17 | ; add entry to show manager gui and set it to default (action on double click) 18 | Menu, tray, add, % lang("Show Manager"), onTrayMenuShowManagerGUI 19 | Menu, tray, default, % lang("Show Manager") 20 | 21 | ; add entry to exit AHF 22 | Menu, tray, add, % lang("Exit #verb"), exit 23 | 24 | 25 | ; disable default tray menu entries 26 | if (not _settings.developing) 27 | Menu, tray, NoStandard 28 | 29 | 30 | ; Set tooltip of tray icon 31 | Menu, tray, tip, % "AutoHotFlow" 32 | 33 | ; user wants to open the manager gui 34 | onTrayMenuShowManagerGUI() 35 | { 36 | API_Manager_ShowWindow() 37 | } 38 | -------------------------------------------------------------------------------- /Source_Manager/User Interface/Help.ahk: -------------------------------------------------------------------------------- 1 |  2 | ; Show help file for AHF. 3 | ui_showHelp() 4 | { 5 | global 6 | 7 | ; if a previous help gui is shown, destry it 8 | Gui, Help:Destroy 9 | 10 | ; disable DPI for this gui 11 | gui,Help:-dpiscale 12 | 13 | ; Find the help file 14 | local uiLang := _getSettings("UILanguage") 15 | local helpfilepath := _scriptDir "\Help\" UILang "\index.html" 16 | If not fileexist(helpfilepath) 17 | { 18 | helpfilepath := _scriptDir "\Help\en\index.html" 19 | If not fileexist(helpfilepath) 20 | { 21 | MsgBox, 16, % lang("Error"),% lang("No help file was found") 22 | Return 23 | } 24 | } 25 | 26 | ; show a browser in the gui 27 | Gui, Help:Add, ActiveX, x0 y0 w720 h490 vHelpGuiBrowser, Shell.Explorer 28 | HelpGuiBrowser.Navigate(helpfilepath) 29 | 30 | ; adjust gui appearance 31 | Gui, Help: +ToolWindow 32 | Gui, Help:Color, FFFFFF 33 | Gui, Help: +resize 34 | 35 | ; Find the perfect gui size 36 | SysGet, MonitorWorkArea, MonitorWorkArea 37 | local helpx := MonitorWorkArealeft + 50 38 | local helpy := MonitorWorkAreatop + 50 39 | local helph := MonitorWorkAreabottom - MonitorWorkAreatop - 100 40 | local helpw := MonitorWorkArearight - MonitorWorkArealeft - 100 41 | 42 | ; Show the help gui 43 | Gui, Help:Show, x%helpx% y%helpy% w%helpw% h%helph%,% lang("Help #noun") 44 | Return 45 | 46 | ; user closes help gui 47 | Helpguiclose: 48 | ; destroy the gui 49 | Gui, Help:Destroy 50 | return 51 | 52 | ; user resizes the help gui 53 | helpguisize: 54 | ; move the browser control 55 | guicontrol, move, HelpGuiBrowser ,w%A_GuiWidth% h%A_GuiHeight% 56 | return 57 | } 58 | -------------------------------------------------------------------------------- /Source_Test/Unit_Tests.ahk: -------------------------------------------------------------------------------- 1 | 2 | #Include %a_scriptdir%\..\lib\Yunit\Yunit.ahk 3 | #Include %a_scriptdir%\..\lib\Yunit\Window.ahk 4 | #Include %a_scriptdir%\..\lib\Yunit\StdOut.ahk 5 | 6 | #include %a_scriptdir%\..\Source_Main\Globals\Global Variables.ahk 7 | 8 | 9 | #include main\Globals\test globals.ahk 10 | 11 | Yunit.Use(YunitStdOut, YunitWindow).Test(main_Globals_TestSuite) 12 | 13 | -------------------------------------------------------------------------------- /Source_Test/main/Globals/Test globals.ahk: -------------------------------------------------------------------------------- 1 |  2 | class main_Globals_TestSuite 3 | { 4 | Begin() 5 | { 6 | init_GlobalVars() 7 | } 8 | 9 | Test_Vars_exist() 10 | { 11 | global 12 | Yunit.assert(IsObject(_flows) == true) 13 | Yunit.assert(IsObject(_settings) == true) 14 | Yunit.assert(IsObject(_execution) == true) 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /Tools for contributors/Element creation/help/Index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Hilfe 5 | -------------------------------------------------------------------------------- /Tools for contributors/Element creation/help/Menu.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

    Help

    11 | 12 |

    13 | 24 | 25 | -------------------------------------------------------------------------------- /Tools for contributors/Element creation/help/stylesheet.css: -------------------------------------------------------------------------------- 1 | html, table{ 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | h1 { 6 | color: black; 7 | margin-top: 0.3cm; 8 | margin-bottom: 0.4cm; 9 | page-break-before: "always"; 10 | } 11 | h2 { 12 | color: black; 13 | margin-top: 0.3cm; 14 | margin-bottom: 0.4cm; 15 | page-break-before: "always"; 16 | } 17 | p.warning { 18 | border-left: 6px solid #ccc!important; 19 | border-color: rgb(255, 0, 0)!important; 20 | background-color: rgb(255, 196, 196); 21 | padding: 0.1em 16px; 22 | } 23 | p.info { 24 | border-left: 6px solid #ccc!important; 25 | border-color: rgb(206, 203, 0)!important; 26 | background-color: rgb(255, 254, 185); 27 | padding: 0.1em 16px; 28 | } 29 | table { 30 | border-color: #000000; 31 | border-width: 2px; 32 | border-style: solid; 33 | border-collapse: collapse; 34 | } 35 | 36 | td { 37 | border-color: #000000; 38 | border-width: 2px; 39 | border-style: solid; 40 | padding: 5px; 41 | } 42 | td.example-parameter { 43 | width: 30%; 44 | padding-right: 10px; 45 | border-width: 1px; 46 | } 47 | td.example-value { 48 | font-family: monospace; 49 | width: 100%; 50 | border-width: 1px; 51 | } 52 | table.settings { 53 | width: 100%; 54 | background-color: #ccffff; 55 | } 56 | table.examples { 57 | width: 100%; 58 | background-color: #ccffcc; 59 | } 60 | table.example { 61 | width: 100%; 62 | background-color: #ccffcc; 63 | border-width: 1px; 64 | } 65 | table.variables { 66 | width: 100%; 67 | background-color: #feffcc; 68 | } 69 | 70 | table.codeblock { 71 | width: 100%; 72 | background-color: #d3d3d3; 73 | font-family: monospace; 74 | } 75 | ul.examples { 76 | background-color: #ccffcc; 77 | border-color: #000000; 78 | border-width: 1px; 79 | border-style: solid; 80 | line-height: 100%; 81 | font-family: monospace; 82 | } 83 | 84 | i { 85 | font-family: sans-serif; 86 | font-weight: normal; 87 | color:rgb(59, 59, 59); 88 | } 89 | 90 | h4 { 91 | font-size: 16px; 92 | } 93 | h4.VariableName { 94 | font-family: monospace; 95 | } 96 | code { 97 | background-color: rgb(228, 228, 228); 98 | } 99 | 100 | iframe { 101 | width: 100%; 102 | height: 80%; 103 | } 104 | 105 | -------------------------------------------------------------------------------- /Tools for contributors/Element creation/raw templates/template - compatibility.ahk: -------------------------------------------------------------------------------- 1 | LoadFlowCheckCompatibilityElement_Package_&packageName&(p_FlowID, p_ElementID, p_AHFVersion, p_PackageVersion) 2 | { 3 | elementClass := x_getElementClass(p_FlowID, p_ElementID) 4 | 5 | ; example: 6 | /* 7 | if (p_PackageVersion <= 1.1.0) 8 | { 9 | if (elementClass = "Action_MyPackage_MyElement") 10 | { 11 | elementPars := x_getElementPars(p_FlowID, p_ElementID) 12 | if (elementPars.myParam = "") 13 | { 14 | x_setElementPar(p_FlowID, p_ElementID, "myParam", 0) 15 | } 16 | } 17 | } 18 | */ 19 | } -------------------------------------------------------------------------------- /Tools for contributors/Element creation/readme.txt: -------------------------------------------------------------------------------- 1 | There is a documentation how to use the element template creator and much more in the folder "Documentation". -------------------------------------------------------------------------------- /Tools for contributors/Translation/start translation tool.bat: -------------------------------------------------------------------------------- 1 | start "" ../../AutoHotkey/AutoHotFlow.exe "Translation Tool.ahk" -------------------------------------------------------------------------------- /Tools for contributors/Translation/stylesheet.css: -------------------------------------------------------------------------------- 1 | html, table{ 2 | font-family: sans-serif; 3 | font-size: 14px; 4 | } 5 | h1 { 6 | color: black; 7 | margin-top: 0.3cm; 8 | margin-bottom: 0.4cm; 9 | page-break-before: "always"; 10 | } 11 | h2 { 12 | color: black; 13 | margin-top: 0.3cm; 14 | margin-bottom: 0.4cm; 15 | page-break-before: "always"; 16 | } 17 | p.warning { 18 | border-left: 6px solid #ccc!important; 19 | border-color: rgb(255, 0, 0)!important; 20 | background-color: rgb(255, 196, 196); 21 | padding: 0.1em 16px; 22 | } 23 | p.info { 24 | border-left: 6px solid #ccc!important; 25 | border-color: rgb(206, 203, 0)!important; 26 | background-color: rgb(255, 254, 185); 27 | padding: 0.1em 16px; 28 | } 29 | table { 30 | border-color: #000000; 31 | border-width: 2px; 32 | border-style: solid; 33 | border-collapse: collapse; 34 | } 35 | 36 | td { 37 | border-color: #000000; 38 | border-width: 2px; 39 | border-style: solid; 40 | padding: 5px; 41 | } 42 | td.example-parameter { 43 | width: 30%; 44 | padding-right: 10px; 45 | border-width: 1px; 46 | } 47 | td.example-value { 48 | font-family: monospace; 49 | width: 100%; 50 | border-width: 1px; 51 | } 52 | table.settings { 53 | width: 100%; 54 | background-color: #ccffff; 55 | } 56 | table.examples { 57 | width: 100%; 58 | background-color: #ccffcc; 59 | } 60 | table.example { 61 | width: 100%; 62 | background-color: #ccffcc; 63 | border-width: 1px; 64 | } 65 | table.variables { 66 | width: 100%; 67 | background-color: #feffcc; 68 | } 69 | 70 | table.codeblock { 71 | width: 100%; 72 | background-color: #d3d3d3; 73 | font-family: monospace; 74 | } 75 | ul.examples { 76 | background-color: #ccffcc; 77 | border-color: #000000; 78 | border-width: 1px; 79 | border-style: solid; 80 | line-height: 100%; 81 | font-family: monospace; 82 | } 83 | 84 | i { 85 | font-family: sans-serif; 86 | font-weight: normal; 87 | color:rgb(59, 59, 59); 88 | } 89 | 90 | h4 { 91 | font-size: 16px; 92 | } 93 | h4.VariableName { 94 | font-family: monospace; 95 | } 96 | code { 97 | background-color: rgb(228, 228, 228); 98 | } 99 | 100 | iframe { 101 | width: 100%; 102 | height: 80%; 103 | } 104 | 105 | -------------------------------------------------------------------------------- /bin/7-zip.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/bin/7-zip.chm -------------------------------------------------------------------------------- /bin/7za.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/bin/7za.exe -------------------------------------------------------------------------------- /bin/license.txt: -------------------------------------------------------------------------------- 1 | 7-Zip Command line version 2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 | License for use and distribution 4 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 | 6 | 7-Zip Copyright (C) 1999-2010 Igor Pavlov. 7 | 8 | 7za.exe is distributed under the GNU LGPL license 9 | 10 | Notes: 11 | You can use 7-Zip on any computer, including a computer in a commercial 12 | organization. You don't need to register or pay for 7-Zip. 13 | 14 | 15 | GNU LGPL information 16 | -------------------- 17 | 18 | This library is free software; you can redistribute it and/or 19 | modify it under the terms of the GNU Lesser General Public 20 | License as published by the Free Software Foundation; either 21 | version 2.1 of the License, or (at your option) any later version. 22 | 23 | This library is distributed in the hope that it will be useful, 24 | but WITHOUT ANY WARRANTY; without even the implied warranty of 25 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 26 | Lesser General Public License for more details. 27 | 28 | You can receive a copy of the GNU Lesser General Public License from 29 | http://www.gnu.org/ 30 | -------------------------------------------------------------------------------- /bin/readme.txt: -------------------------------------------------------------------------------- 1 | 7-Zip Command line version 9.20 2 | ------------------------------- 3 | 4 | 7-Zip is a file archiver with high compression ratio. 5 | 7za.exe is a standalone command line version of 7-Zip. 6 | 7 | 7-Zip Copyright (C) 1999-2010 Igor Pavlov. 8 | 9 | Features of 7za.exe: 10 | - High compression ratio in new 7z format 11 | - Supported formats: 12 | - Packing / unpacking: 7z, xz, ZIP, GZIP, BZIP2 and TAR 13 | - Unpacking only: Z, lzma 14 | - Highest compression ratio for ZIP and GZIP formats. 15 | - Fast compression and decompression 16 | - Strong AES-256 encryption in 7z and ZIP formats. 17 | 18 | 7za.exe is a free software distributed under the GNU LGPL. 19 | Read license.txt for more information. 20 | 21 | Source code of 7za.exe and 7-Zip can be found at 22 | http://www.7-zip.org/ 23 | 24 | 7za.exe can work in Windows 95/98/ME/NT/2000/2003/2008/XP/Vista/7. 25 | 26 | There is also port of 7za.exe for POSIX systems like Unix (Linux, Solaris, OpenBSD, 27 | FreeBSD, Cygwin, AIX, ...), MacOS X and BeOS: 28 | 29 | http://p7zip.sourceforge.net/ 30 | 31 | 32 | This distributive packet contains the following files: 33 | 34 | 7za.exe - 7-Zip standalone command line version. 35 | readme.txt - This file. 36 | license.txt - License information. 37 | 7-zip.chm - User's Manual in HTML Help format. 38 | 39 | 40 | --- 41 | End of document 42 | -------------------------------------------------------------------------------- /find modules - only default package.ahk: -------------------------------------------------------------------------------- 1 | #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 2 | 3 | run, "%a_scriptdir%\find modules.ahk" onlyDefaultPackage -------------------------------------------------------------------------------- /innoSetupScript - Extension Package template.iss: -------------------------------------------------------------------------------- 1 | ; Script generated by the Inno Setup Script Wizard. 2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! 3 | 4 | #define MyAppName "AutoHotFlow Extension &packageName&" 5 | #define MyAppVersion "&version&" 6 | #define MyAppPublisher "&author&" 7 | #define MyAppURL "&website&" 8 | #define MyAppExeName "AutoHotFlow.exe" 9 | 10 | ;#expr Exec("C:\Users\bichl\Documents\git\AutoHotFlow\innoSetupPrebuildSteps.exe") 11 | 12 | [Setup] 13 | ; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. 14 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) 15 | AppId={{504F70A2-A1ED-4593-B177-54425F0E7CAC} 16 | AppName={#MyAppName} 17 | AppVersion={#MyAppVersion} 18 | AppPublisher={#MyAppPublisher} 19 | AppPublisherURL={#MyAppURL} 20 | AppSupportURL={#MyAppURL} 21 | AppUpdatesURL={#MyAppURL} 22 | DefaultDirName={autopf}\{#MyAppName} 23 | DisableProgramGroupPage=yes 24 | LicenseFile=Source_Elements\&packageName&\License.txt 25 | PrivilegesRequiredOverridesAllowed=dialog 26 | OutputBaseFilename={#MyAppName} Setup 27 | Compression=lzma 28 | SolidCompression=yes 29 | WizardStyle=modern 30 | OutputDir=. 31 | SetupIconFile=icons\MainIcon.ico 32 | CreateUninstallRegKey=no 33 | Uninstallable=no 34 | 35 | [Languages] 36 | Name: "english"; MessagesFile: "compiler:Default.isl" 37 | 38 | [Tasks] 39 | 40 | [Icons] 41 | 42 | [Run] 43 | Filename: "{app}\find modules.exe" 44 | Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppExeName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent runasoriginaluser 45 | 46 | [InstallDelete] 47 | 48 | [Files] 49 | &files& -------------------------------------------------------------------------------- /language/.gitignore: -------------------------------------------------------------------------------- 1 | /*.ini 2 | -------------------------------------------------------------------------------- /language/basic/.gitignore: -------------------------------------------------------------------------------- 1 | *_removed.ini 2 | -------------------------------------------------------------------------------- /language/basic/de.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/language/basic/de.ini -------------------------------------------------------------------------------- /language/basic/ko.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/language/basic/ko.ini -------------------------------------------------------------------------------- /language/basic/ru.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bichlepa/AutoHotFlow/11c13efd03f07c31235cc146290e16784d0fd137/language/basic/ru.ini -------------------------------------------------------------------------------- /settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "developing": 1, 3 | "FlowExecutionPolicy": "Wait", 4 | "FlowWorkingDir": "C:\\Users\\bichl\\Documents\\AutoHotFlow", 5 | "HideDemoFlows": "0", 6 | "LogLevelApp": "3", 7 | "LogLevelFlow": "3", 8 | "LogLevelThread": "2", 9 | "LogToFile": "1", 10 | "runAsAdmin": "0", 11 | "ShowElementsLevel": "Programmer", 12 | "UILanguage": "en" 13 | } --------------------------------------------------------------------------------