Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DmitryR
Сообщений: n/a
#1

Как програмно установить устрройство в системе Win9x/2000? - C++

14.02.2010, 15:19. Просмотров 750. Ответов 4
Метки нет (Все метки)

Как програмно установить устрройство в системе Win9x/2000?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2010, 15:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как програмно установить устрройство в системе Win9x/2000? (C++):

Как програмно попасть в system32 - C++
Всем привет! Здаюсь таким вопросом: как, не зная на каком диске виндовс, попасть в system32, т. е. что бы вместо этого std::ifstream...

Как програмно создать переменную? - C++
как програмно создать переменную. тойст чтобы в нужном месте программа сама могла создавать переменную такую какую буден нужно ...

Как програмно получить название пункта меню? - C++
ребят как выяснить название пункта меню програмно например: в офиссе в меню File первый подпункт Neu это мы видем когда открываем File а...

Как програмно запустить презентецию MS PowerPoint 2013 - C++
Суть проблемы я создал программно презентацию PowerPoint, теперь необходимо открыть его непосредственно в PowerPoint в ходе выполнения...

Как програмно развернуть окно программы (консоль)? - C++
подскажите как можно програмно развернуть окно программы(консоль)

Как програмно узнать сколько элементов в перечислении? - C++
Допустим, есть такое перечисление. enum Month{JANUARY=1, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER,...

4
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
15.02.2010, 13:13 #2
Установить драйвер для этого устройства
0
DmitryR
Сообщений: n/a
15.02.2010, 15:24 #3
И как это можно сделать? Можно примерчик какой-нибудь?
Примеры из ддк - почему-то отказываются работать на 9х :-(
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
15.02.2010, 15:38 #4
Я как раз подумывал отправить тебя посмотреть DDK. Но раз ты говоришь, что уже пробовал... Хм... попробуй посмотреть вот здесь

http://www.codeproject.com/system/#Device+Drivers
http://www.codeproject.com/system/tdriver.asp

http://www.codeguru.com/system/index.shtml
http://www.codeguru.com/system/KbdClass.shtml

Но я все же думаю, тебе нужно перво наперво заставить работать примеры из DDK.

С уважением, Владимир
0
DmitryR
Сообщений: n/a
16.02.2010, 12:16 #5
Вот не знаю уж где и копать - под 2000 - все просто зашибись. Под 98 - рушится при вызове SetupDiCreateDeviceInfo. GetLastError говорит что-то вроде Invalid data - очень млин содержательно... :-(

BOOL CInstall::InstallDriver(char *szName, char *szVersion, char *szURL)
{
// perform driver installation
HDEVINFO DeviceInfoSet = 0;
SP_DEVINFO_DATA DeviceInfoData;
GUID ClassGUID;
TCHAR ClassName[MAX_CLASS_NAME_LEN];
DWORD err;
SP_DEVINSTALL_PARAMS par;
SP_DRVINFO_DATA drvdata;
//
// Use the INF File to extract the Class GUID.
//
if (!SetupDiGetINFClass(szURL, &ClassGUID, ClassName,sizeof(ClassName),0))
{
return FALSE;
}

//
// Create the container for the to-be-created Device Information Element.
//
DeviceInfoSet = SetupDiCreateDeviceInfoList(&ClassGUID,0);
if(DeviceInfoSet == INVALID_HANDLE_VALUE)
{
return FALSE;
}

//
// Now create the element.
// Use the Class GUID and Name from the INF file.
//
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
if (!SetupDiCreateDeviceInfo(DeviceInfoSet,
ClassName,
&ClassGUID,
NULL,
0,
DICD_GENERATE_ID,
&DeviceInfoData))
{
goto cleanup_DeviceInfo;
}


if (!SetupDiRegisterDeviceInfo(DeviceInfoSet, &DeviceInfoData, 0, NULL, 0, NULL)){

goto cleanup_DeviceInfo;

}

par.cbSize = sizeof(par);
par.ClassInstallReserved = 0;
strcpy(par.DriverPath, szURL);
par.FileQueue = NULL;
par.Flags = DI_ENUMSINGLEINF|DI_COMPAT_FROM_CLASS | DI_QUIETINSTALL;
par.FlagsEx = 0;
par.hwndParent = NULL;
par.InstallMsgHandler = NULL;
par.InstallMsgHandlerContext = NULL;

if (!SetupDiSetDeviceInstallParams(DeviceInfoSet, &DeviceInfoData, &par)){

goto cleanup_DeviceInfo;

}

if (!SetupDiBuildDriverInfoList (DeviceInfoSet, &DeviceInfoData, SPDIT_CLASSDRIVER )){

goto cleanup_DeviceInfo;

}


drvdata.cbSize = sizeof(drvdata);
if(!SetupDiEnumDriverInfo(DeviceInfoSet, &DeviceInfoData, SPDIT_CLASSDRIVER ,
0, &drvdata)){

goto cleanup_DeviceInfo;

}

if(!SetupDiSetSelectedDriver (DeviceInfoSet, &DeviceInfoData, &drvdata)){

goto cleanup_DeviceInfo;

}

//
// Transform the registry element into an actual devnode
// in the PnP HW tree.
//
if (!SetupDiCallClassInstaller(DIF_INSTALLDEVICE,
DeviceInfoSet,
&DeviceInfoData))
{

goto cleanup_DeviceInfo;
}


//
// Cleanup.
//
cleanup_DeviceInfo:
err = GetLastError();
SetupDiDestroyDeviceInfoList(DeviceInfoSet);
SetLastError(err);

return TRUE;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2010, 12:16
Привет! Вот еще темы с ответами:

Как програмно показать разницу между typename и class в шаблонных классах? - C++
Нужно програмно показать в чем разница между typename и class в шаблонных класах(когда пишем тип параметра), помогите пожалуйста

Take ownership или Как Програмно установить владельца - Delphi
function GetComputerNetName: string; var buffer: array of char; size: dword; begin size := 256; if...

Как снять / установить защиту на несколько листов програмно? - VBA
Нужен код, который снимал/устанавливал пароль на листы в Exel. Фишка типа: Sheets(Array('F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',...

Как установить SQL 2000? - SQL Server
Помогите с проблемкой, когда ток начинаю устанавливать SQL2000 вылазиет така интересная штука "A strong SA password is required for...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
16.02.2010, 12:16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru