我有这样的代码
Process p = new Process();
p.StartInfo = new ProcessStartInfo("explorer.exe");
p.StartInfo.Arguments = @"shell:appsFolder\AppName";
但是如果未在计算机上安装该应用程序,则只会打开一个窗口浏览器。
如果未安装该应用程序,如何阻止它打开Windows资源管理器?
我也尝试使用此代码来检查应用程序,它运行正常,但是有没有办法在未安装应用程序时不显示Windows资源管理器?
var FOLDERID_AppsFolder = new Guid("{1e87508d-89c2-42f0-8a7e-645a0f50ca58}");
ShellObject appsFolder = (ShellObject)KnownFolderHelper.FromKnownFolderId(FOLDERID_AppsFolder);
List<PackageInfo> installedPackages = new List<PackageInfo>();
((IKnownFolder)appsFolder).ToList().Where(w => !w.ParsingName.Contains(".txt") && !w.ParsingName.Contains(".chm") && !w.ParsingName.Contains(".htm") && !w.ParsingName.Contains(".html") && !w.ParsingName.Contains("http://") && !w.ParsingName.Contains(".bat") && !w.ParsingName.Contains(".rtf") && !w.ParsingName.Contains(".url") && !w.ParsingName.Contains(".pdf")).ToList().ForEach(fe =>
{
try
{
installedPackages.Add(new PackageInfo
{
DisplayName = (fe.ParsingName.Replace(@"\", @"\\")),
FullName = fe.Name,
Version = fe.Properties.System.FileVersion.Value == null ? "" : fe.Properties.System.FileVersion.Value
});
Debug.WriteLine(fe.ParsingName);
}
catch { }
});
return installedPackages.OrderBy(ob => ob.FullName).ToList();
我尝试获取进程的输出,错误和退出代码。
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
string errorx = p.StandardError.ReadToEnd(); //return empty string
string outputx = p.StandardOutput.ReadToEnd(); //return empty string
int exitint = p.ExitCode; //return 1
但是它没有给我任何有用的东西。
答案 0 :(得分:0)
添加代码后,Windows资源管理器现在不显示
details