我正在运行一个 debian 服务器,因为电脑在我的房间里并且一直在运行,所以我想关闭显示器。
我没有图形界面所以
xset dpms force off
Run Code Online (Sandbox Code Playgroud)
不起作用(返回:xset:无法打开显示“”)
我尝试“setterm powerdown”命令,但它只“清除”屏幕,但它仍然产生光(黑屏但有背景光......)
因此,经过谷歌的主要研究后,我来到这里。最酷的事情是在不活动后关闭监视器,并在按下键盘按键时打开电源。
只有关闭屏幕电源就可以了,因为我使用 ssh 来管理服务器。
我有一个多处理的python应用程序,它在Windows上作为EXE运行.在选择关闭操作系统时,由于进程被关闭,应用程序会抛出许多异常.
有没有办法通过Windows捕获系统关闭请求,所以我可以自己处理多进程的关闭?
我有一个应用程序,使用XElement对象的.Save("path")方法每500毫秒将数据存储在XML文件中.问题是:当发生突然关闭时,文件的内容将被删除,因此在下次运行应用程序时,无法使用该文件.
如何防止/确保数据不会丢失?PS:我在Windows 7下使用.NET 2010 C#
我做了一个实验:不是写入我创建的同一个data.xml文件(通过从原始文件复制)每次都有一个新文件,当电源关闭时从data.xml文件复制它会损坏以前创建的所有文件?!?!?
我希望我的常规工作者(ProcessToDo()在下面的代码中)等待,直到关闭之前处理所有"排队"工作.
工作程序具有"待办事项"通道(缓冲),通过该通道向其发送工作.它有一个"完成"通道告诉它开始关机.文档说如果满足多个选择,通道上的选择将选择"伪随机值"...这意味着在完成所有缓冲工作之前触发关闭(返回).
在下面的代码示例中,我希望打印所有20条消息...
package main
import (
"time"
"fmt"
)
func ProcessToDo(done chan struct{}, todo chan string) {
for {
select {
case work, ok := <-todo:
if !ok {
fmt.Printf("Shutting down ProcessToDo - todo channel closed!\n")
return
}
fmt.Printf("todo: %q\n", work)
time.Sleep(100 * time.Millisecond)
case _, ok := <-done:
if ok {
fmt.Printf("Shutting down ProcessToDo - done message received!\n")
} else {
fmt.Printf("Shutting down ProcessToDo - done channel closed!\n")
}
close(todo)
return
}
}
}
func main() …Run Code Online (Sandbox Code Playgroud) 我有基于Web的应用程序,它自动加载在由Windows 7驱动的客户端计算机上的chrome web浏览器中的kiosk模式(全屏).我想在网页上放置一个关闭按钮,以便用户可以直接关闭计算机.
-PS-
我完全控制了客户端的计算机.(安装其他软件或浏览器扩展).它是一个触摸屏POS单元.
我有带有此源代码的Windows应用程序
#include <Windows.h>
#include <thread>
#include <chrono>
int WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int cmdShow)
{
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WinProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch (Message)
{
case WM_QUERYENDSESSION:
MessageBox(NULL, "Triggered?", "Message", 0);
AbortSystemShutdown(NULL);
return 0;
default:
return DefWindowProc(hWnd, Message, wParam, lParam);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我需要知道系统何时关闭并阻止它,或者至少向用户发送一条消息。
我的应用程序似乎没有收到该WM_QUERYENDSESSION消息。
我也尝试过使用,ShutdownBlockReasonCreate()但我没有HWND窗口。
我该怎么做?
我正在制作一个客户端 - 服务器应用程序,所以我需要静默关闭远程PC ..我已经在命令提示关闭/?..但我仍然不知道执行以下命令的正确参数.
那么如何在没有(/ m)的情况下在本地执行这些命令?
void ShutDown(string cmd)
{
Process.Start("shutdown", cmd);
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
如果用户尝试关闭应用程序,我想显示一个“关闭查询”确认对话框。如果系统关闭或任务管理器中的任务或进程正在结束,我只想清理并关闭。
我尝试了这段代码:
private
procedure WMEndSession(var Message: TWMEndSession); message WM_ENDSESSION;
Run Code Online (Sandbox Code Playgroud)
...
procedure TxxxForm.WMEndSession(var Message: TWMEndSession);
begin
gShuttingDown := Message.EndSession;
end;
Run Code Online (Sandbox Code Playgroud)
...
procedure TxxxForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Application.ProcessMessages;
if gShuttingDown then
CanClose := True
else
CanClose := MessageDlg('Are you sure you want to stop the close?', mtConfirmation,
[mbYes, mbNO], 0) = mrYes;
end;
Run Code Online (Sandbox Code Playgroud)
弹出确认显示我是从任务管理器中关闭程序还是终止进程。