Autohotkey webinar Deep-Dive into File Encoding

webinarIn this AutoHotkey Webinar took a deep-dive into File Encoding by our guest speaker Jean Lalonde (author of Quick Access Popup)

Video Hour 1:  High Level:

  • Why File encoding matters
  • Pros/Cons of each type of encoding
  • Tools like the File Encoding Lab to help determine a file’s encoding
  • How to set File Encoding in AutoHotkey

Video Hour 2: Coding and Q&A

Script Highlight: BarChart by Learning One

(Here is a link to BarChart scripts demonstrated during the webinar)


1) File Enconding in AutoHotkey

(Here is a link to all of Jean Lalonde’s files)
  • Edit and run the AHK script “FileRead.ahk”
  • Load “Demo-UTF-16.txt” with default encoding
  • Load “Demo-UTF-16-No_BOM.txt” with default encoding  -> problem!
  • Load “Demo-UTF-16-No_BOM.txt” with UTF-16-RAW encoding  -> OK!
  • Try the other file enconding available in AHK

2) File Encoding in DOS (code pages)

  • Run the batch file “Type Box.bat” in DOS console (under “Tutorial“ folder)
  • See this ASCII/ANSI file displayed with code pages 1252 (default ASCI/ANSI) and 437

3) Load the File Encoding Lab

  • Run the AHK script “File Encoding Lab.ahk”
  • Loaded bu default “ASCII.txt” (detected CP1252, 7-bit chars)
  • File Encoding Lab tour
    • Binary display on the left side / Normal AHK display on the right
    • Click on the file name to see with Notepad
    • Encoded detected and use the dropdown list to reload with another encoding
  • Load “ANSI.txt” (detected CP1252, 8-bit chars)
  • Load “Box-CP437.txt” (detected CP1252, 8-bit chars)
    • Which encoding will display a box?
  • Load “UTF-8.txt” (detected UTF-8)
    • see BOM (“byte ordre mark” or header) on left side: two first bytes
    • See one byte for “!”
    • See two bytes each for “é”  and “É«
    • See three bytes for “用”

4) File Encoding Lab Cheat Sheet

  • ASCII and ANSI
  • Unicode 8-16-32 bits
  • Unicode with/without BOM
  • Unicode Little or Big Endian

5) Real life files

  • QAP Spanish translation
  • QAP Chinese translation
  • Other examples?

AutoHotkey webinar- Intro to GUIs

In this AutoHotkey Webinar we covered: Introduction to GUIs  (Here is a link to scripts shared during the webinar)

Video Hour 1:  High Level:

  • Why you should create a GUI
  • Pros / Cons about Using a GUI
  • Pros / Cons about Programming a GUI
  • Rules of Thumb / Tips
  • Overview of various GUIs available in AutoHotkey
  • Resources: Tutorials & Tools for building GUIs

Video Hour 2: Coding and Q&A

Script Highlight: TaskDialog from just me and TaskDialog Creator from


When should you consider a GUI

  • Help select from a list of items that changes frequently
  • Use dropdowns , radio buttons, etc. to control what can be selected
  • Target audience using the tool is non-tech savvy
  • The list you want to choose from is available progromatically (files in folder, different accounts, etc)
  • You want to display data and be able to sort by columns keeping the rows intact
  • You want to lock-down use of the tool
  • You want to make sure certain values/fields get updated (tags for an email, subject line, etc)
  • Your code is long and key data points that you change are mixed throughout the script
  • Dealing with Images / Video files- Preview of image helps humans classify what “it” is

Pros / Cons of Using GUIs

Pros of Using GUIs

  • Non-programmers can do a lot while knowing little
  • Color / Animation can ease functionality / Usage
  • Graphics can convey data
  • Build in ways to reduce errors
  • input box for path, etc
  • “wizard” can be a template for end-user

Cons of Using GUIs

  • Non-programmers can do a lot while knowing little (make sure you build-in safeguards*)
  • Not as flexible / can typically only do what has been defined by designer
  • Manually have to repeat process each use
  • Poorly designed UI can be very painful

* Hawaii Missile-Alert Crisis


Pros / Cons of Programming GUIs

Pros of Programming GUIs

  • Can “lock down” interaction (have drop-downs, radio buttons, etc. ) with specific commands (instead of free-form typing by user)
  • Can reduce errors / mistakes by limiting options

Cons of Programming GUIs

  • Users can do actions, in any order, at any time (Not procedural)
  • Different screen resolutions
  • Various input (Mouse, Keyboard, touch,etc.)

Rules of Thumb / Tips

  • KISS- As they say, “less is more”.
  • Use Tabs to help separate tasks
  • Always “destroy” the GUI before you create it (yes, even the first time)
  • Name your GUIs
  • Label your inputs with pre-selected text or text control (e.g. edit fields)
  • Keep your design-focus on the End-User
  • Remember GUIs are EVENT driven (not linear – user can start “anywhere”)
  • Listviews & Treeviews- Disable redraw, Put in new info, Enable redraw
  • Build-in safeguards against users making mistakes

Quick Demonstrations  (See this file for the scripts)

  • Input box (multiple edit fields)
  • Tabs, Checkboxes, Radio Buttons
  • Resizable Edit
  • ListView
  • TreeView
  • DropdownList, ComboBox, Context sensitive help
  • On-Screen Display
  • Installation / Progress Bar
  • Editor with Menu bar
  • Menus

Tutorials

Use HTML & CSS in your GUIs by JoeDF

Tools


AutoHotkey Webinar- Automating MS Outlook and COM

In our first hour of today’s  AutoHotkey webinar we talked about various ways you can automate MS Outlook.  We covered the below scripts:

  1. Creating an HTML email (Also see this video)
  2. Performing mail-merge on the above HTML email
  3. Integrating a mail-merge from an active Excel file  (Also see this video)
  4. Looping over emails in a folder
  5. Creating appointments in Outlook
  6. Creating an address book from looping over emails in Outlook

