# AutoIt v3.3.9.7 Beta

## Recommended Posts

File Name: AutoIt v3.3.9.7 Beta

File Submitter: Jon

File Submitted: 12 Jul 2013

File Category: Beta

AutoIt:
- Added: @OSVersion supports Windows 8.1
- Added: Regular expressions (PCRE engine) now using the new native 16bit mode and also compiled with UCP/UTF support.

- Fixed #1698: GUICtrlSetLimit(), limit 32767

- Changed: Lots of helpfile changes/fixes.
- Changed: Default manifest file on AutoIt and compiled exes is set for "AsInvoker" and tagged with compatibility for Vista/Win7/Win8 and Win8.1.

Aut2Exe:
- Added: OS manifest options now include Windows 8.1.

UDFs:
- Added #2354: _ArrayTranspose to the Array UDF.

- Changed: Array UDF now takes into consideration empty arrays.

• 1

##### Share on other sites

Something not quite right here. Tested on WIndows 7 x64 with AutoIt v3.3.9.7.

#include <Constants.au3>

; Doesn't work.
StringReplace('$S_OK', '$s_OK', '', Default, $STR_NOCASESENSEBASIC) MsgBox($MB_SYSTEMMODAL, '', '$s_OK: ' & @extended) ; Returns 0 ; Works. StringReplace('$S_OK', '$s_OK', '', Default,$STR_NOCASESENSE)
MsgBox($MB_SYSTEMMODAL, '', '$s_OK: ' & @extended) ; Returns 1

##### Share on other sites

I cannot hear any sound (midi or wave files) playing with this version.

Can somebody confirm?

Br,

UEZ

Edited by UEZ

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

##### Share on other sites

Try Autoit SysInfo Clock. About section plays a midi and alarm clock a wave (rmb on clock hovering date).

I cannot here anything. Meanwhile I will try to play a wave using SoundPlay()...

Br,

UEZ

Edited by UEZ

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

##### Share on other sites

Hmmm,

#include <Sound.au3>
$aSound = _SoundOpen("c:\Windows\Media\Windows Logon Sound.wav") _SoundPlay($aSound, 1)
_SoundClose($aSound) This works with 3.3.8.1 but not with this beta.... Strange! Br, UEZ Please don't send me any personal message and ask for support! I will not reply! The own fart smells best! Her 'sikim hıyar' diyene bir avuç tuz alıp koşma! ¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ #### Share this post ##### Link to post ##### Share on other sites Hmmm, #include <Sound.au3>$aSound = _SoundOpen("c:\Windows\Media\Windows Logon Sound.wav")
_SoundPlay($aSound, 1) _SoundClose($aSound)
This works with 3.3.8.1 but not with this beta....

Strange!

Br,

UEZ

Works with 64-bit version of AutoIt and 32-bit version. I wonder if others can reproduce your problem.

##### Share on other sites

I tested on XP 32bit, and it worked both in the stable and the beta.

√-1 2^3 ∑ π, and it was delicious!

##### Share on other sites

Is there a self extracting version of this beta? I don't have AutoIt installed on any computer, I'm using a portable version, and I can't run the installer for the beta without an installed version.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

##### Share on other sites

@BrewManNH: you can use 7-Zip to unpack the exe.

Seems to be a problem with my notebook. I will test it also on different machines...

Br,

UEZ

Edited by UEZ

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

##### Share on other sites

Tested on my other notebook and it plays the sound properly.

Br,

UEZ

Edited by UEZ

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

##### Share on other sites

@UEZ I have had no time to look at this recently but you might want to test the midi volume. Windows Media Player can reset the volume sometimes - rather naughty of Microsoft. I doubt it has anything to do with it, but it's something, I should have checked before attempting to play the midi.

;=======================================================
;Gets the Mixer Volume for MIDI
;Parameters - None
;Author : Eynstyne
;Library : Microsoft winmm.dll
;=======================================================
Func _MidiOutGetVolume ($devid = 0) Local$ret = DllCall("winmm.dll", "long", "midiOutGetVolume", "handle", $devid, "dword*",0) If @error Then Return SetError(@error,0,0) If$ret[0] Then Return SetError(-1,$ret[0],0) Return$ret[2]
EndFunc   ;==>_MidiOutGetVolume

;=======================================================
;Sets the Mixer Volume for MIDI
;Parameters - Volume (0 - 65535)
;Author : Eynstyne
;Library : Microsoft winmm.dll
;=======================================================
Func _MidiOutSetVolume($iVolume = 65535,$devid = 0)
Local $iMixVolume=BitAND($iVolume,0xFFFF)+BitShift(BitAND($iVolume,0xFFFF),-16) ; From Ascend4nt Local$ret = DllCall("winmm.dll", "long", "midiOutSetVolume", "handle", $devid, "int",$iMixVolume)
If @error Then Return SetError(@error,0,0)
If $ret[0] Then Return SetError(-1,$ret[0],0)
Return \$ret[0]
EndFunc ;==> _MidiOutSetVolume

Hmm, that can't be anything to do with it - I overlooked that you said it still works with v 3.3.8.1.

Edited by czardas

##### Share on other sites

Jon (Jos) you are doing it wrong with the manifest compatibility section. It's false that win8 compatibility implies win7 or vista comatibility. It doesn't work that way. We talked about this before but it seems you ignored me.

