【问题标题】:Is it possible to run .scf file programmatically是否可以以编程方式运行 .scf 文件
【发布时间】:2013-06-29 19:49:00
【问题描述】:

我正在尝试在 C# 中使用 System.diagnostics.Process.Start() 运行 "show Desktop.scf"。但是调试行只是通过并且不采取任何行动。

当我尝试使用 开始 -> 运行时,它会执行显示桌面操作。

Process.Start 采用文件名。为什么这不能从代码中工作。我也试过管理员模式

任何指导请。

【问题讨论】:

  • 但是当你在 Start -> Run 中写 "show Desktop.scf" 时,它也不起作用.. 你确定吗?还是您创建这个.scf 文件自定义?
  • 与其尝试运行.scf,不如说,您为什么不搜索以编程方式显示桌面?对我来说,第一个结果是 blog post,它显示了 C# 中的一些简单代码。
  • [Shell] Command=2 IconFile=Explorer.exe,3 [Taskbar] Command=ToggleDesktop 这是 showDesktop.scf 中的代码 当我从 start->run 运行它时,它就成功了。但不是来自代码。不知道为什么。我尝试了sinni800的建议,但也没有用。
  • @Damien_The_Unbeliever:: 我正在尝试执行此操作以脱离 Metro 模式。我已将此 .scf 文件放在 c:\users\..\startup 文件夹中,因此在重新启动时;桌面出现。但有时,当我的代码在桌面上运行时会出现 Metro 模式,所以我想看看从代码中调用这个脚本是否可以恢复桌面。我会查看博客,tx 以供分享。
  • 这就是为什么我发布了一个指向博客文章的链接,该链接显示了如何直接从您的代码中调用ToggleDesktop - 即使它无法工作,它更有可能给您一个体面的错误代码/消息这会告诉你出了什么问题。

标签: c# system.diagnostics process.start


【解决方案1】:

提交ProcessStartInfo 并将UseShellExecute 设置为true

这会以与 START -> RUN 相同的方式执行 scf。

【讨论】:

  • System.Diagnostics.Process pp = new System.Diagnostics.Process(); pp.StartInfo = new System.Diagnostics.ProcessStartInfo(); pp.StartInfo.UseShellExecute = true; pp.StartInfo.FileName = @"C:\Users\SkipMetro.scf"; pp.Start();这是我的代码。不幸的是,这只是通过。
【解决方案2】:
shell:::{3080F90D-D7AD-11D9-BD98-0000947B0257}

开始 -> 运行 与运行 .scf 的作用相同
当我遇到同样的问题时,我正在制作 AutoHotKey 脚本。
但是当我用上面的代码替换 .scf 的路径时,它就像一个魅力。

【讨论】:

    猜你喜欢
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    • 2020-07-08
    • 2021-12-05
    • 1970-01-01
    相关资源
    最近更新 更多