• Intro to AutoHotkey HotStrings with AutoHotkey Intermediate AutoHotkey GUIs are Easy with AutoHotkey Intro to DOS & AutoHotkey AutoHotkey FAQ AutoHotkey FAQ

AutoHotkey Webinar- Learn AutoHotkey quickly

In the first hour of the webinar we walked through the process for how to learn anything (including AutoHotkey) quickly

Hour 1: High-level overview
Hour 2: Q&A

Script Highlight:  Merging / Appending files of similar structure

  • A-Z Database allows for extracting contacts up to 1,000 at a time. Check your local library for access
  • For simplification I extracted 25 at a time, then merge together.
  • Each csv file has a header row
  • Every file has the same headers
  • Get the source code here

Learn AutoHotkey quickly

Continue reading

AutoHotkey Webinar- Using Controls with AHK

Controls in AutoHotkeyVideo Hour 1: High-level overview: Hour 1
Video Hour 2: Q&A: Hour 2

Script Highlight: WinSpy from Alguimist.  Forum version here

SimpleSpy version here

Also, check out all the other tutorials on Controls with AutoHotkey here

Here are the scripts we walked through during the webinar Continue reading

AutoHotkey Webinar-Protecting your Intellectual Property: Trademarks, Copyrights, Patents, Trade Secrets

AutoHotkey WebinarScript Highlight: Multi-Rename Script from Majkinetor.

Here’s a link to the forum post and GitHub.

Here’s my version which has an updated .ahk file (done by Maestrith author of AHK Studio) that will actually run.

Continue reading

AutoHotkey Webinar-When, Why and How to use Error Checking on Runtime Errors

webnar 300x200When, Why and How to use Error Checking on Runtime Errors

Video Hour 1: High-level overview: Hour 1
Video Hour 2: Q&A: Hour 2

Script Highlight: Detecting Carrier type, location, company from a phone number.

When / Why to use Error Checking

For general troubleshooting of your own code use:

  1. Msgbox
  2. Debug in SciTE , AHK Studio or Notepad++
  3. Watch this Webinar on Debugging & Troubleshooting

Runtime Errors– An error that occurs during the execution of a program

  1. Use Error Handling to diagnose Runtime Errors for scripts distributed to clients
  2. Allows you to adapt the reported error as something meaningful to non-coders
  3. Frequently provides information you cannot get elsewhere
  4. Easy to Log the error with additional information so we can have context of what is frequently going wrong  (Users are typically terrible are providing enough information)
  5. Can prevent the script from “locking up” / throwing an Error that is confusing to the client
  6. Build-into your Class / Library to help others utilizing your code

ErrorLevel and OnError

ErrorLevel

  • Built-in variable which indicates success/failure of many (84) commands
  • A value of Zero means success. Most commands return a 1 for failure but some have values higher than 1

OnError

  • Specifies a function to run automatically when an unhandled error occurs.

OnExit

  • A Built-in Function name/Object to call when your script is exiting
  • It can help understand why/when your script exited

There are 84 Built-in Command/Functions with Error Level

Try / Catch / Throw / Finally / Exception

  • Try– Will “try” to execute a given line(s) of code
  • Catch– Specifies the code to execute if an exception is raised during execution of a Try statement.
  • Throw– Signals the existence of an error allowing a Try/Catch command to display info about this error. This object allows you to personalize the message / information available
  • Finally– Used in conjunction with Try or Catch. Ensures that one or more statements (commands or expressions) are always executed after the execution of a try statement
  • Exception()- An Object with properties to be accessed from Catch’s OutputVar
  • Message:An error message or ErrorLevelvalue.
  • What:The name of the command, function or label which was executing or about to execute when the error occurred.
  • Extra:Additional information about the error, if available.
  • File:Set automatically to the full path of the script file which contains the line at which the error occurred.
  • Line:Set automatically to the line number at which the error occurred.

 

Best Practices / Tips & Tricks

  1. Remember –in Try / Catch  the Exception thrown is an object.
  2. Not all programs accurately report ErrorLevel when run from RunWait
    1. –If this is the case, think of other ways to determine if your script finished correctly
  3. Unless you truly have a need, don’t worry about Throw or Finally.  Most developers do not use them
  4. While typically used as pairs, Try can be used without Catch
    1. — in this case, it is used only to bypass the error message
  5. ComObjError()–  can be set to 0 to disable COM errors (but isn’t recommended)
  6. Copy the ErrorLevel value to your own variable immediately  after the command that  caused the error (before its content is changed after executing another command)