标签: shutdown

什么可能导致C++ Builder/Delphi线程和应用程序无法关闭?

有一次,在测试期间,我的C++ Builder/Delphi应用程序在后台工作线程中引发了一个未捕获的异常. EurekaLog发现异常并发送了错误报告,正如我预期的那样,一切似乎都没问题.

但是,当我关闭应用程序的主窗口时,某些内容仍在后台运行,因为应用程序仍然列在任务管理器中(并且仍然打开了资源).

我试图通过故意在后台工作线程中引入各种错误来复制这个问题,但我不能.

什么可能导致一个线程和应用程序保持这样运行,即使在主窗口关闭后(并且,可能是,已调用PostQuitMessage)?

如何确保应用程序始终完全关闭?

windows delphi multithreading shutdown c++builder

2
推荐指数
1
解决办法
445
查看次数

Debian 服务器上的关闭监视器

我正在运行一个 debian 服务器,因为电脑在我的房间里并且一直在运行,所以我想关闭显示器。

我没有图形界面所以

xset dpms force off
Run Code Online (Sandbox Code Playgroud)

不起作用(返回:xset:无法打开显示“”)

我尝试“setterm powerdown”命令,但它只“清除”屏幕,但它仍然产生光(黑屏但有背景光......)

因此,经过谷歌的主要研究后,我来到这里。最酷的事情是在不活动后关闭监视器,并在按下键盘按键时打开电源。

只有关闭屏幕电源就可以了,因为我使用 ssh 来管理服务器。

linux debian shutdown monitor

2
推荐指数
1
解决办法
7209
查看次数

Python处理系统关闭

我有一个多处理的python应用程序,它在Windows上作为EXE运行.在选择关闭操作系统时,由于进程被关闭,应用程序会抛出许多异常.

有没有办法通过Windows捕获系统关闭请求,所以我可以自己处理多进程的关闭?

python windows events shutdown multiprocessing

2
推荐指数
1
解决办法
2163
查看次数

发生突然关闭时,XML文件数据会丢失

我有一个应用程序,使用XElement对象的.Save("path")方法每500毫秒将数据存储在XML文件中.问题是:当发生突然关闭时,文件的内容将被删除,因此在下次运行应用程序时,无法使用该文件.

如何防止/确保数据不会丢失?PS:我在Windows 7下使用.NET 2010 C#

我做了一个实验:不是写入我创建的同一个data.xml文件(通过从原始文件复制)每次都有一个新文件,当电源关闭时从data.xml文件复制它会损坏以前创建的所有文件?!?!?

c# xelement shutdown

2
推荐指数
1
解决办法
1714
查看次数

缓冲区为空后关闭"worker"进入例行程序

我希望我的常规工作者(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)

concurrency shutdown channel go goroutine

2
推荐指数
2
解决办法
1090
查看次数

通过网页关闭计算机

我有基于Web的应用程序,它自动加载在由Windows 7驱动的客户端计算机上的chrome web浏览器中的kiosk模式(全屏).我想在网页上放置一个关闭按钮,以便用户可以直接关闭计算机.

  • 有没有可能实现这个目标?
  • 适用于Windows和Linux的最佳解决方案是什么?

-PS-

我完全控制了客户端的计算机.(安装其他软件或浏览器扩展).它是一个触摸屏POS单元.

html javascript shutdown webbrowser-control web

2
推荐指数
1
解决办法
2万
查看次数

如何防止系统在没有窗口的情况下关闭?

我有带有此源代码的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窗口。

我该怎么做?

c++ winapi shutdown

2
推荐指数
1
解决办法
1799
查看次数

Win32 API防止待机

什么是Win32 api函数阻止系统进入待机状态?

有些程序使用它,这在我看来非常烦人.

我知道你可以捕获一些WM_SYSCOMMAND消息,以防止屏幕保护程序出现..

c++ winapi shutdown standby

1
推荐指数
1
解决办法
740
查看次数

如何使用Process.Start()关闭计算机的shutdown-restart-hibernate-stand?

我正在制作一个客户端 - 服务器应用程序,所以我需要静默关闭远程PC ..我已经在命令提示关闭/?..但我仍然不知道执行以下命令的正确参数.

  • 关掉
  • 重新开始
  • 过冬
  • 支持
  • 注销
  • 锁(切换用户)

    那么如何在没有(/ m)的情况下在本地执行这些命令?

    void ShutDown(string cmd)
    {
        Process.Start("shutdown", cmd);
    }
    
    Run Code Online (Sandbox Code Playgroud)

    提前致谢.

  • c# cmd shutdown process

    1
    推荐指数
    1
    解决办法
    4669
    查看次数

    如何区分UI关闭和使用Delphi强制关闭

    如果用户尝试关闭应用程序,我想显示一个“关闭查询”确认对话框。如果系统关闭或任务管理器中的任务或进程正在结束,我只想清理并关闭。

    我尝试了这段代码:

    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)

    弹出确认显示我是从任务管理器中关闭程序还是终止进程。

    delphi shutdown application-shutdown delphi-xe4

    1
    推荐指数
    1
    解决办法
    1039
    查看次数