Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

AutoHotkey_L v1.1.01.00


  • Please log in to reply
12 replies to this topic
Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006
1.1.01.00 (July 30)

Added support for instance variables in class definitions, using simple assignment syntax.
Added new built-in variables: A_ScriptHwnd and A_PriorKey.
Added new built-in functions: GetKeyName(), GetKeyVK(), GetKeySC() and IsByRef().
Added new sub-command: WinGet, OutputVar, ProcessPath.
Added the capability to specify a window by process name or path: ahk_exe %Name%.exe or ahk_exe %FullPath%.

Optimized ProcessName sub-command of WinGet.
Changed SetTimer to use A_ThisLabel if Label is omitted.
Updated ComObjConnect() to support using an object in place of a function name prefix.
Improved ComObjConnect() to allow the prefix/object to be updated without first disconnecting.
Improved parsing of continuation sections to allow expressions like (x.y)[z]() without escaping "(".

Replaced the method used to store script text in 32-bit compiled scripts; now consistent with 64-bit.

Fixed detection of AltGr in the active window's keyboard layout (on Unicode builds).
Fixed SendInput applying a redundant LCtrl-up some time after AltGr-up.

Downloads (etc.)

If the links or updater give you an older version, clear your cache/temporary files and try again.
Alternatively, find this and other releases in the archives.
Thanks to Russell Davis for implementing A_PriorKey and ahk_path (the basis of ahk_exe).

Ahk2Exe must be updated. But don't panic - it's included in the installer, and should be pulled down by the update script if you use that. The EXEarc library has been removed from AutoHotkeySC.bin and Ahk2Exe v1.1.01, so they won't work with older versions of AutoHotkeySC.bin or Ahk2Exe. This also means that Ahk2Exe no longer supports password protection, and supports compression and encryption only through mpress.exe, if it is present. For background information about this change, see this post.

It should now be possible to digitally sign compiled scripts, but that hasn't been tested.

Side note: It is now feasible for Ahk2Exe to be rewritten as a script. Ahk2Exe64 can be used as a starting point.

  • Guests
  • Last active:
  • Joined: --

Added new sub-command: WinGet, OutputVar, ProcessPath.
Added the capability to specify a window by process name or path: ahk_exe %Name%.exe or ahk_exe %FullPath%.

Very nice, thank you (and Russel)

fragman
  • Members
  • 1591 posts
  • Last active: Nov 12 2012 08:51 PM
  • Joined: 13 Oct 2009
Great changes! Congrats on the new release :)

[Moderator's note: Moved discussion started by zzzooo10 to Rewriting Ahk2Exe as a script for v1.1.01.]

ruespe
  • Members
  • 567 posts
  • Last active: Dec 01 2014 07:59 PM
  • Joined: 17 Jun 2008

This also means that Ahk2Exe no longer supports password protection, and supports compression and encryption only through mpress.exe, if it is present.

Does this mean, that we can't protect our programs any more? And everybody can decompile them with Exe2Ahk or something else?

Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006
No. It means Ahk2Exe no longer gives you the illusion of protecting your script. It means you can protect your programs. Unlike older versions, there's nothing to stop you from running whatever executable packer or other protection measures you want after compiling the script. Before you could only compress AutoHotkeySC.bin and rely on Ahk2Exe to compress the script and included files. If you don't want to do the research and implement your own solution, you can just use mpress like I suggested.

Nobody can decompile them with Exe2Ahk. Any tool capable of extracting resources from an executable can extract the script, unless it's been compressed by mpress or some other packer, or some other measure has been taken to prevent it.

  • Guests
  • Last active:
  • Joined: --
Is there an instruction for using mpress for AHK users? I cannot find the term in the help file. Is it a third party program or built-in?

jethrow
  • Moderators
  • 2854 posts
  • Last active: May 17 2017 01:57 AM
  • Joined: 24 May 2009

· Password protection is supported only for 32-bit compilations and the /NoDecompile switch is no longer supported at all. If mpress.exe is present in the Compiler directory, it is used to compress the script executable - for 64-bit scripts, this includes the script text and is the only supported form of protection against decompilation.



  • Guests
  • Last active:
  • Joined: --
Oh, there isn't in the AHK Basic's help file but there is in AHK_L's. Thanks jethrow. And it is just easy as that. That's amazing.

Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011
Great work. Thank you.
Is there a special link to download 1.1.01.00 ?
atm the link to AutoHotkey_L_Install.exe is still redirected to 1.1.00.01.

All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006

Is there a special link to download 1.1.01.00 ?

Yes, in the archives.

atm the link to AutoHotkey_L_Install.exe is still redirected to 1.1.00.01.

No it isn't. Incidentally, I had to clear my "Temporary Internet Files" for the update script to work, yet Firefox had no problem. Apparently clearing the "Temporary Internet Files" through Disk Cleanup is not the same as doing it through IE 9's own user interface; only the latter worked.

jethrow
  • Moderators
  • 2854 posts
  • Last active: May 17 2017 01:57 AM
  • Joined: 24 May 2009

Updated ComObjConnect() to support using an object in place of a function name prefix.

Very Nice :) - and Thank You for the updates!

... To catch all events without defining a method for each one, define a __Call meta-function.

I have been unsuccessful getting this to work - could you provide an example? I would have assumed this would be the syntax:
#Persistent

pwb := ComObjCreate("InternetExplorer.Application")

pwb.Navigate("www.autohotkey.com")

pwb.Visible := true

ComObjConnect(pwb, IE)



class IE {

   __Call(p*) {

   ;~ DocumentComplete() { ; <-- this works

      TrayTip, , WebBrowser Event

   }

}


Lexikos
  • Administrators
  • 9844 posts
  • AutoHotkey Foundation
  • Last active:
  • Joined: 17 Oct 2006
jethrow, meta-functions must be defined in the base object (i.e. use new IE, not IE).

jethrow
  • Moderators
  • 2854 posts
  • Last active: May 17 2017 01:57 AM
  • Joined: 24 May 2009
Hmmm, yes - thanks for the insight. Works very nice once the ignorance has passed. Any thought of implementing the same for OnMessage?