iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ololore Цитата: Сегодня переписал без параметров - не хочет просыпаться. Я хз че ему надо. | Использовать rundll32.exe для вызова SetSuspendState из Powrprof.dll, плохая идея. Оно видимо параметры не передаёт. Но SetSuspendState можно вызвать и по другому: - Вариант 1, через PowerShell и сборку Windows Forms
Команда для ярлыка (в одну строчку) Код: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe /noprofile /windowstyle hidden /command "using assembly System.Windows.Forms; using namespace System.Windows.Forms; [void] [Application]::SetSuspendState([PowerState]::Suspend, $false, $false)" | то же самое, для скрипта Suspend.ps1 Код: using assembly System.Windows.Forms using namespace System.Windows.Forms [void] [Application]::SetSuspendState([PowerState]::Suspend, $false, $false) | - Вариант 2, через PowerShell и .Net/Pinvoke
скрипт Suspend2.ps1 Код: if (!('Sleep' -as [type])) { Add-Type @" using System.Runtime.InteropServices; public class Sleep { /// <summary> /// Suspends the system by shutting power down. Depending on the Hibernate parameter, the system either enters a suspend (sleep) state or hibernation (S4). /// </summary> /// <param name="hibernate">If this parameter is TRUE, the system hibernates. If the parameter is FALSE, the system is suspended.</param> /// <param name="forceCritical">Windows Server 2003, Windows XP, and Windows 2000: If this parameter is TRUE, /// the system suspends operation immediately; if it is FALSE, the system broadcasts a PBT_APMQUERYSUSPEND event to each /// application to request permission to suspend operation.</param> /// <param name="disableWakeEvent">If this parameter is TRUE, the system disables all wake events. If the parameter is FALSE, any system wake events remain enabled.</param> /// <returns>If the function succeeds, the return value is true.</returns> /// <remarks>See http://msdn.microsoft.com/en-us/library/aa373201(VS.85).aspx</remarks> [DllImport("Powrprof.dll", SetLastError = true)] public static extern uint SetSuspendState(bool hibernate, bool forceCritical, bool disableWakeEvent); } "@ } [Sleep]::SetSuspendState($false, $false, $false) |
|