C++ C++;:远程休眠电脑

C++ C++;:远程休眠电脑,c++,windows,winapi,shutdown,C++,Windows,Winapi,Shutdown,如何从另一台PC休眠在局域网上运行Windows 7或8的Windows计算机? 有WinAPI函数吗?或者我必须发送特殊的魔法包或类似的东西吗? 我只知道PsShutdown.exe能够做到这一点(据称,我还没有尝试过) 我不想使用第三方库,也不想在本应处于休眠状态的计算机上运行服务。我想使用现有的机制 我还想知道是否需要更改目标计算机上的特定设置。 我不确定这是否重要,但shutdown/s/m\\ComputerName在我的目标电脑上不起作用。TechNet文档描述了对远程电脑使用shu

如何从另一台PC休眠在局域网上运行Windows 7或8的Windows计算机?
有WinAPI函数吗?或者我必须发送特殊的魔法包或类似的东西吗?
我只知道PsShutdown.exe能够做到这一点(据称,我还没有尝试过)

我不想使用第三方库,也不想在本应处于休眠状态的计算机上运行服务。我想使用现有的机制

我还想知道是否需要更改目标计算机上的特定设置。 我不确定这是否重要,但
shutdown/s/m\\ComputerName
在我的目标电脑上不起作用。

TechNet文档描述了对远程电脑使用
shutdown.exe
命令的要求

  • 要使用此功能,必须在远程计算机上启用

  • 完成此过程的最低要求是访问远程计算机上的远程注册表或成为Administrators组的成员


  • 据我所知,远程休眠机器的唯一方法是使用与
    psshutdown
    相同的方法:将可执行文件复制到远程机器,并将其作为系统服务安装


    API允许您指定目标计算机,您可以使用它返回的句柄调用CreateService,然后启动服务。服务完成工作后可以删除自身。

    您误解了两件事。首先,我想使用一个API函数,COM或类似的,其次我想休眠我的目标PC,而不是关闭或重新启动它。shutdown.exe的问题是,它是一个专用的exe,这意味着性能非常差,尤其是在重复运行时,而且对远程PC几乎没有控制,也没有休眠。API函数看起来像是API
    shutdown.exe
    基于此,因为它有许多相同的标志。我想你会发现上面列出的要求适用于你是直接使用API还是通过
    shutdown.exe
    (我真的不理解你的“疯狂糟糕的性能”评论——你打算多久做一次?)。可能无法使用标准API远程休眠,这可能是
    shutdown.exe
    不提供此选项的原因
    PsShutdown
    似乎通过管理共享将程序复制到远程计算机上,至少这是从
    PsShutdown
    页面链接的Windows it Pro文章中描述的。现在,我只需要运行shutdown.exe一次,但我仍然认为这是糟糕的编程风格,而这并不是我想要的。我如何重现“通过管理共享将程序复制到远程计算机”,然后我如何告诉计算机运行该程序?我不知道,也许Windows it Pro文章解释了它是如何完成的。