The second hour dove a bit deeper into using Outlook and Excel.  We also talked through a few user’s questions.

Below is the information that was reviewed in the PowerPoint deck we reviewed:

Script Highlight:

Sift by FanaticGuru uses Regular Expressions and nGrams* to fuzzy match strings

*n-gram is a contiguous sequence of n items

COMComponent Object Model

  • What is COM?
  • Some of the programs COM integrates with:

Creating an HTML email in Outlook with AutoHotkey

  1. Connect to Outlook or Create a new one (but may not deploy right then)
  2. Create a New Mail Item object
  3. Provide values for properties
    1. Specify Account Sending from
    2. Type of email (HTML, RTF, Text)  (Search here for Outlook Constants)
    3. Identify Recipients: To, CC, BBC
    4. Subject line
    5. HTML Body
    6. Attachments
    7. Delivery time (Fuse)
    8. Request Delivery Reciept
    9. Importance
    10. Display / Send
  4. Convert above email to mail-merge with names & email addresses

Resources

AHK Forum:

MSDN resources:

Outlook examples on the-Automator

Stack Overflow

AutoHotkey webinar on COM & Excel

AutoHotkey Webinar- Spreading AHK Luv & Making $ with AHK

In our first hour of today’s webinar we talked through the below points on how to improve adoption rate of AutoHotkey for users as well as making money with AutoHotkey.

The second hour dove a bit deeper into both topics and discussed other subjects related to these.

Script Highlight:

FindText – Capture Screen Image & Find it

Don’t let the name “FindText” fool you (it isn’t about ‘text’)

 Things to keep in mind:

  • Make sure you keep the same: Screen resolution, magnification, font, zoom
  • Test Grayscale vs Color
  • You can adjust the size of the capture area (but smaller is generally better)
  • Tutorial 1 demonstrating the function and an Example using it
  • Function to help take action on what you find

PowerPoint deck / Resources:

Which best describes your Organization’s current RPA (Robotics Process Automation) adoption level?

Here is the full Slide deck, podcast, and book entitled: Service Automation: Robots and the Future of Work 2016 by Leslie P. Willcocks (Author), Mary Lacity (Author)

Misconceptions of RPA / Desktop Automation

Desktop Automation

  • …is only used to reduce workload & lay-off employees
  • …is mainly driven by cost savings
  • completely replaces the need for a person

Why Don’t More People Automate / Use AutoHotkey?

  • People do notlike change. (correlation with age?)
  • People don’t realize what canbe automated (“think small” – “magic redo” button?)
  • Managers / Decision makers think it is “too expensive
  • No “GUI” to use for creating scripts.  Non-techies get “overwhelmed” with coding.
  • Everyone is “too busy” to learn how to save time. Even though they’re interested in saving time they don’t find time to learn how to automate. (Story of a woodcutteris a great analogy; remember to take time to ‘sharpen the saw’)
  • Some people are too proud to let-on that they really don’t understand what you’re doing. They might try it on their own but get frustrated and give up after 15 minutes.  (Perhaps reviewing 1-1 is better than in groups?)
  • Managers oftendo not encourage their employees to automate. (I’ve had several bosses that told me NOTto automate.)
  • Most people think short-termand not long-term. This can present itself in the following dimensions
  • The job is “too small” to be automated (almost never true)
  • The job is a “1-time” need (rarely, if ever, the case; the “job” might be but the “approach” is bound to come up again)
  • I’m the only one that would use this (rarely the case)
  • It will take too long to write code to automate (I think this is one of the best things about AutoHotkey.  FAST!)
  • It must be “fully automated” (No need to automate the entire process)
  • Not considering “side-effects” of automation (tracking log to examine events, employee / customer satisfaction etc.)

Best Approach to Get Adopters

1.Don’t overwhelm them with all that AutoHotkey can do!

  • Only get them to learn 1 thing!
  • Give them time to learn/adopt that and then come back with additional tips

2.Curtail what you demonstrate to the prospect’s level

  • Luddites- Stick to HotKeys and HotStrings
  • Somewhat Nerdy- Demonstrate some scripts, Input box, Sending keystrokes / Clicks, File manipulation
  • Nerds- Whatever their need! (Dll calls, Image search, API calls, Web Scraping, Objects, RegEx, GUIs, etc.)

3.Get a senior-level advocate (Director or above)

  • Senior people see the cost-savings
  • Your supervisor will think your coding is counting against “their time”
  • Colleagues might be worried you’re “automating” them out of a job
  • IT also might try and road-block you. Get the business to “demand” it

4.Create custom script for their needs

  • Don’t build in all bells-whistles

Making $ Money with AutoHotkey

General Models

  • Selling generic programs / scripts to large audience
  • Selling custom scripts to individuals / company
  • Getting paid to code (they own the intellectual property) & you get paid by hour

Getting Paid

Licensing

Shareware / Freeware / Donations

Rich” Target markets

  • Lots of people doing same job function
  • “Thankless” / mundane jobs with clear logic/ “rules-based” descisions and structured data
  • Lots of, repetitive, transactions
  • Non-programming “business” people
  • People with Money!!!
  • Sales people!
  • Realestate

Incentives / Benefits to Highlight to Potential Clients

  • Employee / man-hour savings resulting in high ROI (Return on Investment)
  • Better quality results than from humans / Higher compliance
  • Faster deployment getting things done (clients / customers are happier)
  • Increased scalability
  • Happier, more productive, employees
  • Have more “Meta-Data” to do analysis on
  • The more you do, the easier it gets
  • The more you automate, the more time you have to automate