Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Windows关闭时,如何执行函数_C++_Windows - Fatal编程技术网

C++ Windows关闭时,如何执行函数

C++ Windows关闭时,如何执行函数,c++,windows,C++,Windows,Windows关闭时如何执行函数。这是我的场景,我正在应用程序中使用函数安装一个驱动器。现在,我希望用户设置选项,如果驱动器将在下次系统启动或不安装 如果他选择在下次启动时不装载,那么我需要使用移除驱动器,但这应该只在用户关闭系统时发生 我只能想出唯一的解决办法。创建一个服务,该服务将检查用户选项,然后决定是否安装驱动器 还有其他方法吗?explorer.exe是windows的GUI进程,通常只有在windows关闭时才会关闭(对于某些错误情况必须进行例外)。您可以在WM_DESTROY wi

Windows关闭时如何执行函数。这是我的场景,我正在应用程序中使用函数安装一个驱动器。现在,我希望用户设置选项,如果驱动器将在下次系统启动或不安装

如果他选择在下次启动时不装载,那么我需要使用移除驱动器,但这应该只在用户关闭系统时发生

我只能想出唯一的解决办法。创建一个服务,该服务将检查用户选项,然后决定是否安装驱动器


还有其他方法吗?

explorer.exe是windows的GUI进程,通常只有在windows关闭时才会关闭(对于某些错误情况必须进行例外)。您可以在WM_DESTROY window消息中侦听explorer.exe的进程ID,然后卸载。explorer.exe是windows的GUI进程,通常只有在windows关闭时才会关闭(对于某些错误情况,必须进行例外)。您可以在WM_DESTROY window消息中侦听explorer.exe的进程ID,然后卸载。

如果您有一个可以处理消息的主窗口(即使是不可见的窗口),则可以处理WM_ENDSESSION消息

请参阅:

如果您有一个可以处理消息的主窗口(即使是不可见的窗口),则可以处理WM_ENDSESSION消息


请参阅:

我能想到的方法是:

  • 将程序注册为自动启动(当电脑启动时)。关于如何做的教程
  • 将用户选项(如上所述)存储在存储库或注册表中(如果您知道如何存储)。当你的应用程序启动时,你可以阅读你的注册表并采取相应的行动
  • 对于关机,您的应用程序必须将自身挂接到SystemEvent上以检测关机(然后您可以相应地采取行动)。一个关于howto(C#)的例子。对于C++,可以收听消息。
    我希望我的2美分能帮助你。

    我能想到的办法是:

  • 将程序注册为自动启动(当电脑启动时)。关于如何做的教程
  • 将用户选项(如上所述)存储在存储库或注册表中(如果您知道如何存储)。当你的应用程序启动时,你可以阅读你的注册表并采取相应的行动
  • 对于关机,您的应用程序必须将自身挂接到SystemEvent上以检测关机(然后您可以相应地采取行动)。一个关于howto(C#)的例子。对于C++,可以收听消息。
    我希望我的2美分可以帮助你。

    如果你可以将你的应用程序变成Windows服务(或者让你的应用程序与你提供的服务进行状态通信),你可以在收到服务时执行所需的操作\u控制\u关闭你的应用程序。这将使处理用户交互的应用程序与关机处理程序分离,关机处理程序需要一直运行(如果用户注销怎么办?)。

    如果您可以将应用程序设置为Windows服务(或让应用程序与您提供的服务进行状态通信)您可以在收到服务时执行所需的操作\u控制\u关闭您的系统。这会使你的应用程序与处理C++交互的应用程序分离,这就需要一直运行的东西(如果用户注销了什么?)。我用C++来做我的应用程序,什么是主窗口(甚至是一个隐形窗口)?甚至比不可见的更好,只创建一个消息窗口。调用
    CreateWindowEx
    并将
    HWND_消息作为父级传递。@MSalters,所有这些win32 API的东西我在我的时间里都做过,我从来不知道HWND_消息。谢谢你的洞察力!什么是主窗口(甚至是一个不可见的窗口)?比不可见更好的是,创建一个只显示消息的窗口。调用
    CreateWindowEx
    并将
    HWND_消息作为父级传递。@MSalters,所有这些win32 API的东西我在我的时间里都做过,我从来不知道HWND_消息。谢谢你的洞察力!谁在监听,您如何确保进程仍在运行?我想我的应用程序在它的窗口循环中监听。如果它没有运行,我很确定没有任何解决方案可以解决它被关闭的问题。谁在监听,您如何确保进程仍然在运行?我想说我的应用程序在它的窗口循环中监听。如果它没有运行,我很确定没有解决方案可以解决它被关闭的问题。