Opened 14 years ago
Last modified 13 years ago
#1901 closed Bug
Compiled 32bit scripts not working in system32 path on 64bit OS — at Version 3
Reported by: | Highguy | Owned by: | |
---|---|---|---|
Milestone: | 3.3.9.5 | Component: | AutoIt |
Version: | 3.3.6.0 | Severity: | None |
Keywords: | Cc: |
Description (last modified by Valik)
Heavily re-written by Valik:
32-bit scripts do not run from system32 on 64-bit Windows. This is because AutoIt has redirection enabled so the system calls to read the script from the file are sent to SysWOW64 which does not contain the file. There are two solutions:
- Temporarily turn off redirection at startup so AutoIt sees real paths (I assume this is possible, I'm a bit fuzzy on the API). Turn on redirection once the script is loaded but before user code is executed.
- Load the script directly from memory. This is the better solution but should be done as part of a larger change to how scripts are loaded. Specifically a byte-code compiled form of script should be loaded by Windows with the rest of the binary where it can then be executed directly from memory. Scripts probably need stored as a resource for this to work. This makes fixing this bug dependent on a change that has no current plans.
Finally, this bug should also affect FileInstall(). The first solution may need applied to FileInstall() (Perhaps via an option). The second solution is not viable for FileInstall() because we don't want to load potentially massive files in memory at process start.
Link to the original topic.
Change History (3)
comment:1 Changed 14 years ago by anonymous
comment:2 Changed 14 years ago by Emiel Wieldraaijer
Forgot my name on the above message
comment:3 Changed 14 years ago by Valik
- Description modified (diff)
- Summary changed from Compiled 32bit scripts not working in system32 path on 64bit OS? to Compiled 32bit scripts not working in system32 path on 64bit OS
I believe you mean this http://www.autoitscript.com/trac/autoit/ticket/1792