![]() |
[Windows 98 SE] Gerät deaktivieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
weiß jemand, wie ich inter Windows 98 ein Gerät deaktivieren und wieder aktivieren kann? Wie es per Geräte-Manager geht, siehe Anhang, aber per eigenes Programm? Mfg FAlter |
Re: [Windows 98 SE] Gerät deaktivieren
Hi,
das müsste mit der Funktion "CM_Disable_DevNode" aus der CFGMGR32.dll gehen. Die Funktion ist auch in der CFGMGR32.dll unter Windows 98 SE vorhanden. |
Re: [Windows 98 SE] Gerät deaktivieren
Hi,
Danke erstmal für den Tipp, aber das MSDN hilft da nicht :( ![]() Zitat:
Was ich zu CM_Disable_DevNode finden konnte: ![]()
Code:
//
// Standardized Return Value data type // typedef DWORD RETURN_TYPE; typedef RETURN_TYPE CONFIGRET; // // Device Instance Handle data type // typedef DWORD DEVNODE, DEVINST; typedef DEVNODE *PDEVNODE, *PDEVINST; ... CMAPI CONFIGRET WINAPI CM_Enable_DevNode( IN DEVINST dnDevInst, IN ULONG ulFlags ); ... CMAPI CONFIGRET WINAPI CM_Disable_DevNode( IN DEVINST dnDevInst, IN ULONG ulFlags );
Delphi-Quellcode:
Bleibt die Frage, wie bekomme ich den ersten Parameter her, meinetwegen aus dem Gerätenamen, der angezeigt wird oder so.
function CM_Disable_DevNode(dnDevInst: DWord; ulFlags: LongWord): DWord; stdcall;
external 'CFGMGR32'; function CM_Enable_DevNode(dnDevInst: DWord; ulFlags: LongWord): DWord; stdcall; external 'CFGMGR32'; Mfg FAlter |
Re: [Windows 98 SE] Gerät deaktivieren
Hi,
Zitat:
Zitat:
![]() Ansonsten soll es auch mit Hilfe der Funktion CM_Locate_DevNodeA möglich sein DevInst zu bekommen. |
Re: [Windows 98 SE] Gerät deaktivieren
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
die Funktionen CM_Disable_DevNode und CM_Enable_DevNode funktionieren auch unter Windows 98 SE, das habe ich jetzt getestet. Allerdings entsteht damit eine Einschränkung, man kann mit der Funktion CM_Enable_DevNode das Gerät wieder aktivieren, nicht jedoch über das Fenster "Eigenschaften", da dort der Button "Gerät aktivieren" dann nicht vorhanden ist. Dafür erscheint der Hinweis: Zitat:
|
Re: [Windows 98 SE] Gerät deaktivieren
Hi,
unter XP funktioniert sowas (übrigens auch, wenn ichs mit dem Compilerschalter für Win98SE compiliere :D ):
Delphi-Quellcode:
Eingabe in der Form:
uses
CfgMgr32; ... var DN: DevNode; OK: Boolean; begin OK := false; if LoadConfigManagerApi then try Screen.Cursor := crHourGlass; if CM_Locate_DevNode(DN, PChar(Edit1.Text), CM_LOCATE_DEVNODE_NORMAL) = CR_SUCCESS then if CM_Disable_DevNode(DN, 0) = CR_SUCCESS then OK := true; finally Screen.Cursor := crDefault; UnloadConfigManagerApi; end; if not OK then ShowMessage('Fehler!'); end; ROOT\<gerät>\<nummer>, siehe "Instanzkennung" unter Geräte-Manager :arrow: Eigenschaften :arrow: Details. Hoffentlich findet man das unter W98 auch so leicht. Werds gleich mal unter W98SE testen. [edit] Unter Win98 sieht der Gerätenamen ungefähr so aus: USB\VID_0CF2&PID_6220\606569746801 Finden kann man ihn dort leider nicht so leicht; ich fand ihn unter HKEY_DYN_DATA\ConfigManager\Enum in der Registry - durch Suche nach "USB" uns ausprobieren, welches Gerät deaktiviert wird. Beim Nachmachen bitte vorsicht walten lassen. Das falsche Gerät zu deaktivieren kann vorhersehbare, aber schlimme Folgen haben. Es funktioniert! Danke für die Hilfe. [/edit] Mfg FAlter |
AW: Re: [Windows 98 SE] Gerät deaktivieren
Zitat:
muss ich jetzt oben die funktionsdeklaration auch benutzen oder funktioniert der untere Code einfach so wenn ich ihn rein kopier? wo muss ich meinen USB\VID_090C&PID_1000\LFBMMTURIAEMUNL3 einfügen? bei mir sagt er wenn ich kompiliere unsicherer Typ Pchar und [Fehler] : Undefinierter Bezeichner: 'Edit1'. wenn ich es deaktiviert habe wie aktivier ich es dann wieder? |
AW: Re: [Windows 98 SE] Gerät deaktivieren
Zitat:
|
AW: [Windows 98 SE] Gerät deaktivieren
@sneumann: Wenn du direkt auf einen Beitrag antwortest ist es nicht notwendig (auch nicht gewünscht) das du den kompletten vorangegangenen Beitrag zitierst. Wenn du auf einzelne Passagen eingehen willst das natürlich kein Problem. Aber den kompletten vorangegangenen Beitrag zu zitieren macht das ganze nur unnötige unübersichtlich. Bitte zukünftig versuchen zu vermeiden. :)
|
AW: Re: [Windows 98 SE] Gerät deaktivieren
Zitat:
Wenn Du etwas "rein kopierst" wird wahrscheinlich nichts funktionieren. Wenn Dir "Edit1" fehlt, dann könntest Du a)Edit1 entfernen, b)Edit1 anlegen, c)einen Ersatz für Edit1 anlegen. Übrigens ![]() Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz