- Clone? XY64contents.exe is NOT identical to XY64ctxmenu.exe, they are totally different.
- I can compile AHK scripts myself. Would you say that using a non-compressed EXE would be notably faster?
- Thanks for the links.
Doh... my bad, i decompiled the XY64contents twice
No. There will be a gain in time, but negligibly small.Would you say that using a non-compressed EXE would be notably faster?
Okay.... not sure how to make use of this.highend wrote: ↑10 May 2022 12:47This stores it's own hwnd...Code: Select all
DetectHiddenWindows, On ownHWND := WinExist("Ahk_PID " DllCall("GetCurrentProcessId"))

It's not that difficult.Well, assuming I know AHK
wm_copydata (and you receive it on XY's side via receive_wm_copydata).XY64ctxmenu.exe "E:\XY\XYplorer.dev\code\appdata\Temp\~XY517C.tmp") that contains all selected items, again full path and one per line, that the menu should be shown for. The only other call is to shut it down on app exit: XY64ctxmenu.exe -quitAlmost forgot that I have implemented this already within scripting:Antieve wrote: ↑05 May 2022 21:32 2. I have read the branches about the x64 version of the XY and on the whole I tend to agree that there is no special need to rewrite it.
BUT there is a huge fundamental omission in XY with starting executables, scripts etc because it starts the process directly without changing the environment for the child.
The environment variables are all WRONG for a 64-bit process (inherit from the current x32 process).
By default, a child process inherits a copy of the environment block of the parent process so we must rewrite them (tricky way) or just "proxify" to XY64ctxmenu.exe (exactly what happens when you start it with the context menu).
File --> DoubleClick --> CreateProcess = BAD File --> RMB+Open --> XY64ctxmenu.exe --> CreateProcess = GOOD
I don't see cases where we would want to run with a x32 environment on a x64 machine so it's strange to see that there is no "permanent redirection" (this would have closed all the cases with the advantage of the x64 version).
Of course, launching every executables and scripts via the context menu is a crutch and nobody cannot constantly keep in mind that some files cannot be launched in the usual way (or it may lead to unpredictable consequences).
Thx.
open64; will open the currently focused and selected file in a 64-bit process. Here's the original change log:Code: Select all
v21.10.0025 - 2020-09-29 16:06
+ Added SC open64 for debugging. Opens a file from XY64.exe, i.e. from a
64-bit process.
Examples:
open64; // Opens the selected file
open64 "C:\Users\Donald\Desktop\Desk\Diana Rigg.jpg";
I have implemented this already
It seems that half of the time is spent writing to the file and the other half is reading (+ parsing with regular expressions) in ahk.a temporary text file

So, does
open64; work for you? Does it make a difference?