shell-extensions

Windows shell extension with C#

纵然是瞬间 提交于 2020-01-26 08:46:09
问题 I was wanting to write a simple windows shell extension to add to the context menu, and C# is the language I most use these days. Is it a decent choice for a shell extension? Are the interfaces easy to get to with it? Is there additional overhead that causes the menu to be slower to pop up? Any one have good pointers for getting started? 回答1: A Raymond's post: Do not write in-process shell extensions in managed code. A recent follow-up: Now that version 4 of the .NET Framework supports in

How can I write a Windows Shell Namespace Extension in Delphi?

前提是你 提交于 2020-01-12 10:21:18
问题 First, sorry for my poor English... I want to add a virtual folder to Windows Explorer using a Namespace Extension (NSE), and I want users to be able to open this virtual folder to explore some path (e.g., c:\test ). How can I do this using Delphi? Thanks. 回答1: The place to start is the MSDN documentation: Introduction to the Shell Namespace. Naturally this is written from a C++ perspective but it's not too hard to map that across to Delphi. Another excellent resource for such tasks is Code

Debugging shell extension in Windows 7

怎甘沉沦 提交于 2020-01-12 03:16:23
问题 I'm trying to debug shell extension (IContextMenu) in Windows 7 with Visual C++ 2008. I have set DesktopProcess=1 in the registry and set host app to explorer.exe. But when I start the debugger, it launches explorer.exe and then detaches from the process. DllMain of the shell extension isn't called. The same code with exactly the same settings launched in debugger without any problems in Windows XP + Visual C++ 2008. Any thoughts how to debug the shell extension in Win7? 回答1: Try launching

Debugging shell extension in Windows 7

青春壹個敷衍的年華 提交于 2020-01-12 03:14:06
问题 I'm trying to debug shell extension (IContextMenu) in Windows 7 with Visual C++ 2008. I have set DesktopProcess=1 in the registry and set host app to explorer.exe. But when I start the debugger, it launches explorer.exe and then detaches from the process. DllMain of the shell extension isn't called. The same code with exactly the same settings launched in debugger without any problems in Windows XP + Visual C++ 2008. Any thoughts how to debug the shell extension in Win7? 回答1: Try launching

cannot get the path for the virtual folder on windows 7 C++(shell namespace extension related)

亡梦爱人 提交于 2020-01-03 04:50:06
问题 By using Microsoft windows SDK 7.0, explorerDataProvider, I installed a virtual folder on windows 7. When I open the file browse dialog from an application, CFileDialog dlg(TRUE, NULL, 0, OFN_ENABLESIZING | OFN_ALLOWMULTISELECT, L"all(*.*)|*.*||", this); INT_PTR result = dlg.DoModal(); if (result == IDOK) { . . . //some actions } it can also display the virtual folder: But when I select the file, like "Zero" can then clicks "Open", I tried to add breakpoints to INT_PTR result = dlg.DoModal();

In-Proc SxS opens for shell extension in managed code?

强颜欢笑 提交于 2020-01-02 04:52:11
问题 The recommendation used to be "Do not write in-process shell extensions in managed code." But with .NET Framework 4 and In-Process Side-by-Side the main reason not to write shell extensions in managed code should be resolved. With that said, I have three questions. Is it now okay to write shell extensions in managed code? Which problems, if any might there be with writing shell extensions in managed code? What reasons might there be to write shell extensions in unmanaged code? 回答1: It is now

Refreshing a folder that doesn't exist in the file system

偶尔善良 提交于 2019-12-25 04:12:17
问题 In my shell extension I have folders that don't actually exist in the file system, but only appear so to the user. When the content of those folders is changed, I want to refresh them, and currently I do it in the same method I do for regular folders: Win32.SHChangeNotify(SHCNE_UPDATEDIR, SHCNF_IDLIST | SHCNF_FLUSH, PIDL, IntPtr.Zero); Whereas PIDL is a list of shell folders IDs, as required by SHCNF_IDLIST . The problem is that explorer doesn't handle my non existing folders. Instead of

How do you handle rename operations when calling IContextMenu?

半腔热情 提交于 2019-12-25 04:09:15
问题 I'm calling IContextMenu::QueryContextMenu with CMF_CANRENAME and I'm having problems handling the rename operation when calling IContextMenu::InvokeCommand on Windows XP. I'm not a namespace extension and I'm not using DefView/IShellView but I am providing a site that implements IServiceProvider . On newer versions of Windows I'm queried for a service that implements IFolderView2 and the shell calls IFolderView2::DoRename and I can start the rename operation. On Windows XP however it queries

Get explorer.exe to load my extension from startup

爱⌒轻易说出口 提交于 2019-12-25 01:27:29
问题 Context to prevent an XY Problem: (Because there very well might be a simplier solution) My goal is to track explorer.exe 's file movement when the user drags files around (as well as uses clipboard cut and copy stuff). I tried to solve this with a Windows Shell Extension, however the interfaces that I implemented never seemed to do trigger. I followed this guide from CodeProject which worked beautifully. However, when I implemented the IFileOperation interface, none of my functions were ever

Debugging shell extensions in Win 7 and 8.1

可紊 提交于 2019-12-24 12:34:17
问题 I would genuinely appreciate help with this. I have spent hours trying to solve it. I wrote a small extension with VCPP6 (yes, I know. no need to tell me) to display the content of a particular DOS file as a thumbnail in Explorer using IExtractImage under XP. Debugging proved easy - I shut down explorer and hit F5. Clicking a file of the desired type resulted in a thumbnail. Breakpoints all active. Upgrading to VS2012 (same happens with VS2013 Express) and using IThumbnailProvider, the same