我知道我可以使用
获取默认的“打开方式”应用程序名称,作为文件扩展名String ext = ".dds"
String baseKey="HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\";
Object mruObj = Registry.GetValue(baseKey + ext + "\\OpenWithList", "MRUList", null);
if(mruObj != null)
{
String key = ((String)mruObj).Substring(0, 1);
Object progObj = Registry.GetValue(baseKey + ext + "\\OpenWithList", key, null);
if(progObj != null)
{
//(String)progObj = "Photoshop.exe"
}
}
我也知道我可以通过启动一个新流程获得完整路径,包含具有所述扩展名的文件,并阅读返回Process
对象的Module[0].Filename
因此,如果Windows可以提供关联应用程序的路径,而不是将其存储在PATH中,为了首先启动它,那么必须有一种方法来获取相同的信息而无需启动处理。我希望有人可以与我分享这种“方式”。