AutoItA new version (3.2.4.9) of AutoIt was released last Friday. If you are an avid AutoIt fan, make sure to update your version of AutoIt. You can download the new version of AutoIt and Scite4autoIt.

Here are the changes in this version from the last major version:

  • Added: StringCompare()
  • Fixed: Basic string comparisons were not working with locale as in previous versions.
  • Fixed: Errors with non-western codepages and ANSI format scripts.
  • Added: Aut2Exe options for forcing ANSI mode compilation (/ansi and /unicode)
  • Added: StringToBinary()
  • Added: Additional unicode related options for BinaryToString()
  • Fixed: StringReplace() and occurances parameter.
  • Added: BinaryToString() for binary buffer to ANSI string quick conversions.
  • Added: @Unicode macro to show if AutoIt is being run in Unicode or ANSI mode.
  • Changed: StringReplace() speeded up - a lot.
  • Changed: Au3Info is now resizable.
  • Fixed: Chr(0) now properly works with Binary()
  • Fixed: Chr(0) now acting more sensible (now acts in a similar way to VBScript).
  • Fixed: FileRead() not working properly with unicode files.
  • Changed: Au3Info graphical tweaks and Summary tab.
  • Fixed: FileReadLine() getting bad cached data when reading specific line numbers with file handles.
  • Fixed: Slight lag in GUIGetMsg() under certain circumstances.
  • Added: ChrW() and AscW() for unicode operations.
  • Fixed: Chr() and Asc() for character codes 128-255 in unicode mode.
  • Fixed: Unicode BOM was not being written in file append modes if the file was empty.
  • Fixed: Error in Include\GuiCombo.au3 and Include\IE.au3.
  • AutoIt is now compiled for Unicode! AutoIt3.exe is Unicode - AutoIt3A.exe is ANSI.
  • Au3Info tool rewritten.
  • Binary data functions completely rewritten - scripts using these functions will need to be changed.
  • Added: New modes for FileOpen() to force Unicode and binary operations.
  • Added: BinaryLen(), BinaryMid()
  • Added: Colored GUI buttons.
  • Added: DllStruct…() can reference elements by name rather than index.
  • Changed: Removed restrictions on the maximum number of #include directives.
  • Changed: Removed restrictions on the maximum number of DllOpen() handles.
  • Changed: Removed restrictions on the maximum number of open files.
  • Changed: Removed restrictions on the maximum number of hotkeys.
  • Changed: Performance improvements in StringStripWS().
  • Changed: Binary data in variants are now treated as a special type, separate from normal strings.
  • Changed: BinaryString() renamed to Binary()
  • Changed: IsBinaryString() renamed to IsBinary()
  • Changed: ControlClick() can now click a control at a certain position.
  • Changed: ControlClick() can now properly simulate double-clicks.
  • Changed: ControlClick() no longer forces the activation of the parent window (up to the user now).
  • Changed: ControlClick() related coordinates added to Au3Info.
  • Changed: Improved the searches that can be done for windows/controls/instances.
  • Changed: From DEFAULT_QUALITY to PROOF_QUALITY for Change/Set Font functions.
  • Changed: x^y compatible with C99 standard.
  • Fixed: Possible crash when using StringStripWS(), flag 4 and empty strings.
  • Fixed: GUICtrlSetLimit() for UpDown controls wher min = max.
  • Fixed: GuiCtrlSetTip() not always working correctly.
  • Fixed: Slow GUI tab redrawing under Windows Vista fixed.
  • Fixed: HotKeySet bad notification.
  • Fixed: FileGetAttrib() on pagefile.sys.
  • Fixed: Invalid default parameter in GUICtrlSetData() not detected.
  • Fixed: Assign does return error on array element.
  • Fixed: FileOpen(”test.txt”, 2+8) returning error.
  • Fixed: Error detection in Enum statement.
  • Fixed: Opt(”WinTitleMatchMode”).
  • Fixed: Stack corruption resulting from improper use of DllCall() now gracefully aborts the script instead of hard crashing.
  • Fixed: Crash when reading empty REG_MULTI_SZ.
  • Fixed: Round() not returning an integer.
  • Fixed: ControlSend() to empty “” ctrl fixed for inactive window. Also shift state behavior.
  • Fixed : O^(-1).
  • Fixed: Non detection of illegal statement.
  • Fixed: HotKeySet(”^{PAUSE]”,… notification.
  • Fixed: {CTRLBREAK} ->{BREAK} as ctrl is user responsability.
  • Fixed: $var = Default passed as parameter to Com object.
  • Fixed: Edit control would always have focus the first time the GUI was displayed even if it shouldn’t. This behavior also ignored $GUI_FOCUS.
  • Fixed: range value for seed Number in SRandom().
  • Fixed: Fileread crash if no count in raw mode.
  • Fixed: Opt(”WinTitleMatchMode”, <0) really matching case insensitive.
  • Fixed: FileSetAttrib/FileSetTime wrong setting.
  • Fixed: Execute/Call recursive overflow display error message.
  • Fixed: Aut2exe warning message if icon not found.
  • Fixed: WinGetTitle() returns 1 on error.
  • Fixed: Memory leak on keyword variable deallocation.

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

Source CodeA great big “Thank You!” to everyone who donated to the release of the source code for DCoT Menu. Because of your generosity, DCoT Menu is now available to everyone as open source code. Feel free to download the code and start making your own derivative branches of this application.

Here are the generous people who we all have to thank for this:

So, here is what you have all been waiting for, the DCoT Menu source code: Read the rest of the story…

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

AutoIt MySQLWhether we realize it or not, we are a civilization that runs on data. It controls every decision we make or don’t make. We spend countless hours reading it, analyzing it, massaging it, duplicating it, verifying it, summarizing it, and protecting it. It gives us power.

So, it is logical that we would come up with many different ways to store data electronically. When most people think of electronic information, they often think of files, or e-mails, or webpages. But, if we are going to look at storing some serious data, someone is very quickly going to utter the word…”database”.

According to Wikipedia, a database is:

…a structured collection of records or data that is stored in a computer so that a program can consult it to answer queries. The records retrieved in answer to queries become information that can be used to make decisions. The computer program used to manage and query a database is known as a database management system (DBMS). The properties and design of database systems are included in the study of information science.

One of the most popular database programs today is MySQL. It is an open source database program that lets you store and analyze data to your heart’s content. In fact, Daily Cup of Tech runs on a MySQL database.

But, what about getting to this data with AutoIt. Is there a way to do it? Especially when many MySQL systems run on Linux and AutoIt is definitely a Windows only application. Can the data residing on the Linux MySQL server be accessed from a Windows AutoIt applications. The answer is…definitely!

Read the rest of the story…

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

WeirdI have been working with Vista now for a couple of weeks and I an starting to get a feel for some of the odd quirks that are occurring to me. Many of these are because of how I have done things in the past and I will probably have to make some changes in how I do things in the future.

But, I thought that I would start documenting some of these odd things, what caused them, and how I have worked around them. Please keep in mind that I am writing this after only working with the system for a couple of weeks. I am no where even close to being an expert with this OS and I would greatly appreciate any (gentle) correction and addition that you can supply.

Too Far On the Secure Side

One of the things that I have discovered over time is that there is a sliding scale between a secure system and an easy to use system. Read the rest of the story…

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

AutoIt BuilderOK. I have to admit it. I got caught in a bit of a fib on Sunday. Actually, it was more of a case of bad proofreading than anything else. In my post Automatic Drive Mapping, I stated:

you can’t make a batch file into an executable

Well, wary DCoT reader D Steele caught me in my mistake and let me know that there are actually several ways that you can convert a batch file into an executable.

I had actually realized this when I was writing the previous post but promptly forgot about it before I submitted the post. So, apologies for the error.

In fact, it is really easy to do. Here is how I do it in AutoIt:

;Make batch executable
#include <File.au3>
 
Dim $TempBatchFile = _TempFile(@TempDir,"",".bat")
Dim $HideConsole = False
 
FileInstall("MyBatch.bat",$TempBatchFile)
 
If $HideConsole Then
	RunWait($TempBatchFile,@TempDir,@SW_HIDE)
Else
	RunWait($TempBatchFile,@TempDir)
EndIf
 
FileDelete($TempBatchFile)
 
MsgBox(64,"Done","Execution complete!")

Download this code: MyBatch.au3

A couple of little things about this script. It will not show the “DOS box” as it is written. If you want to see the console screen, simply change this line:

Dim $HideConsole = False

to:

Dim $HideConsole = True

The console should now appear.

Also, the line:

FileInstall(“MyBatch.bat”,$TempBatchFile)

is where you put in the full path and name of your batch file. Simply change MyBatch.bat to the name of your batch file. You cannot use a variable for this because of how AutoIt is designed.

Once you have all of these things set, all you need to do is compile your script and you are done! Instantly compiled batch file!

If you found this post useful, why don't you buy me a cup of coffee to show your gratitude?

« Previous PageNext Page »