在网上找了一堆资料例子,都是应用程序关联文件的。
我想根据这个反过来找到关联应用程序,但是打开注册表,发现并不是前面应用程序关联文件所说的方式。
请问有那位大神通过文件找到过应用程序?
见 http://stackoverflow.com/questions/9540051/is-an-application-associated-with-a-given-extension/9540278#9540278 ,也就是通过Win32 API FindExecutable 来找一个文件的关联程序
public static extern int FindExecutable(
string lpFile,
string lpDirectory,
string lpResult
);看了半天,没搞懂这个怎么传参数,这个api说明好少
@metoer:
public class Program { [DllImport("shell32.dll")] private static extern int FindExecutable(string lpFile, string lpDirectory, [Out] StringBuilder lpResult); private static void Main(string[] args) { StringBuilder prog = new StringBuilder(261); int result = FindExecutable(@"e:\aaa.png", null, prog); // 根据api的文档,判断下result的值,可能是没找到,或者没有关联之类的 Console.WriteLine(prog.ToString()); } }
@winnow: 找到了