当前位置: 首页 > 知识库问答 >
问题:

在启动时检查程序是否运行

江鹏飞
2023-03-14

我想检查某个程序是否在计算机启动时运行,我为此访问了Win32RegistryKey类:

 private void Form1_Load(object sender, EventArgs e)
    {
        bool ok = isOnRegistryStartup("iFilter");
        MessageBox.Show(ok.ToString());
    }
    private bool  isOnRegistryStartup(string key)
    {
       RegistryKey RegistryKey = Registry.CurrentUser.OpenSubKey
                ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
        if (registryKey.GetValue(key)!=null)
        {
            return true;

        }
        return false;

    }

输出确实是true,因为该程序实际上是在windows启动时运行的,但是当我通过任务管理器禁用该程序启动时(它的状态变为disabled),下次我运行上面的代码时,结果仍然是true,尽管该程序不再是启动程序的一部分。

这让我得出了一个简单的结论,当windows任务管理器禁用启动程序时,它不会删除注册表项中的项,而是更改了它的另一个值..但是我无法找到那个更改的值。

我希望有人能帮忙。

共有1个答案

马欣德
2023-03-14

因为在taskmgr上将其设置为禁用不会移除

currentuser\software\microsoft\windows\currentversion\run而是在currentuser\software\microsoft\windows\currentversion\explorer\startupportable\run中设置相应的值,从02000000000...03000000xxxx....

 类似资料:
  • 问题内容: 作为构建穷人看门狗并确保应用程序崩溃的一种方法(直到我弄清原因),我需要编写一个PHP CLI脚本,该脚本将由cron每5百万次运行一次,以检查该进程仍在运行。 基于此页面,我尝试了以下代码,但是即使我使用虚假数据对其进行调用,它也始终返回True: 接下来,我尝试了这段代码 … …但是没有达到我的期望: FWIW,此脚本与PHP 5.2.5的CLI版本一起运行,并且操作系统为uCli

  • 如何检查是否有。exe程序正在Windows上运行(正在运行)? 我正在制作java应用程序,更新一个。exe程序。所以,如果某个客户端使用了该exe程序,我的应用程序会要求关闭exe程序,并在关闭后自动替换。exe文件和新文件。

  • 问题内容: 如何检查Windows上是否正在运行(正在执行)某些.exe程序? 我正在制作更新一个.exe程序的Java应用程序。因此,如果某个客户端使用了该exe程序,则我的应用程序要求关闭exe程序,并在关闭后自动用新的exe文件替换。 问题答案: 您可以在Java程序中运行以下语句。在此之前,您需要知道中的任务名称。假设您要查看MS-Word正在运行。然后运行MS- Word,转到任务管理器

  • 问题内容: 我是一名Android开发人员,我想在我的应用程序中编写一条语句。在此语句中,我要检查默认浏览器(Android OS中 问题答案: 添加下面的Helper类: 现在,你可以从以下代码中检查所需的应用程序是否正在运行:

  • 问题内容: 我是Flask的新手,我想确保Redis服务器正在运行,如果没有运行,请启动它。这是我所拥有的: 但是,我收到一个错误“ OSError:[Errno 2]没有这样的文件或目录” 有没有更简单的方法来检查Redis服务器是否正在运行? 问题答案: 使用 ping cmd的redis: 样本输出:

  • 问题内容: 有什么方法可以检查Go程序是否在运行时启用了编译功能(例如,用于日志记录/信息目的)? 我检查了文档以及明显的位置(),但找不到任何东西。 问题答案: 据我所知,没有对此的简单检查,但是启用了 build标签后,您就可以利用它了。 我创建了一个新目录,并在其中放置了两个文件: : : 由于使用了build标签,将仅编译两个文件之一。 这也是围棋标准库是怎么做的(,),但由于这是一个内部