c# - 关闭窗口管理器并从 C#/Mono 程序关闭电源

标签 c# linux mono raspbian openbox

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

我已经在 Raspbian 之上安装了 OpenBox,因为它将以“kiosk 模式”运行,我试图让它尽可能简单。

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

  1. 关闭计算机的选项
  2. 关闭窗口管理器(openbox)并返回终端的选项

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

shutdown
poweroff
systcl poweroff

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

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

我也尝试过解决方案 here使用 DBUS for C#但我在编译时遇到了问题。

请问您有什么建议吗?

最佳答案

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

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

See this maybe

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

关于c# - 关闭窗口管理器并从 C#/Mono 程序关闭电源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58502507/

相关文章:

c# - 当源对象可能没有给定的属性时如何处理绑定(bind)?

c# - 从 blob 存储中获取资源文件并添加到 azure 批处理中的任务

c# - .CSV 到 SQL CE 表?

linux - 如何使用 udev 使用自定义目录填充/dev

linux - 如何在 bash 中剪切现有变量并分配给新变量

linux - gdb 似乎忽略了可执行功能

c# - Ubuntu 上 MonoDevelop 中的 Webkit

c# - 如何在 Mono/Linux 上使用 LuaInterface

c# - Ubuntu 上的目标语言是什么?

cocoa - 以编程方式打开 Mac 帮助菜单