Weiter zum Hauptinhalt
Dieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Aktivieren und Deaktivieren von AutoRun
- Artikel
- 09/21/2022
- 5 Minuten Lesedauer
In diesem Artikel
Es gibt viele Situationen, in denen AutoRun vorübergehend oder dauerhaft deaktiviert werden muss. Beispielsweise kann AutoRun den Vorgang einer ausgeführten Anwendung beeinträchtigen und für die Dauer deaktiviert werden. Das System bietet verschiedene Möglichkeiten zum Deaktivieren von AutoRun.
- Programmgesteuertes Unterdrücken von AutoRun
- Verwenden der Registrierung zum Deaktivieren von AutoRun
- AutoRun für andere Arten von Storage Medien
Programmgesteuertes Unterdrücken von AutoRun
Es gibt eine Vielzahl von Situationen, in denen AutoRun programmgesteuert unterdrückt werden muss. Zwei Beispiele:
- Ihre Anwendung verfügt über ein Setupprogramm, das erfordert, dass der Benutzer einen anderen Datenträger einfügt, der möglicherweise eine Autorun.inf-Datei enthält.
- Während des Vorgangs Ihrer Anwendung muss der Benutzer möglicherweise einen anderen Datenträger einfügen, der eine Autorun.inf-Datei enthalten kann.
In beiden Fällen möchten Sie normalerweise keine andere Anwendung starten, während das Original ausgeführt wird.
Benutzer können AutoRun manuell unterdrücken, indem Sie die UMSCHALTTASTE gedrückt halten, wenn sie die CD-ROM einfügen. Es empfiehlt sich jedoch in der Regel, diesen Vorgang programmgesteuert zu behandeln, anstatt je nach Benutzer zu arbeiten.
Bei Systemen mit Shell-Version 4.70 und höher sendet Windows eine Meldung "QueryCancelAutoPlay" an das Vordergrundfenster. Ihre Anwendung kann auf diese Nachricht reagieren, um AutoRun zu unterdrücken. Dieser Ansatz wird von Systemprogrammen wie dem allgemeinen Dialogfeld " Öffnen " verwendet, um AutoRun zu deaktivieren.
Die folgenden Codefragmente veranschaulichen, wie Sie diese Nachricht einrichten und behandeln. Ihre Anwendung muss im Vordergrundfenster ausgeführt werden. Registrieren Sie zuerst "QueryCancelAutoPlay" als Windows Nachricht:
uMessage = RegisterWindowMessage(TEXT("QueryCancelAutoPlay"));Das Fenster Ihrer Anwendung muss sich im Vordergrund befinden, um diese Nachricht zu empfangen. Der Nachrichtenhandler sollte TRUE zurückgeben, um AutoRun und FALSE abzubrechen, um ihn zu aktivieren. Das folgende Codefragment veranschaulicht, wie Diese Meldung zum Deaktivieren von AutoRun verwendet wird.
UINT g_uQueryCancelAutoPlay = 0; LRESULT WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { ... default: if (!g_uQueryCancelAutoPlay) { g_uQueryCancelAutoPlay = RegisterWindowMessage(TEXT("QueryCancelAutoPlay")); } if (uMsg && uMsg == g_uQueryCancelAutoPlay) { return TRUE; // Cancel AutoRun } } }Wenn Ihre Anwendung ein Dialogfeld verwendet und auf eine Meldung "QueryCancelAutoPlay" antworten muss, kann sie nicht einfach WAHR oder FALSCH zurückgeben. Rufen Sie stattdessen SetWindowLong mit nIndex auf DWL_MSGRESULT. Legen Sie den dwNewLong-Parameter auf TRUE fest, um AutoRun abzubrechen, und FALSE , um ihn zu aktivieren. Die folgende Beispieldialogfeldprozedur bricht z. B. autoRun ab, wenn sie eine Meldung "QueryCancelAutoPlay" empfängt.
UINT g_uQueryCancelAutoPlay = 0; BOOL DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { ... default: if (!g_uQueryCancelAutoPlay) { g_uQueryCancelAutoPlay = RegisterWindowMessage(TEXT("QueryCancelAutoPlay")); } if (uMsg == g_uQueryCancelAutoPlay) { SetWindowLong(hDlg, DWL_MSGRESULT, TRUE); return 1; } }Verwenden der Registrierung zum Deaktivieren von AutoRun
Es gibt zwei Registrierungswerte, die verwendet werden können, um AutoRun dauerhaft zu deaktivieren: NoDriveAutoRun und NoDriveTypeAutoRun. Der erste Wert deaktiviert AutoRun für angegebene Laufwerkbuchstaben und das zweite deaktiviert AutoRun für eine Klasse von Laufwerken. Wenn ein dieser Werte so festgelegt ist, dass AutoRun für ein bestimmtes Gerät deaktiviert wird, wird er deaktiviert. Weitere Informationen zum Deaktivieren der AutoRun-Funktionalität finden Sie im Knowledge Base-Artikel zum Deaktivieren der AutoRun-Funktionalität in Windows. In diesem Artikel werden die verschiedenen Updates aufgeführt, die Sie installiert haben müssen, um die Autorun-Funktion ordnungsgemäß zu deaktivieren.
Hinweis
Die Werte "NoDriveAutoRun" und "NoDriveTypeAutoRun" sollten nur von Systemadministratoren geändert werden, um den Wert für das gesamte System für Tests oder administrative Zwecke zu ändern. Anwendungen sollten diese Werte nicht ändern, da es keine Möglichkeit gibt, sie zuverlässig in ihre ursprünglichen Werte wiederherzustellen.
Der NoDriveAutoRun-Wert deaktiviert AutoRun für angegebene Laufwerkbuchstaben. Es handelt sich um einen REG_DWORD Datenwert, der unter dem folgenden Schlüssel gefunden wird:
HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Policies ExplorerDer erste Bit des Werts entspricht laufwerk A:, der zweite zu B:, usw. Wenn Sie AutoRun für ein oder mehrere Laufwerkbuchstaben deaktivieren möchten, legen Sie die entsprechenden Bits fest. Um z. B. A: und C: Laufwerke zu deaktivieren, legen Sie NoDriveAutoRun auf 0x00000005.
Der NoDriveTypeAutoRun-Wert deaktiviert AutoRun für eine Klasse von Laufwerken. Es handelt sich um einen REG_DWORD- oder 4-Byte-REG_BINARY Datenwert, der unter demselben Schlüssel gefunden wird.
HKEY_CURRENT_USER Software Microsoft Windows CurrentVersion Policies ExplorerDurch Festlegen der Bits des ersten Bytes dieses Werts können unterschiedliche Laufwerke von der Arbeit mit AutoRun ausgeschlossen werden.
In der folgenden Tabelle werden die Bits und Bitmaskenkonstanten angezeigt, die im ersten Byte von NoDriveTypeAutoRun festgelegt werden können, um AutoRun für einen bestimmten Laufwerktyp zu deaktivieren. Sie müssen Windows Explorer neu starten, bevor die Änderungen wirksam werden.
0x04 | DRIVE_REMOVEABLE | Der Datenträger kann vom Laufwerk entfernt werden (z. B. einen Diskettendatenträger). |
0x08 | DRIVE_FIXED | Der Datenträger kann nicht vom Laufwerk (einer Festplatte) entfernt werden. |
0x10 | DRIVE_REMOTE | Netzwerklaufwerk. |
0x20 | DRIVE_CDROM | CD-ROM-Laufwerk |
0x40 | DRIVE_RAMDISK | RAM-Datenträger. |
AutoRun ist in erster Linie für die öffentliche Verteilung von Anwendungen auf CD-ROM und DVD-ROM vorgesehen, und die Verwendung wird für andere Speichermedien abgeraten. Es ist jedoch häufig nützlich, AutoRun auf anderen Arten von Wechselmedien zu aktivieren. Dieses Feature wird in der Regel verwendet, um das Debuggen von AutoRun.inf-Dateien zu vereinfachen. AutoRun funktioniert nur auf Wechselmedien, wenn die folgenden Kriterien erfüllt sind:
- Das Gerät muss über autoRun-kompatible Treiber verfügen. Um autoRun-kompatibel zu sein, muss ein Treiber das System benachrichtigen, dass ein Datenträger eingefügt wurde, indem eine WM_DEVICECHANGE Nachricht gesendet wird.
- Das Stammverzeichnis der eingefügten Medien muss eine Autorun.inf-Datei enthalten.
- Das Gerät darf über die Registrierung nicht autoRun deaktiviert sein.
- Die Vordergrundanwendung hat autoRun nicht unterdrückt .
Hinweis
Dieses Feature sollte nicht verwendet werden, um Anwendungen auf Wechselmedien zu verteilen. Da die Implementierung von AutoRun auf wechselbaren Medien eine einfache Möglichkeit zum Verbreiten von Computerviren bietet, sollten Benutzer alle öffentlich verteilten Floppydatenträger, die eine Autorun.inf-Datei enthalten, verdächtig sein.
Normalerweise wird AutoRun automatisch gestartet, kann aber auch manuell gestartet werden. Wenn das Gerät die oben aufgeführten Kriterien erfüllt, enthält das Kontextmenü des Laufwerkbuchstabens einen Befehl für die automatische Wiedergabe . Wenn Sie AutoRun manuell ausführen möchten, klicken Sie entweder mit der rechten Maustaste auf das Laufwerksymbol, und wählen Sie im Kontextmenü die automatische Wiedergabe aus, oder doppelklicken Sie auf das Laufwerksymbol. Wenn die Treiber nicht autoRun-kompatibel sind, verfügt das Kontextmenü nicht über ein Element für die automatische Wiedergabe , und AutoRun kann nicht gestartet werden.
AutoRun-kompatible Treiber werden mit einigen Wechseldatenträgern sowie einigen anderen Arten von Wechselmedien wie CompactFlash-Karten bereitgestellt. AutoRun funktioniert auch mit Netzwerklaufwerken, die einem Laufwerkbuchstaben mit Windows Explorer zugeordnet sind oder mit der Microsoft Management Console (MMC) bereitgestellt werden. Wie bei bereitgestellter Hardware muss ein bereitgestelltes Netzwerklaufwerk über eine Autorun.inf-Datei im Stammverzeichnis verfügen und nicht über die Registrierung deaktiviert werden.