-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Separate location for log files ? (and exclusions?) #108
Comments
Hi. Thank you for showing interest in ShellAnything.
Waiting for your feedback. |
Also, if you like ShellAnything, please consider leaving a star to the project. I think this is the best way to increase the visibility of the project. |
@end2endzone Thank you for answering..
I think the easier way to go would be to move the "Logs/" directory to %LOCALAPPDATA%\ShellAnything\Logs and leave the config files on %USERPROFILE%\ShellAnything (or put them in the roaming directory: "%APPDATA%\ShellAnything").
Yes, I did try a junction from "%OneDrive%\CloudAppData\ShellAnything" and the Logs folder prompted sync errors in OneDrive. It happened exactly what you described: it identified files as "in use" and made some warnings. This is usually harmless, but I've had some experience with this. First, the warnings are there, always and forever. Then it could happen that, if there are enough sync issues in queue the sync process can actually fail altogether, it freezes completely. They pile up.
Thank you. I will try this and get back to you with a comment (next week possibly, sth personal just came up that I have to deal with). It will certainly be very useful. Is one thing I could not make work with KuShellExt. If there's an inverse or negated parameter I could not find it documented. Whatever I put in "folders" shows up also on the Desktop. In this image you can see some options that I intend to use only on folders (like "IDE from here", "Shell from here", "Manage Folder", "Manage Images"), but not from the Desktop where they occupy screen real state and add up to the apparent limit for contextual objects. I can use these programs on any computer because they're all in a OneDrive folder, so I don't have to update every one of them, every time a new version comes up. It helps with consistency. Then the Start menu is left for programs that require installation like Office or Adobe Software.
I might be able to write up something once I'm more familiar with ShellAnything.
As for how KuShellExt handles parameters: with %* all parameters are sent at once to the program, when filenames contain spaces double quotes are added; and with %@ the program is executed once for each parameter. There are also other options like: %1 %2 %3 ... %9; built-in variables like: ${env:Desktop} ${env:ProgramFiles} ${env:Downloads}; and environment vars can be used like; ${env:JAVA_HOME} ... Classes are somewhat similar to what I read with ShellAnything: ".ext" ".*" ".folder" "drive" "drive:removable" "drive:fixed" "drive:network" "drive:optical" "drive:ramdisk" "at:PATH" "in:DIR" I hope this helps.. |
Hello again.. After some trial and error I made it work so the menu opens in all folders, excluding the Desktop:
Which is awesome :) .. But some questions arise.. [== 1 ==]
To:
And it worked, the context menu in folders shows up above the AntiVirus scan, which is what I want.. but will this keep working? would the extension restore or create the original registry entry at some point?.. If so, can the change be made permanent? [== 2 ==] [== 3 ==]
I tried it but it didn't work, I got this in the log:
But it works with a single selection (any of the same folders I tried with the multiple selection).. [== 4 ==] For what I've been able to see, ShellAnything has an edge in memory usage in comparison with KuShellExtension (which works great when the config file is left alone, but seems to have some sort of incremental memory leakage after each configuration update – a restart of explorer.exe or the OS is often required after about 20 or so updates). However, I think the verbosity of ShellAnything makes it difficult to implement. A 900 line config file could easily become 10.000 lines or more. BTW!.. log files.. VERY useful.. Hoping to read your feedback.. Have a nice weekend !! |
Thank you for the feedback. Much appreciated. [== 1 ==] However, if you try to unregister, the shell extension will expect the registry key to be named
Just to be clear, are you asking to rename the extension to [== 2 ==] Until then, you could implement our own executable that spawn your final process and hide the console. [== 3 ==] <message title=""${selection.path}"" /> I also created the following Configuration example which is using Visual Studio Codium instead of Visual Studio Code (both software have the same code base) : <?xml version="1.0" encoding="utf-8"?>
<root>
<shell>
<menu name="Open with VSCodium">
<icon path="C:\Program Files\VSCodium\VSCodium.exe" index="0" />
<visibility exists="C:\Program Files\VSCodium\VSCodium.exe" />
<actions>
<property name="selection.multi.separator" value="" "" />
<message title=""${selection.path}"" />
<exec path="C:\Program Files\VSCodium\VSCodium.exe" arguments=""${selection.path}"" />
<property name="selection.multi.separator" value="${line.separator}" />
</actions>
</menu>
</shell>
</root> And clicking on 4 files actually show the expected message: Maybe you are having an issue since your Windows copy is Spanish. Or because the path to "D:\USER\OneDrive\Programs\VSCode\Code.exe" is incorrect. Its hard to say from my point of view. The message you see in the logs is one reported by your Operating System, not from ShellAnything. I suggest you try again. Also debugging visually with the [== 4 ==]
Looking at how many menus you have in your screenshot above, I have no doubt about this! I have created #109 as a suggestion to reduce the amount of logging. I suggest you add a comment for feedback or another idea to solve the problem in order to keep track of the progress about this problem and receive a notification when it will be resolved.
Respectfully, I disagree since I do not think this is necessary. Like I said in 3, please try again. Other users has confirmed this issue working on their side. See #87 and #52 for details. If the issue persist, create another issue and I will request help from other users that have a non-English Windows. I have also created #110 which once available, could help other in the same situation. Again, I suggest you add a "dummy comment" just to get a notification when it will be resolved. Thank you again for all your help and suggestion. It is much appreciated. I did not know about KuShellExt before I started this project. I am glad to see that most features can be mapped to ShellAnything because people seems to be migrating from KuShellExtension to ShellAnything. This means the application is "mature" (kind of) and can be used by a lot a people - from multiple locations - speaking different languages. |
Yes.. First "shell" entries and then "shellex\ContextMenuHandlers".. And also counts where in the registry they're loaded from. If I'm not mistaken "Classes\Directory" goes before "Classes\Folder". However, there's also the possibility that this order can be overridden in shell extensions, but I'm not sure at this time.
Ok. I tested this. I unregistered the ShellAnything extension (having the renamed registry key) and it was done correctly. As you mentioned the "aShellExtension.ShellAnything" key was NOT REMOVED, but the extension was SUCCESSFULLY UNREGISTERED and context menus DISAPPEARED. Then I registered again ShellAnything and the "ShellExtension.ShellAnything" registry key was created again, so now there were two registry keys for ShellAnything but only one context menu, and is loaded in the position of the first appearance in the registry (the one I renamed). I checked loaded shell extensions in the system and "ShellAnything Class" is loaded only once. So it's posible it would be harmless to have both registry keys, but I could just update the register script to remove duplicated entries for ShellAnything.
No. I don't think it would be a good idea to rename the application registry key to satisfy one user's request. Some users might want it on top, others right where it is. I do think other users might find this information relevant (that it is indeed possible to change the menu position but not supported). I was asking in case there was such an option to rename the key or change the context menu location. But I got the answer, and a workable solution.
I try to keep my context menus as clean as possible. I have a script that keeps disabled a bunch of shell extensions in the registry. Anyways, in this case I just want ShellAnything menus to appear above the antivirus and a separator.
Understood!. Regarding the "Logs" directory, I still think it would best if it was located within LOCALAPPDATA. If I'm not mistaken I think it could be implemented with one (or a few) lines of code.
Ok. I will definitely create the new issue.
A Halloween Mystery. Every path I try work when there's only one argument sent, but fails when there's more than one.
To be clear. When I said "verbose" I meant for the config file, specifically for the use of three lines in the XML file in order to be able to handle multiple arguments, each time.
Ok. I understand.
Thank you, for your work. |
I just found out about this extension by mere chance.. I've been using KuShellExtension for a few years now, which has been very useful and works very well, but hasn't been updated in over 10 years. This extension looks like the perfect replacement, but it would take me while to convert from KuShellExt to ShellAnything (my KSE config file is about 900 lines).
I'd like to ask a couple questions if that's ok..
Is there a way to change the location for the logs folder, or the location for the config files without the logs?.. I ask this because I share the Windows context menus among several computers by putting the KuShellExt config file in a cloud folder. I could implement a junction with the ShellAnything config folder, but it contains log files with file locking that will interfere with proper cloud synchronization and will prompt sync errors.
Is there a way to add a context menu to all folders but exclude the Desktop?
The text was updated successfully, but these errors were encountered: