我可以在 Vista 中模拟 C#/C ++ 代码++Control序列吗?何时启用/禁用 UAC?它是如何在 XP 中完成的?AltDelete
你能提供一个适用于 Vista 的代码示例吗?
我可以在 Vista 中模拟 C#/C ++ 代码++Control序列吗?何时启用/禁用 UAC?它是如何在 XP 中完成的?AltDelete
你能提供一个适用于 Vista 的代码示例吗?
用于模拟安全注意序列 (SAS) 的现有代码(大多数人将其称为 control alt delete 或 ctrl-alt-del)在 Windows Vista 中不再有效。微软似乎提供了一个库来导出一个名为 SimulateSAS() 的函数。它不是公开的,应该通过向 saslib@microsoft.com 发送邮件来请求它。
有一个类似的库可用,具有以下功能:
请注意,这个库不是免费的。同时,如果您对此感兴趣,可以联系info@simulatesas.com 。
请使用以下信息,“saslib@microsoft.com”已被弃用,不太可能得到任何回复。以下信息就足够了。
从 Windows 7 操作系统和随附的软件开发工具包 (SDK) 的公共可用性开始,Vista 应用程序的 SAS 功能将只能通过 Windows SDK 提供。通过电子邮件对 SASLIB 包的发布支持,并且将停止使用 saslib。
有关如何下载平台 SDK 的信息,请访问以下链接的“Windows SDK for Windows 7 and .Net Framework 3.5 SP1”的 Microsoft 下载中心页面:http: //www.microsoft.com/downloads/details .aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en。
安装此 SDK 后,您将在 redist 目录中找到可再发行的 sas.dll:
\Program Files\Microsoft SDKs\Windows\v7.0\redist\x86\sas.dll
\Program Files\Microsoft SDKs\Windows\v7.0\redist\amd64\sas.dll
\Program Files\Microsoft SDKs\Windows\v7.0\redist\ia64\sas.dll
我已将此网址添加为书签,希望对您有所帮助。 http://softltd.wordpress.com/simulate-ctrl-alt-del-in-windows-vista-7-and-server-2008/
PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG(MOD_ALT | MOD_CONTROL, VK_DELETE));
您从 user32 dll 获得 PostMessage
编辑:VNC 讨论了为什么这在 Vista 中不起作用以及如何设置 UAC 以允许它。
您只需从服务进程中调用下一个代码
HDESK desktop = OpenDesktopW(L"Winlogon", 0, TRUE,
DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW | DESKTOP_ENUMERATE |
DESKTOP_HOOKCONTROL | DESKTOP_WRITEOBJECTS | DESKTOP_READOBJECTS |
DESKTOP_SWITCHDESKTOP | GENERIC_WRITE);
int result = SetThreadDesktop(desktop);
if (result)
{
HMODULE sasdll = LoadLibraryA("sas.dll");
if (sasdll)
{
typedef void(__stdcall * SendSAS_t)(BOOL);
SendSAS_t sendSAS = (SendSAS_t)GetProcAddress(sasdll, "SendSAS");
if (sendSAS)
sendSAS(FALSE);
}
}
CloseDesktop(desktop);