Generally speaking application written or tested on specific system should get compatibility entry (only) of that system-s. Otherwise there could be different issues running it on future systems. I can show you script examples where this is the case. This is good read.

.

eMyvnE

##### Share on other sites

I didn't ignore, I disagreed  AutoIt is tested as running on vista, win7, win8 and it manifested as such. Compiled .exes by default are also treated the same. If a user wants to do crazy winapi stuff or dllclls that break that then they have the option to tag the exe with a different manifest.

I can possibly see a case where for a compiled exe that you might want to have something purely manifest with a win8 one, but even then vista is also automatically implied so you'd end up with a file that was tagged vista+win8. Which is weird. Such a file would run on vista in vista mode, windows 7 in vista mode, and windows 8 in win8 mode. So it makes more sense for me to use the option as a "highest tested" one.

An app can specify multiple supported operating system IDs. You should add a supported operating system ID if you have tested, or are in the process of testing, the app on that operating system. Windows Vista and prior operating system versions do not pay attention to these entries. Starting with Windows 7, Windows will choose the highest version GUID in the manifest up to the running Windows version, and give the app support at that level. To verify that the app works with the new app manifest compatibility section

##### Share on other sites

I can possibly see a case where for a compiled exe that you might want to have something purely manifest with a win8 one, but even then vista is also automatically implied so you'd end up with a file that was tagged vista+win8. Which is weird. Such a file would run on vista in vista mode, windows 7 in vista mode, and windows 8 in win8 mode. So it makes more sense for me to use the option as a "highest tested" one.

But the thing is that existence of win8 entry shouldn't automatically imply existence of vista entry. And you are doing that now.

Take for example this simple code:

FileChangeDir(@DesktopDir)
FileCreateShortcut(@AutoItExe, ".\ee.lnk")

Disregard for a second fact that I'm calling the built-in createscortcut function wrong. But really, that's irrelevant for what I'm showing.

That code will run successfully on Vista and Windows 7 by default. It won't work on Windows 8 if user specifies win8 compatibility, it will work on Windows 8 if user specifies vista compatibility but not win8 compatibility, etc, etc.

Edited by trancexx

.

eMyvnE

##### Share on other sites

But the thing is that existence of win8 entry shouldn't automatically imply existence of vista entry. And you are doing that now.

I'm not say I'm implying vista by tagging it for win8, I'm saying its an OS thing. Win7 implies Vista automatically if there is no Win7 tag. Win8 implies vista if there is no win8 tag/no manifest.

For a file with a single Win 8 manifest it runs as follows:

Vista = Vista mode

Win 7 = Vista mode

Win 8 = Win 8 mode

For a file with a single Win 7 manifest it runs:

Vista = Vista mode

Win7 = Win7 mode

Win8 = Win7 mode

For a file tagged with everything (current default)

Vista = Vista mode

Win7 = Win7 mode

Win8 = Win8 mode

Edited by Jon

##### Share on other sites

^^ So how do I get single Windows 8 compatibility entry?

I tried:

#pragma compile (compatibility, win8)

That's what I'm saying, nothing more. Author of the compiled script (me) should be the one who chooses what's going in, not you. That should be their (my) responsibility.

.

eMyvnE

##### Share on other sites

I'm saying how it works in general not really AutoIt related.

I want AutoIt3.exe and Compiled.exe to behave the same by default.  I want to avoid as much as possible the scenario where something won't run properly when run though AutoIt3.exe and you have to compile it with a specific manifest.

There are a few type of options for that and all have pros and cons. Such as:

AutoIt3.exe/Compiled.exe = no manifest, runs as a Vista program on all OSes

Pros: Simplest solution, user can tag for a later OS on compiled scripts

Cons: AutoIt3.exe can't do Win8 stuff, GetVersionEx lies, DWM disabled, etc. Compiled.exe can be tagged for Win8 but will then work differently to the uncompiled script.

AutoIt3.exe/Compiled.exe = Win7 manifest, runs as a Vista program on vista, Win7 on Win7/8/8.1

Pros: halfway solution, user can tag for a later or earlier OS on compiled scripts

Cons: Same as previous.

AutoIt3.exe = Win7+Win8 manifest, runs as a Vista program on vista, Win7 on Win7, Win8 on Win8

Compiled.exe = No manifest by default, runs as a Vista program

Pros: AutoIt3.exe is never downgraded on current OSes, user can tag for a later or earlier OS on compiled scripts

Cons: Some functions in AutoIt may need to be tweaked if they aren't working correctly on Win8. User may need to do different things to cater for different OSes. Compiled and uncompiled scripts will work differently by default.

AutoIt3.exe/Compiled.exe = Win7+Win8 manifest, runs as a Vista program on vista, Win7 on Win7, Win8 on Win8

Pros: AutoIt3.exe is never downgraded on current OSes, user can tag for a later or earlier OS on compiled scripts

Cons: Some functions in AutoIt may need to be tweaked if they aren't working correctly on Win8. User may need to do different things to cater for different OSes.

Based on that I have concluded that:

- There's no solution that will suit everyone

- The option to pick and choose single manifests results in too many unexpected scenarios as in the table in the previous post. It's simpler to force a general level.

- I want AutoIt3.exe to run without getting downgraded on Win8.

- I don't want to have to compile a script in order to run without getting downgraded on Win8

##### Share on other sites
This topic is now closed to further replies.

×

• Wiki

• Back

• Git