关闭 window 管理器并关闭 C#/Mono 程序

Closing window manager & powering off from C#/Mono program

我正在 mono/C# 中开发一个程序,它将 运行 在带有触摸屏的 Linux 嵌入式平台上。

我已经在 Raspbian 之上安装了 OpenBox,因为这将在 "kiosk mode" 中 运行 并且我试图使其尽可能简单。

我计划在程序中有两个选项:

  1. 关闭计算机的选项
  2. 用于关闭 windows 管理器(openbox)和 return 到终端的选项

对于我尝试使用的第一个选项:

shutdown
poweroff
systcl poweroff

命令,但都需要特殊权限,所以我不确定什么是最好的方法。我应该创建一个具有 root 权限的 bash 脚本并从程序中 运行 这个脚本吗?

对于第二个选项,我什至不知道如何开始。我已将 openbox 配置为能够通过 Ctrl + Alt + Backspace 从键盘关闭它,但我知道如何从程序中关闭它。 我试过将 SendKeys 与该组合键一起使用,但不起作用。

我也试过 here using DBUS for C# 的解决方案,但我在编译时遇到问题。

请问有什么建议吗?

您可以将 sudo 程序设置为让用户 运行 无需任何密码即可使用程序。 添加到您的 visudo 文件:

<username-or-ALL> ALL=(ALL) NOPASSWD:/sbin/poweroff

See this maybe

如果我是你,我会在设置之后和测试之前重启。