C# 通过API/服务以编程方式打开和关闭PC

C# 通过API/服务以编程方式打开和关闭PC,c#,automation,hardware,C#,Automation,Hardware,我有一些机器,根据太阳能电池板产生的能量,我希望能够打开和关闭这些WIn 7 PC 我将功率输出数据传输到一个DB,以便对这一侧进行排序 我了解局域网唤醒魔法包等 是否有一个API,我可以编写此功能来自动化此过程,或者是否有一个硬件小工具解决方案,我可以将mobo上的电源开关挂接到其他设备上?lan唤醒数据包就是任何具有特定签名的网络或传输级数据包 预期签名为: 6 Bytes of a header (set to 0xFF) 16 repetitions of a target MAC Ad

我有一些机器,根据太阳能电池板产生的能量,我希望能够打开和关闭这些WIn 7 PC

我将功率输出数据传输到一个DB,以便对这一侧进行排序

我了解局域网唤醒魔法包等


是否有一个API,我可以编写此功能来自动化此过程,或者是否有一个硬件小工具解决方案,我可以将mobo上的电源开关挂接到其他设备上?

lan唤醒数据包就是任何具有特定签名的网络或传输级数据包

预期签名为:

6 Bytes of a header (set to 0xFF)
16 repetitions of a target MAC Address (6 bytes each)
... for a total of 6 + 6 * 16 = 102 bytes
请注意,它们通常作为用户数据报(UDP)数据包发送(广播)到端口7或9

下面是一篇非常详细的Wiki文章:

如果您想查看
Go
中的示例实现(我知道它不是C#,但您可以了解它是如何工作的),请查看我编写的

远程开机(物理)

您可以探索购买IP电源交换机,您可以通过一些托管接口(通常是HTTP)向其发送唤醒/关闭命令。这些都可以在市场上买到,而且价格可能会有点贵


我认为你也可以建造某种类型的微控制器,它可以通过Wifi触发来管理连接到你电脑电源开关的继电器。很多选项:)

WOL数据包不难自己制作,你可以在网上找到很多C#的代码示例。你可以构建自己的Windows服务或控制台应用程序,该应用程序总是在后台运行,检查电源输出DB,当达到所需级别时,你可以通过编程关闭计算机。检查