【问题标题】:How to open programs programmatically using file directory如何使用文件目录以编程方式打开程序
【发布时间】:2016-05-19 23:59:15
【问题描述】:

我一直在构建语音应用程序,我想尝试一些不同的东西。我想打开程序而无需手动将程序中的类似内容放入代码中:

Process.Start("notepad.exe");

我想知道您将如何使用文件目录执行程序,例如:

string appPath = Path.GetDirectoryName(Application.ExecutablePath);

我想这样做的原因是我不知道客户在计算机系统上会有什么程序。我已经尝试过研究,我发现的一切都和我一直在编程一样。

那么有没有办法拉取程序可执行文件并执行程序呢?

完整示例:

if (speech == " ")
{
    Start.Process(Application.ExecutablePath);
}

还是有办法做到这一点?

【问题讨论】:

  • 为什么这里需要“来自注册表”?当然,更明智的做法是检查已安装在开始菜单中的各种快捷方式? IE。这些是应用程序安装以允许用户启动程序的“入口点”。
  • 好吧,我不能要求每个安装程序的客户,给我一个开始菜单列表。我认为安装新程序时会更容易,它会通过程序目录.但是,出于我自己的目的,我可以手动放置每个程序,因为我知道我有哪些程序。以您为例,我不知道您的计算机上有哪些程序。那么我如何让我的应用程序识别您的应用程序以及您安装的新应用程序?所以这样你就可以说“打开(应用程序)”看看 Microsoft Speech、Cortana 或其他语音激活程序。
  • 您认为您的程序能够扫描注册表以找到启动程序的正确路径(事实上,通常存储在注册表中的唯一可执行信息是卸载程序的路径),但您不知何故相信您的程序无法搜索start menu?
  • 好吧,让我们看看这种方式..如果我让程序读取开始菜单..那么你将如何提取信息..我想我可以提取进程,例如说“Open Aero”然后它会打开 aero,这是我构建的一个自定义程序。然后我说close aero ..您将必须拥有进程ID ..那么哪个更容易?另一种看待它的方式是,如果我添加一个新应用程序,程序会识别新应用程序吗?并执行打开命令,无需我进行更多编码和更新。看看 Cortana,她是如何工作的,以及 MS Speech
  • 另外,我正在尝试构建自定义算法。其中包括作为受体神经元的注册表。我们所做的一切都涉及注册表,因为它是冰山一角的最深处。我不想找到简单的出路。我想知道您如何对注册表进行编程。可以做但是怎么做?与“Fn”键相同。它的硬件。但起到开关的作用。使用什么代码来操作开关?

标签: c# registry


【解决方案1】:

好的,这可以通过使用以下代码轻松解决:

以下是如何获取所有exe应用程序 使用 System.IO; 使用 System.Windows.Forms;

string appPath = Path.GetDirectoryName(Application.ExecutablePath);

下面的代码是获取正在运行的应用程序 使用 System.IO; 使用 System.Reflection;

string path = Path.GetDirectoryName(Assembly.GetAssembly(typeof(MyClass)).CodeBase);

现在我可以轻松地使用 GetProcess 方法拉取 procId,以关闭打开的应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多