Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Вниз

Кто может подкмнуть описание ф-ции SetupDiChangeState?   Найти похожие ветки 

 
yuger   (2002-02-11 10:24) [0]

Я где-то нарыл описание на С++:

WINSETUPAPI BOOL WINAPI
SetupDiChangeState(
IN HDEVINFO DeviceInfoSet,
IN OUT PSP_DEVINFO_DATA DeviceInfoData
);
К сожалению не смог найти описание
HDEVINFO и OUT PSP_DEVINFO_DATA

Еще нашел:

Как, например, сетевую карту "отключить в данной конфигурации" через Win32 API?
Мой компьютеp->Свойства->Устpойства->NetCard->Отключено в данной конфигypации можно сделать программно:
Если в Win95 DiChangeState(lpdi, DICS_DISABLE, DICS_FLAG_CONFIGSPECIFIC); - только yчтите, что setupx.dll 16-битовая
Если в 98 или nt SetupDiChangeState


Может кто знает как с ней работать в Delphi.
Ее описание на Delphi.

Эта функция включает/отключает устройство из конфигурации.


 
VuDZ   (2002-02-11 11:10) [1]

//
// Define type for reference to device information set
//
typedef PVOID HDEVINFO;


т.е. HDEVINFO - прсто указатель на что угодно

//
// Device information structure (references a device instance
// that is a member of a device information set)
//
typedef struct _SP_DEVINFO_DATA {
DWORD cbSize;
GUID ClassGuid;
DWORD DevInst; // DEVINST handle
ULONG_PTR Reserved;
} SP_DEVINFO_DATA, *PSP_DEVINFO_DATA;


PSP_DEVINFO_DATA - указатель на структуру _SP_DEVINFO_DATA


 
yuger   (2002-02-12 09:53) [2]

Спасибо за информацию.
Меня это интересует в контексте
вкл/откл устройства.
В каких полях и какие значения надо для включения и выключения
выставлять?
Заранее спасибо.


 
VuDZ   (2002-02-12 14:57) [3]

я с этим никогда не работал но есть такие мысли, сюдя по полям:
HDEVINFO = указатель на открытый каким-либо образом девайс

DWORD cbSize = размер структуры
GUID ClassGuid = GUID девайса - брать из реестра или другими методами
DWORD DevInst = бес понятия
ULONG_PTR Reserved = указатель на 32х переменную. т.к. reserved, я обычно в таких случаях пишу NULL, т.е. nil на паскале.

Попробуй поискать с инете, где-то да должны быть описания


 
VuDZ   (2002-02-14 13:00) [4]


(C)Галина

void DisableLPT(TECP *ECP)
{
SP_DEVINFO_DATA DevInfoData;
DevInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
SP_PROPCHANGE_PARAMS DevChngParams;
DevChngParams.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
DevChngParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
DevChngParams.StateChange = DICS_DISABLE;
DevChngParams.Scope = DICS_FLAG_GLOBAL;
DevChngParams.HwProfile = 0;
//char PropertyBuffer[5000];

GUID ClassGuid = {0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18};
//GUID ClassGuid = {0x78A1C341, 0x4539, 0x11D3, 0xB8, 0x8D, 0x00, 0xC0, 0x4F, 0xAD, 0x56, 0x71};
bool t;

DevInfo = SetupDiGetClassDevs(
&ClassGuid,
NULL,
NULL,
0
);
t = INVALID_HANDLE_VALUE!=DevInfo;

wchar_t WideCharStr[1000];
MultiByteToWideChar(
CP_ACP,
NULL,
ECP->DeviceName,
-1,
WideCharStr,
1000
);

t = SetupDiOpenDeviceInfo(
DevInfo,
ECP->DeviceName,
NULL,
0,
&DevInfoData
);
//DWORD RequiredSize = sizeof(DevChngParams);
t = SetupDiSetClassInstallParams(
DevInfo,
&DevInfoData,
(PSP_CLASSINSTALL_HEADER)&DevChngParams,
sizeof(DevChngParams)
);
// GetError();

t = SetupDiCallClassInstaller(
DIF_PROPERTYCHANGE,
DevInfo,
&DevInfoData
);

}



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
4-39906
Aric
2002-03-12 15:24
2002.05.13
Перерисовать Image


1-39736
MaGG
2002-04-27 12:48
2002.05.13
Как в программе выполнить копирование файла?


7-39868
Konsul
2002-02-15 12:31
2002.05.13
Пуск-Программы


6-39809
Landgraph
2002-02-28 09:21
2002.05.13
Еще про прокси...


1-39793
Sound
2002-04-29 10:44
2002.05.13
ListBox и перетаскивание елементов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский