我有一个同事提供的这个应用程序(用VisualC++编写的Windows窗体应用程序),我遇到了一些严重的问题。该应用程序既不是服务也不是普通应用程序,我的意思是它有一个GUI,但大多数时候它在后台运行(它应该作为服务使用react,但事实并非如此)。此应用程序正在阻止用户注销,我需要能够做到这一点。我知道当用户尝试注销时,Windows会向所有正在运行的应用程序发送WM_QUERYENDSESSION消息。我试图在我的WndProc()函数上捕获此消息并强制终止该应用程序,但它只能运行一次。当我再次登录并尝试注销时,操作并未终止,因为我的应用程序不会关闭。如果我尝试使用Session
我正在使用bat文件重新启动我的Windows服务器。在重新启动服务器时它询问重新启动原因,我如何通过同一个批处理文件给出原因。我在bat文件中使用的命令是shutdown.exe-r-t00。 最佳答案 这是我使用的一个例子:shutdown-r/t5/du:0:0/c"BlahBlahProcessisrunningslow"/m\\MyServer/c允许您指定注释和/d允许你给出原因/d[p|u:]xx:yyProvidethereasonfortherestartorshutdown.pindicatesthatthere
我正在使用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应该可以解决问题
比如说,如果我打开一个记事本,在其中键入一些内容并且不保存它,然后从同一用户session调用以下API:ExitWindowsEx(EWX_LOGOFF,SHTDN_REASON_MAJOR_OTHER|SHTDN_REASON_MINOR_OTHER|SHTDN_REASON_FLAG_PLANNED);该用户session将进入“关闭状态”,此时操作系统将显示一个覆盖窗口,显示记事本阻止系统注销用户的消息。在用户单击“取消”或“强制退出”按钮之前,此叠加层不会消失。所以两部分问题:有什么方法可以知道哪些进程阻止了注销/关闭进程?有什么方法可以通过编程方式取消此用户session“
我有一个c#应用程序,它在机器上的系统帐户下启动,并向用户显示一些对话框。当普通用户注销时,应用程序也会终止。我本以为,由于它在系统帐户下运行,因此即使用户未登录,它也会继续运行。任何关于为什么会发生这种情况的信息将不胜感激。 最佳答案 您的应用程序是服务吗?听起来您想要的是一项服务。请注意,您可以以任何用户身份运行任何进程,但这并不意味着它是一项服务。如果您的流程作为服务实现,那么即使没有用户登录,它也会继续运行。 关于c#-为什么应用程序在注销时以系统帐户运行在Windows上,我们
我想捕捉Windows注销事件,以便进行一些清理。我的WindowProc看起来像这样:switch(uMsg){caseWM_ENDSESSION:caseWM_DESTROY:PostQuitMessage(0);return0;//othermessages}returnDefWindowProc(hwnd,uMsg,wParam,lParam);WinMain中的消息循环如下所示:for(;;){boolbTerminate=false;while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){if(msg.message==WM_QUIT){bT
我正在尝试找出一种方法,从用C#编写的Windows服务注销本地Windowssession中的用户。这是问题的背景:我需要管理一组用户的电脑使用时间;当他们分配的时间到期时,我想将他们注销。这是在W2K8域的上下文中。不幸的是,Windows中的登录时间控件只会断开用户与服务器资源的连接;无法通过此方法强制他们的session终止。我的方法是构建一个我将跨域部署的Windows服务;该服务将在每台客户端计算机上运行。该服务将定期枚举计算机上的登录用户,调用数据库以将自上次调用以来的登录时间添加到当天的总计中,如果已达到最大值,则将其注销(五分钟警告)。注意-这些不是终端服务sessi
我有一个Swing应用程序,用户可以在其中创建和保存文档。该应用程序被部署为一个简单的Jar文件。主要目标平台是WindowsVista。如果用户在应用程序中打开但未保存文档,并且用户正在从WindowsVista计算机注销,我想停止注销过程并询问用户是否要在Java应用程序已终止。是否可以从Java应用程序中止WindowsVista上的注销过程?我试过关闭Hook但没有成功。 最佳答案 IsitpossibletohalttheloggingoffprocessonWindowsVistafromanJavaapplicatio
我编写了一个C#Windows窗体应用程序,而不是一个服务(它仅在用户登录并具有图形用户界面时使用),它具有在无限循环中运行的后台线程。但是,当我尝试关闭Windows(7)时,它告诉我该程序正在阻止它关闭或注销,并询问我是否要强制关闭。现在,我的程序是否有可能意识到(获取处理程序)Windows试图退出或注销?所以,我需要的是让应用程序在Windows试图退出时意识到这一点。提前致谢。编辑:感谢您的宝贵建议!如果它有一个CANCEL事件处理程序,是否可以以任何方式将这个想法与表单关闭事件一起使用? 最佳答案 publicForm1
我有一些脚本,我想在每次用户注销时运行。我想创建一些以编程方式设置注销脚本的东西。例如,可执行的exe或cmd文件以将注销脚本添加到Windows执行的注销脚本列表中。因此,WindowsAPI函数或Windowsshell命令会更可取,但我找不到这样的函数或命令来帮助解决这个问题。我检查了本地组策略编辑器在您使用它向组策略添加注销脚本时所做的注册表编辑,但它做了很多我不确定是否可以模仿的事情。例如,它对注册表进行了大量编辑,并在某些注册表项中使用数字代码,在某些值中使用二进制数据。我不知道这些值代表什么。我已经尝试了GPEdit所做的部分更改,希望这样做仍然有效。例如,我将它所做的更