Jump to content

Recommended Posts

Version 2.2.5 works well on my machine, from both script and compiled versions. When I put a compiled version on a colleague's machine, he gets an error.

Line 808 (File "c:\Documents and Settings\...\desktop\CodecControl.exe"):

Error: The requested action with this object has failed.

Link to comment
Share on other sites

  • Replies 85
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

I wanted to check one particular 32bit codec and couldn't if running script with x64 AutoIt (double-click). It lists wrong and I can't see any remark in the code or the thread about that.

There kinda is, but not very obvious.

If I may suggest:

Local $Wow64
If @AutoItX64 Then $Wow64 = "\Wow6432Node"
$odX86 = _DirectShowFilters()
$odX86.SetUp("DirectShow Filters (x86)", "HKLM\SOFTWARE" & $Wow64 & "\Classes\CLSID\{083863F1-70DE-11D0-BD40-00A0C911CE86}\Instance\", "_UnregisterCallBackX86")

That should work regardless of the bitness of the system or AutoIt. Same goes for any other similar thing.

Yes I may aswell implement x64 support, I just need to figure out how to read everything, that thing you posted just reads the x64 registry (I didn't expect that).

Btw, do something with your beard.

I can't decide what to do with it. Stubble or chave completely.

edit: and thanks.

For which? :)
Link to comment
Share on other sites

Version 2.2.5 works well on my machine, from both script and compiled versions. When I put a compiled version on a colleague's machine, he gets an error.

Line 808 (File "c:\Documents and Settings\...\desktop\CodecControl.exe"):

Error: The requested action with this object has failed.

Is that when he starts it or when he presses a button? (which button?).

Since it's a object it got to be something with AutoItObject. Maybe the RegRead(), they lack error-checking (many things do actually, but you know that, you have the source).

I know I can get the "compiled line" from obfuscator, but can't remember how. Tried some things but line 808 was never anything interesting. Did you change any of the au3wrapper commands so the lines moved? (I see that the exe filename is not what i set)

Until we figure out something better, can you ask your colleague to create a file called "Log" (no extension) and then post what it contains after he starts and crashed the app once?

Link to comment
Share on other sites

For the script.

Oh you're welcome :)

I think it's starting to shape up quite nicely compared to more established tools like InstalledCodec. InstalledCodec has so many extra features it makes you feel bloated and dirty, here the simplicity of CodecControl could actually be a winner.

I'm thinking I should upload to some software sites soon (download.com?). Just needs some more error-checking. And a icon for the exe.

Link to comment
Share on other sites

@wraithdu

Should be fairly easy, we are only talking 8 RegRead/RegWrite/EnumKey so it isn't exactly much to write, and the syntax of your functions looks easy enough.

Being able to use HKLM32 sounds like it would simplify alot (I still haven't decided what trancexx code is doing).

I will try it out, like, now.

:)

Link to comment
Share on other sites

Regarding what trancexxx said:

On 64bit windows, registry keys for certain branches that are used by 32bit programs are stored under the Wow6432Node keys. So for a 32bit program's entries in HKLM\Software for example, they actually exist under HKLM\Software\Wow6432Node. But for a 32bit program, this translation is transparent. So when it accesses HKLM\Software, it is transparently redirected to HKLM\Software\Wow6432Node.

For a 64bit program, in order to access the 32bit software keys, it must specifically use HKLM\Software\Wow6432Node.

For AutoIt: A 64bit script would use HKLM\Software for 64bit keys, and HKLM\Software\Wow6432Node for 32bit keys. I do not believe there This is NOT such a thing as HKLM32\Software for a 64bit script to access 32bit keys. A 32bit script would use HKLM\Software for 32bit keys and HKLM64\Software for 64bit keys.

Confusing enough?

My functions get around it by specifically setting flags for which keys to access, and they work independent of the bitness of the actual script. This allows you to use HKLM32\Software or HKLM64\Software without using the Wow6432Node notation.

Edited by wraithdu
Link to comment
Share on other sites

But I have Win7 too.... :)

Anyway, I tried your UDF, works beautifully! A little slowdown but we can live with that for now. This is AutoIt after all :)

Wait, there's actually one problem. Win2000 support. Windows 2000 doesn't support the alternative registry view thing, see here (<-- link).

I think I'll do something like trancexx showed, but for @OSVersion and Win2k. Easy peasy.

Edit: fix'd

Edit2: I've a suggestion for your Registry functions UDF, add a statement, "Windows 2000 is not supported", and/or link to a article that explains it (like the one above). Just in case some other person want Win2k support and isn't aware of the problem like I'm.

Edited by AdmiralAlkex
Link to comment
Share on other sites

Does the function actually return an error and fail? That's odd behavior from MS. Usually when it comes to flag parameters unsupported flags are just ignored.

Eh, either way, you can still use my functions, you'll just have to filter out the 32/64 on win2k.

Link to comment
Share on other sites

Is that when he starts it or when he presses a button? (which button?).

He says that it happens when he starts it. He has already deleted it, so I will see about re-copying it to him and having him run it with the log.

I did rename it to remove the version number from the name. The compiler directives are as follows:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseX64=n
#AutoIt3Wrapper_Res_Fileversion=2.2.5.0
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

--- Edit ---

Ok. I recopied the exe to his desktop, and created the "log" file. It ran without errors. The only change to his system that he is aware of is that he ran a registry defrag on it during lunch. Go figure.

He loves the new version now.

Edited by willichan
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...