草庐IT

c++ - 当用户启动注销/关机操作时停止应用程序

我有一个同事提供的这个应用程序(用VisualC++编写的Windows窗体应用程序),我遇到了一些严重的问题。该应用程序既不是服务也不是普通应用程序,我的意思是它有一个GUI,但大多数时候它在后台运行(它应该作为服务使用react,但事实并非如此)。此应用程序正在阻止用户注销,我需要能够做到这一点。我知道当用户尝试注销时,Windows会向所有正在运行的应用程序发送WM_QUERYENDSESSION消息。我试图在我的WndProc()函数上捕获此消息并强制终止该应用程序,但它只能运行一次。当我再次登录并尝试注销时,操作并未终止,因为我的应用程序不会关闭。如果我尝试使用Session

c# - 何时/如何注销 RegisteredWaitHandle

我正在使用ThreadPool.UnsafeRegisterWaitForSingleObject(以下简称RWFSO)异步等待Semaphore。它返回一个RegisteredWaitHandle,我无法轻易地Unregister()。我需要取消注册这些,因为句柄保留对委托(delegate)及其状态对象的引用,而我的进程正在泄漏每个句柄的内存。最终它们确实得到了最终确定,但这花费的时间太长并且给GC带来了太大的压力,使我的进程的私有(private)内存使用量膨胀到1.8GB范围。我正在发出大量异步请求。信号量用于控制对HttpWebRequest的异步实现的访问:BeginGet

windows - 注销时更改 Lync 状态

我有一个自定义Lync应用程序,用于更改用户的状态/状态。对于应用程序,Lync在某些机器上的抑制UI上运行,而不是在其他机器上。我希望它提示用户“你想将你的状态更改为‘退出’吗?”如果他们正在执行系统关闭或注销并且他们的状态设置为“In”。然后,如果他们愿意,它将更改他们的状态并将他们注销/关闭。问题是,当他们注销/关机时,它会终止Lync进程,然后我需要再次启动它才能更改他们的状态。 最佳答案 如果您将进/出状态映射到标准Lync状态,则您不需要在注销/关机时显式发布状态。当用户注销机器时,Lync应自动将状态设置为脱机-因此如

windows - regsvr32,我应该在重新注册之前注销吗?

场景:我在c:\program.dll中的客户端计算机上安装了COMdll,并调用了以下命令进行注册:regsvr32"c:\program.dll"我用新版本更新了dll,在与安装“c:\program.dll”相同的目录中。疑问:在注册新版本的dll之前,是否需要先注销旧版本?regsvr32"c:\program.dll"/u如果是,为什么? 最佳答案 您应该使用现有DLL的DllUnregisterServer函数注销旧版本。如果正在安装的新版本设置了相同的注册表项,这不会有什么不同,但请记住,用户可能会降级到未实现特定类的

windows - 如何从 vbscript 注销?

我正在使用VBScript在我的WinServer2003上运行一个应用程序,我希望它在设定的时间后让用户注销。类似的东西:SetWshShell=WScript.CreateObject("WScript.Shell")SetOExe=WshShell.exec("somecommand.exe")WScript.Sleep1000000OExe.Terminate 最佳答案 有点像WshShell.Run"C:\windows\system32\shutdown.exe/l",0,false应该可以解决问题

windows - 如何以域管理员身份从命令行注销 Windows 上的所有用户

我在Windows(Windows10和2012)上运行自动化测试,自动化的要求之一是所有用户需要注销。我有机会在部署后执行此操作。我有点看到thispage给出答案,但在我尝试querysession之后,我看到它甚至提供了services和rdp-tcpsessions...但我没有不想停止任何服务...有什么建议吗? 最佳答案 此解决方案基于之前的答案,但此解决方案将关闭所有session(甚至断开连接的session)。遗憾的是,“querysession”命令返回的每一行的文本格式可能难以解析。正如您在下一个屏幕截图中看到

windows - 注销和登录后任务计划程序无法显示应用程序的 GUI(无论用户是否登录都运行)

我有一个GUI应用程序,我希望它在重新启动/注销Windows计算机后自动运行。以下是我如何使用Windows任务计划程序:首先运行命令创建任务:c:\Windows\System32\schtasks.exe/Create/TNtaskname/XMLtaskname.xml/RUusername/RPpassword/IT创建任务后,在常规选项卡中,选择了“无论用户是否登录都运行”单选按钮,并且未选中“不存储密码”复选框。在触发器选项卡中,我设置为每5分钟重复一次任务。重新启动计算机后,它可以在5分钟内自动触发应用程序运行并显示GUI。但是,如果我注销再登录电脑,它只会触发应用程序

c++ - 工作站锁定时如何注销用户?

我编写了一个带有两个模块的Windows应用程序:服务和用户模式应用程序。该服务实现自己的调度程序,并可以在预定义的时间注销用户。为此,我使用了以下调用,该调用是从在必须注销的已登录用户session中运行的用户模式模块触发的:BOOLresult=ExitWindowsEx(EWX_LOGOFF,reason);除了用户帐户被锁定的情况外,这工作正常。在那种情况下,即使我从它返回1,API似乎也没有做任何事情。所以我很好奇,当用户的帐户被锁定时,还有其他方法可以注销用户吗?(在这种情况下,我的一个条件是,如果该用户有任何未保存的文档,则不应强制注销。) 最

windows - 从远程桌面 session 注销不会关闭 session ,在 Windows XP 32 位 - SP2 上再次显示登录屏幕

根据要求,我们编写了一个自定义GINA。我在WindowsXP32位(SP2)中观察到一个有趣的行为。自定义GINA在内部调用Windows默认WindowsGINA(msgina.dll)并根据我们的要求显示一个额外的窗口。我曾经从我的机器上远程桌面到XP机器。用定制的GINA替换WindowsGINA后,我尝试从XP机器注销(我正在使用远程桌面连接登录),注销成功完成(在显示保存设置、关闭网络连接等之后),我将登录我们在登录期间获得的屏幕,与其他WindowsOD版本相比,这不是预期的。在其他操作系统(例如WindowsXP64位/Windows200332/64位)中,即使在用自

.net - 我应该在哪里保存一个 xml 文件,以便它可以在 Windows 注销时由服务写入?

我应该在哪里保存一个xml文件,以便它可以在Windows注销时由服务(用C#编写)写入?谢谢史蒂文 最佳答案 你可以使用IsolatedStorage,但最合理的是Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),因为它将它保存在机器上的用户配置文件中,用于运行该服务的任何帐户。 关于.net-我应该在哪里保存一个xml文件,以便它可以在Windows注销时由服务写入?,我们在StackO