Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否可以使windows资源管理器上下文菜单同时与文件扩展名和查看内容的结果相关联?_C#_Windows_Explorer - Fatal编程技术网

C# 是否可以使windows资源管理器上下文菜单同时与文件扩展名和查看内容的结果相关联?

C# 是否可以使windows资源管理器上下文菜单同时与文件扩展名和查看内容的结果相关联?,c#,windows,explorer,C#,Windows,Explorer,我想知道是否可以编写一个上下文菜单扩展名,在右键单击时打开文件并查看前几个字节,从而更改显示的结果菜单项。是的,这是可能的 上下文菜单外壳扩展允许您实现一个接口,一旦注册,系统将调用该接口来确定要显示的菜单项。在通话过程中,您可以打开文件、读取数据并有选择地选择要显示的菜单项 我建议不要在C语言中这样做,而其他接口的设计更适合C++实现。 编辑:微软正式发布。当然有可能。你看到它一直在做。但这是非常糟糕的做法。如果我做了一个将元数据写入数据库的服务,你认为连接+查询开销可以接受吗?我仍然认为这不

我想知道是否可以编写一个上下文菜单扩展名,在右键单击时打开文件并查看前几个字节,从而更改显示的结果菜单项。

是的,这是可能的

上下文菜单外壳扩展允许您实现一个接口,一旦注册,系统将调用该接口来确定要显示的菜单项。在通话过程中,您可以打开文件、读取数据并有选择地选择要显示的菜单项

<>我建议不要在C语言中这样做,而其他接口的设计更适合C++实现。
编辑:微软正式发布。

当然有可能。你看到它一直在做。但这是非常糟糕的做法。如果我做了一个将元数据写入数据库的服务,你认为连接+查询开销可以接受吗?我仍然认为这不是一个好主意。如果数据库坏了,你就失去了菜单。。当连接试图超时时,您的使用最多会等待10秒,最坏的情况是浏览器崩溃。如果您必须读取文件内容/访问资源,可能shell上下文菜单是错误的UI选择。虽然有可能,但不建议这样做,因为这意味着您在UI线程上访问磁盘,这可能会导致挂起。(想象一下,如果文件在世界上一半的网络服务器上,或者如果它已经被存档到磁带上。)同样,MS官方不支持用托管的CODDESIDES来编写shell扩展,而不是支持它,它已经多次显示(将谷歌的搜索)注入到Exchange中的.NET依赖是一个坏主意。我对C++很好,但我很高兴我问这个问题时带了c#标记,所以我知道不要尝试c#