标签: windows-shell

与Windows Shell集成

好,

我想创建一个位于文件菜单中的Windows shell扩展,就像"Tortorise SVN"菜单一样.

有谁知道我的开始,一篇好文章,或实现什么接口?

谢谢!

windows windows-shell shell-extensions

6
推荐指数
1
解决办法
356
查看次数

以编程方式从.NET访问"打开方式"Windows资源管理器菜单列表

在Windows资源管理器中右键单击文件时,"打开方式"菜单项会根据所单击文件的文件类型显示可用应用程序列表.

以此图为例:

在Windows资源管理器中"打开"上下文菜单http://magerquark.de/data/misc/open-with.png

现在,我希望能够以编程方式从C#.NET 2.0应用程序中读取给定文件扩展名/类型(例如"png")的应用程序列表.

例如

public class FileOpenInfo
{
    public string ApplicationName { get; }
    public string ApplicationPath { get; }

    public static FileOpenInfo[] GetInformation( string extension );
}
Run Code Online (Sandbox Code Playgroud)

题:

是否有可能获得此列表?

.net c# windows-explorer windows-shell

6
推荐指数
1
解决办法
1734
查看次数

如何从WPF应用程序访问Windows文件预览图标

我在目录中收到了一堆图片和视频,需要在WPF应用程序中显示,我正在考虑将Win7 Large Icon本身显示为预览图像.因为这样可以节省我从视频文件中获取适当帧的工作,因为Windows已经很好地完成了这项工作.用于访问此Shell图像数据的任何代码段?

wpf windows-shell thumbnails

6
推荐指数
1
解决办法
3416
查看次数

C#:如何使用SHOpenFolderAndSelectItems

有人可以举例说明如何使用来自C#的shell函数SHOpenFolderAndSelectItems吗?我不太懂得如何使用这些函数而无法在pinvoke.net上找到它... = /

说我有三个文件叫

  • X:\Pictures\a.jpg
  • X:\Pictures\s.jpg
  • X:\Pictures\d.jpg

然后我想打开X:\Pictures文件夹a.jpg,s.jpg然后d.jpg选择.

c# pinvoke file windows-shell

6
推荐指数
3
解决办法
4020
查看次数

如何调整Windows图标叠加的大小?

我为我的文件制作了一个图标叠加层*.myfile,但叠加层大小错误.当图标显示为16x16大小时,叠加层将覆盖图标.

如何更改叠加尺寸?(IShellIconOverlayIdentifier)

左边是我的,右边是tortoisesvn

c# windows windows-shell shell-icons

6
推荐指数
1
解决办法
1954
查看次数

如何打开服务属性对话框

我想在我的应用程序中添加一个按钮(服务的前端),它将为我的服务打开服务属性对话框(如服务mmc snapin).

打开文件属性有很多例子,但这不是我想要的.我不知道从哪里开始.

c# service dialog shellexecute windows-shell

6
推荐指数
2
解决办法
1257
查看次数

如何使用Windows Shell API解析探索器痕迹路径,如"此PC\Galaxy Tab A\Card\Folder1"?

当用户在Windows资源管理器中导航到例如他的Android手机的SD卡上的文件夹时,资源管理器会显示一种痕迹路径,就像"This PC\Galaxy Tab A\Card\Folder1"在地址栏中单击一样.

在地址栏中输入或复制它们并按回车键时,Windows资源管理器也接受这些路径.

我想知道是否有办法使用Shell API解析这些面包屑路径并获得PItemIDListIShellItem作为回报.到目前为止,我没有成功使用eg SHParseDisplayName().这段代码

LPITEMIDLIST itemidlist;
HRESULT hr = SHParseDisplayName(L"This PC\\Galaxy Tab A\\Card\\testfolder", NULL, &itemidlist, 0, NULL);
Run Code Online (Sandbox Code Playgroud)

回来0x80070002HRESULT.

问题SHParseDisplayName当路径不存在这样一个问题涉及如何使用IBindCtx解析到一个并不存在的文件的路径.这可以使用STR_FILE_SYS_BIND_DATA绑定上下文来完成.但是移动设备上的对象不是文件系统数据,而且它们已经存在,所以我不明白为什么这是重复的.

windows winapi windows-shell

6
推荐指数
0
解决办法
248
查看次数

用什么语言编写windows shell扩展

我知道如何在python中编写shell extesions.
缺点是

  • 它不适用于64位Windows
  • 我不确定每次"发生"时创建python进程会降低性能.

我知道如何使用.Net(C#)编写shell扩展
.缺点是

  • MS气馁
  • 我不确定这会如何降低性能.(可以?)

我看过用(免费)pascal写的shell扩展.

  • 使用这种方法有缺点吗?
  • 这适用于64位窗口.

显然,可以使用c或c ++编写shell扩展

  • 嗯......我还在尝试理解c和c ++中的com ....

还有哪些其他选择,还有哪些其他语言?
他们有缺点吗?

windows com windows-shell

5
推荐指数
1
解决办法
755
查看次数

如何刷新 Windows 资源管理器

在此处输入图片说明

网络卷的名称可以更改。
我把名字改成了脊椎盘
在此处输入图片说明

在此处输入图片说明

要更改网络名称,我会

  • 在注册表中写入新名称。
  • 使用DefineDosDeviceW 之类的功能附加我的网络卷。在这个时候,Windows 资源管理器在我的猜测中读取了注册表。
  • SHChangeNotify(SHCNE_DRIVEADD, SHCNF_PATH, root, NULL); // 为了确定。
  • SendMessageTimeout(HWND_BROADCAST, WM_DEVICECHANGE, message, (LPARAM)(&dbv), - SMTO_ABORTIFHUNG, 200, &dwResult); //再次确定!

它有效,但有时即使我使用 SHChangeNotify 和 WM_DEVICECHANGE 也无效。有时,新名称不会应用到 Windows 资源管理器中。
但是,如果我终止 Explorer 并重新执行,则会应用该名称。

我正在寻找一个刷新Windows资源管理器的界面。(语法正确吗?对不起,我不能很好地表达这句话。)
有没有合适的功能?资源管理器应重新读取注册表并刷新。

windows com winapi windows-explorer windows-shell

5
推荐指数
1
解决办法
5066
查看次数

如何将有空间的目录路径传递给windows shell?

我正在使用IEcapt.exe来捕获网站快照.问题是,它无法处理有空间的路径目录.像这样:

c:\program files\
Run Code Online (Sandbox Code Playgroud)

我有什么方法可以通过这样的目录来使它工作吗?

windows windows-shell

5
推荐指数
1
解决办法
4万
查看次数