2008-09-23 9 views

Répondre

5

Le code existant pour simuler la séquence SAS (Secure Attention Sequence), que la plupart des gens appellent contrôle alt delete ou ctrl-alt-del, ne fonctionne plus sous Windows Vista. Il semble que Microsoft propose une bibliothèque qui exporte une fonction appelée SimulateSAS(). Ce n'est pas public et on est supposé le demander en envoyant un mail à [email protected]

Il y a un similar library disponible avec les caractéristiques suivantes:

  • travaille à la fois avec et sans Contrôle de compte d'utilisateur (UAC)
  • Prise en charge actuelle, la console et une session Terminal Server
  • Does not besoin d'un pilote
  • L'application appelante n'a pas besoin de pour être signée ou d'avoir un manifeste spécial
  • Prise en charge des programmes multiples langues

S'il vous plaît noter que cette bibliothèque est pas libre. En attendant, vous pouvez contacter [email protected] si cela vous intéresse.

+1

Profitez de votre badge Nécromancien! –

+0

Merci pour le lien vers mon SasLibEx qui supporte en effet simuler SAS et beaucoup plus! – Remko

0

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

Vous obtenez PostMessage de la dll user32

modifier: CodeProject article that has code for it

edit: Il y a quelques discussion from VNC pourquoi cela ne fonctionne pas dans Vista et comment mettre en place pour lui permettre UAC.

+0

avant mod you up :), l'article ne mentionne pas v ista. ça marche avec Vista? –

+0

Non - Regardez l'article sur VNC pour les avertissements pour l'envoi de CTRL-ALT-DEL à Vista avec UAC activé. Vous ne pouvez pas faire ça, semble-t-il. Il y a des façons d'afficher le Gestionnaire des tâches si c'est ce que vous voulez faire. –

2

Veuillez utiliser les informations ci-dessous, "[email protected]" est obsolète et moins susceptible d'obtenir des réponses. Les informations ci-dessous sont suffisantes. À compter de la disponibilité publique du système d'exploitation Windows 7 et du kit de développement logiciel (SDK) qui l'accompagne, la fonctionnalité SAS pour les applications Vista ne sera disponible que via le SDK Windows. Le support de version par courrier électronique du package SASLIB et le saslib seront supprimés. Vous trouverez des informations sur le téléchargement du SDK de la plate-forme sur la page Centre de téléchargement Microsoft pour le "Windows SDK pour Windows 7 et .Net Framework 3.5 SP1" au lien suivant: http://www.microsoft.com/downloads/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en. Après avoir installé ce SDK, vous trouverez le sas redistribuable.dll dans le répertoire Redist:

\ 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

+1

Remarque: Sous Windows 7 et Windows Server 2008 R2, le package SASLIB n'est pas nécessaire et ne doit pas être utilisé. Windows 7 et Windows Server 2008 R2 disposent d'une fonctionnalité SAS intégrée pouvant être appelée via la fonction SendSAS. SendSAS est documenté sur MSDN à l'emplacement suivant: http://msdn.microsoft.com/en-us/library/dd979761(VS.85).aspx. Vous pouvez également consulter la documentation suivante car elle peut fournir la fonctionnalité que vous souhaitez à la place de SASLIB: • Créer des expériences de connexion personnalisées avec les fournisseurs d'informations d'identification pour Windows Vista: http://msdn.microsoft.com/fr-fr/magazine /cc163489.aspx –

0

Vous devez appeler le code suivant de processus de service uniquement

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); 
+0

Vous devez également définir une clé de registre ** HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ System \ SoftwareSASGeneration ** à 1 ou 3. [Vous pouvez voir les informations ici] (https: // getadmx .com /? Catégorie = Windows_10_2016 & Policy = Microsoft.Policies.WindowsLogon2 :: SoftwareSASGeneration) – fdioff

Questions connexes