5

我可以在 Vista 中模拟 C#/C ++ 代码++Control序列吗?何时启用/禁用 UAC?它是如何在 XP 中完成的?AltDelete

你能提供一个适用于 Vista 的代码示例吗?

4

5 回答 5

6

用于模拟安全注意序列 (SAS) 的现有代码(大多数人将其称为 control alt delete 或 ctrl-alt-del)在 Windows Vista 中不再有效。微软似乎提供了一个库来导出一个名为 SimulateSAS() 的函数。它不是公开的,应该通过向 saslib@microsoft.com 发送邮件来请求它。

有一个类似的库可用,具有以下功能:

  • 使用和不使用用户帐户控制 (UAC) 均可
  • 支持当前、控制台和任何终端服务器会话
  • 不需要司机
  • 调用应用程序不需要签名或具有特殊清单
  • 支持多种编程语言

请注意,这个库不是免费的。同时,如果您对此感兴趣,可以联系info@simulatesas.com 。

于 2009-05-11T19:03:02.840 回答
2

请使用以下信息,“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

于 2015-01-21T01:37:18.510 回答
1

我已将此网址添加为书签,希望对您有所帮助。 http://softltd.wordpress.com/simulate-ctrl-alt-del-in-windows-vista-7-and-server-2008/

于 2012-07-31T08:07:44.177 回答
0

PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG(MOD_ALT | MOD_CONTROL, VK_DELETE));

您从 user32 dll 获得 PostMessage

编辑:包含代码的 CodeProject 文章

编辑:VNC 讨论了为什么这在 Vista 中不起作用以及如何设置 UAC 以允许它。

于 2008-09-23T17:15:26.657 回答
0

您只需从服务进程中调用下一个代码

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);
于 2017-12-05T15:01:42.147 回答