Wenn MacOS hochfährt und die Benutzer aufgefordert werden, die Konten auszuwählen, bei denen sie sich anmelden möchten, können die Benutzer entweder mit der Maus auf den Namen / das Symbol des Kontos klicken oder einfach den Namen des Kontos eingeben.
Ich möchte dasselbe auf dem Anmeldebildschirm von Windows 7 tun: Der Anmeldebildschirm wird angezeigt. Ich beginne mit der Eingabe meines Kontonamens, wähle das Konto mit aus enterund gebe dann das Kennwort ein und entererneut. Keine Benutzung der Maus beteiligt.
(Ich bin mir bewusst, dass Tab-Cycling und es schwierig sind, dem fast unsichtbaren Marker zu folgen, wo der Fokus gerade liegt.)
windows-7
login-screen
Akira
quelle
quelle
Antworten:
Sie möchten einen spezialisierten Anbieter für Anmeldeinformationen schreiben. Ich werde keine für Sie schreiben, nicht einmal für 5000 Wiederholungen, aber ich kann Sie in die richtige Richtung weisen.
Der Artikel Erstellen benutzerdefinierter Anmeldeerfahrungen mit Anbietern von Anmeldeinformationen für Windows Vista erläutert die Grundlagen der Abkehr von Microsoft vom früheren GINA-Modell. Es wird ein Beispiel entwickelt, das die neuen Funktionen über einen hybriden Anbieter von Anmeldeinformationen demonstriert, mit dem ein Benutzername, ein Kennwort und ein Domänenname auf einer Smartcard gespeichert werden können, sodass der Benutzer beim Einsetzen der Karte automatisch angemeldet wird.
Microsoft bietet auch Beispiele für Anbieter von Anmeldeinformationen zum Herunterladen an , die ein Übersichtsdokument enthalten, in dem beschrieben wird, wie diese erstellt werden.
Wenn Sie beabsichtigen, Ihren Anmeldeinformationsanbieter zu entwickeln, empfehle ich aus offensichtlichen Gründen dringend, ihn in einer virtuellen Maschine zu debuggen.
quelle
Wenn Sie noch einmal darüber nachdenken, gibt es viel einfachere Möglichkeiten, dies zu erreichen:
Option eins (bestätigt) : Ein guter alter Trick, um ein Programm auf dem Anmeldebildschirm auszuführen. :-)
Übernehmen Sie den Besitz von % WINDIR% \ System32 \ osk.exe und ersetzen Sie es durch das Programm ab Schritt 4.
Gehen Sie zum Ease of Access Center . Verwenden Sie den Computer ohne Maus oder Tastatur .
Aktivieren Sie die Option Bildschirmtastatur verwenden .
Speichern und zurückgehen, klicken Sie auf der linken Seite auf Administrative Einstellungen ändern .
Klicken Sie hier, um die Einstellungen auf den Anmeldedesktop anzuwenden und zu speichern.
Option 2 (sollte funktionieren) : Dienste werden immer ausgeführt, damit sie Programme auf dem Anmeldebildschirm starten können.
Schreiben Sie eine Dienst- C / C-Nummer , die früh startet, und legen Sie den Starttyp möglicherweise so fest, dass sie in der Registrierung gestartet wird.
Lassen Sie den Dienst C / C # erkennen, wenn winlogon.exe gestartet wird. Danach startet er unser Programm.
Option drei (scheint nicht zu funktionieren): Der Taskplaner bietet Optionen dafür. Ich habe versucht, basierend auf "Startup" und "Winlogon WGA Event" zu starten, aber beide waren nicht erfolgreich. Vielleicht muss ich einen anderen Benutzer festlegen als "System", damit dies funktioniert ... Alternative : Winlogon Notification DLL
Dies ermöglicht es uns, unser eigenes schriftliches Programm auf dem Anmeldebildschirm auszuführen!
Mit SetWindowsHookEx können Sie einen WH_KEYBOARD-Hook erstellen, um Eingaben zu verarbeiten.
Mit WMI können Sie alle lokalen Benutzer auflisten .
Durch Aufrufen von AutoItX- Funktionen können Sie den Windows-Anmeldebildschirm über Ihre App bearbeiten . Auf diese Weise können wir auch feststellen, ob wir uns auf dem Anmeldebildschirm befinden, indem wir überprüfen, ob der Explorer ausgeführt wird.
AutoItWindow zeigt an, dass der Bildschirm: lautet
Class: AUTHUI.DLL: LogonUI Logon Window
und das Kennwortfeld benannt istEdit1
, sodass Sie die eingegebenen Daten tatsächlich lesen können.Auf diese Weise sollten Sie in der Lage sein, ein Programm auszuführen, das auf die von Ihnen eingegebenen Zeichen wartet, die Liste der Konten abruft und bei Feststellung einer Übereinstimmung das entsprechende Konto automatisch vervollständigt .
Ich würde C ++ (Native) oder C # (PInvokes für API-Aufrufe, einfaches WMI) vorschlagen, aber jede Sprache könnte passen ...
Alternative:
quelle
Windows Vista und Windows 7 erledigen dies sofort für Domain-Anmeldungen.
Dies funktioniert nur in Windows-Editionen, die den Domänenbeitritt unterstützen. Möglicherweise können Sie ein Skript erstellen, das dies für Sie in anderen Editionen erledigt. Lassen Sie es mich wissen, und ich werde mich darum kümmern.
Starten
Group Policy Editor
(Start
>Run
>gpedit.msc
).Suchen Sie nach
Computer Config
\Windows Settings
\Security Settings
\Local Policies
\Security Options
\Interactive logon:
Do not display last user name
und setzen Sie dies aufEnabled
Wenn Sie sich das nächste Mal anmelden, sollten Sie in der Lage sein, den gewünschten Benutzernamen einzugeben.
quelle