![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Enable/disable divice [D5, D6, Win2k, WinXP]
KPbIC © (2002-05-12 03:46:00)Люди! Помогите плз., завтра надо сдать проект а я в тупике, как можно сделать disable/enable устройство, по типу того как это делается через Device manager в 2000/XP? Конкретно мне нужно сделать софт резет сетевушки, с таким же эффектом как и после деактивации/активации в Device manager, т.е. что-бы сменился при этом IP карточки. Не пишите как сменить IP карточки Это следствие того что мне нужно сделать...
KPbIC (2002-05-13 17:20:00) [1]ПОпробовал, значение меняется но сеть продолжает работать. Или это только после перезагрузки работает?
PGM (2002-05-13 11:07:00) [2]Мне надо было отключить конкретные видеоадаптеры под W2K. Вот так это было сделано.
const
MDEnumKey = "SYSTEM\CurrentControlSet\Enum\PCI\VEN_100C&DEV_3208&SUBSYS_00000000&REV_70\";
function DisableAllTsengs : Boolean;
var r : TRegistry;
s : TStringList;
i : Integer;
sDriver : String;
Config : Integer;
begin
Result := True;
r := TRegistry.Create;
s := TStringList.Create;
r.RootKey := HKEY_LOCAL_MACHINE;
try
if not r.OpenKeyreadOnly(MDEnumKey) then raise Exception.Create("Absent Enum Key");
r.GetKeyNames(s);
r.CloseKey;
for i := 0 to s.Count-1 do begin
r.RootKey := HKEY_LOCAL_MACHINE;
if not r.OpenKeyReadOnly(MDEnumKey+s[i]+"\")
then raise Exception.Create("Absent Key: "+s[i]);
sDriver := r.ReadString("Service");
r.CloseKey;
if sDriver = "et4000" then begin
r.RootKey := HKEY_CURRENT_CONFIG;
r.Access := KEY_SET_VALUE or KEY_QUERY_VALUE;
r.OpenKey(MDEnumKey+s[i]+"\", True);
try
Config := r.ReadInteger("CSConfigFlags");
except
Config := 0;
end;
if Config = 0 then begin
r.WriteInteger("CSConfigFlags", 1);
Result := False;
end;
r.CloseKey;
end;
end;
except
end;
s.Free;
r.Free;
end;
KPbIC (2002-05-12 19:11:00) [3]Увы, ничего там не нашёл :( То-ли смотрел плохо, то-ли нет там подходящей функции...
Exception (2002-05-12 16:55:00) [4]Попробуй посмотреть в MSDN документацию на WMI (Windows Management Instrumentation) - там скорее всего есть, но для того, чтоб ответить тебе более подробно, мне нужно заглядывать туда самому :)