相关疑难解决方法(0)

查找在Windows上打开特定文件类型的默认应用程序

我正在使用C#开发一个面向.NET Framework 2.0的应用程序,我需要能够找到用于打开特定文件类型的默认应用程序.

我知道,例如,如果您只想使用该应用程序打开文件,您可以使用以下内容:

System.Diagnostics.Process.Start( "C:\...\...\myfile.html" );
Run Code Online (Sandbox Code Playgroud)

在默认浏览器中打开HTML文档,或

System.Diagnostics.Process.Start( "C:\...\...\myfile.txt" );
Run Code Online (Sandbox Code Playgroud)

在默认文本编辑器中打开文本文件.

但是,我希望能够在默认文本编辑器中打开不一定具有.txt扩展名的文件(例如),因此我需要能够找到打开的默认应用程序. txt文件,这将允许我直接调用它.

我猜测有一些Win32 API,我需要P/Invoke才能做到这一点,但是对谷歌和MSDN的快速浏览并没有发现任何有趣的东西; 我确实找到了大量完全不相关的页面,但没有像我在寻找的那样.

.net c# windows file-type

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

在C#中使用IApplicationActivationManager :: ActivateApplication?

我正在为metro应用程序进行自动化测试,我发现代码可以完成我需要的很多东西,但是它是用C++编写的:http://blogs.msdn.com/b/windowsappdev/archive/2012/09/04/自动化最测试-的-窗口8 apps.aspx

我的问题是,如何在C#中使用IApplicationActivationManager :: ActivateApplication,因为我不懂C++?该方法的详细信息可在此处找到:http://msdn.microsoft.com/en-us/library/windows/desktop/hh706903(v = vs.85).aspx

这是我从Shobjidl.idl中提取的代码:

cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)")

// IApplicationActivationManger is used to activate an immersive application identified by its Application User Model Id.
//
// Developers who are interested in using the Application Activation Manager do not need to implement the following
// interface. An implementation is provided through the CoCreatable Object with CLSID_ApplicationActivationManager.
[
    object,
    uuid(2e941141-7f97-4756-ba1d-9decde894a3d),
    pointer_default(unique)
]
interface IApplicationActivationManager : IUnknown
{
    // Activates the specified immersive application for the …
Run Code Online (Sandbox Code Playgroud)

c# com windows-8

19
推荐指数
2
解决办法
9167
查看次数

URI方案启动

我已经被赋予了一个创建类似于callto的协议的任务:在点击链接时会自动启动已安装的应用程序.

我按照微软指南查看了一个方案应该是什么样子.

我的计划如下:

HKEY_CLASSES_ROOT
   slican
       URL Protocol = ""
       DefaultIcon (Default) = "C:\Users\Okabe\Desktop\slican\SlicanP.exe,1"
       shell
            open
                command (Default) = "C:\Users\Okabe\Desktop\slican\SlicanP.exe" "%1""
Run Code Online (Sandbox Code Playgroud)

我认为这就是全部并经过测试

 <a href="slican:test">test link</a>
 <a href="slican:0049325778421">test telephone link</a>
Run Code Online (Sandbox Code Playgroud)

没有任何反应.Internet Explorer问我是否要搜索可以打开内容的程序,Chrome没有回复,就像我点击了javascript:void(0).

如何让它工作?

谢谢您的帮助!

windows delphi uri

16
推荐指数
1
解决办法
2万
查看次数

标签 统计

c# ×2

windows ×2

.net ×1

com ×1

delphi ×1

file-type ×1

uri ×1

windows-8 ×1