Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Обновление списка оборудования ОС   Найти похожие ветки 

 
Apophis ©   (2004-11-18 23:22) [0]

Подскажите, пожалуйста, как программно выполнить следующие действия (Win XP):
Мой компьютер --> Свойства --> Оборудование --> Диспетчер устройств --> !ОБНОВИТЬ! (да еще желательно и в фоне!)

Спасибо!


 
Defunct ©   (2004-11-18 23:26) [1]

Зачем???
да еще и в WinXP


 
Apophis ©   (2004-11-18 23:42) [2]

Ну надААА!!!
Так можно и как?


 
Юпитер   (2004-11-19 01:54) [3]

обновить не знаю но просто запустить.. это
Не получаца скрыть иконку внешней програмки

 WinExec("C:\windows\system32\devmgmt.exe",0);
 {хотя можно :) после запуска его скрыть и виртуально нажать сначала
  на компьютер в списке и кнопку обновить}
//чтобы скрыть
ShowWindow(FindWindow(0, "Диспетчер Устройств"),HIDE_WINDOW);

//чтобы закрыть
SendMessage(FindWindow(nil,"Диспетчер Устройств"), WM_CLOSE, 0, 0);


ниче не возможного :) еще существуют команды API только их надо искать... и комманды shell32 и user32...


 
DC-AC   (2004-11-19 08:26) [4]

Когда-то на эту тему был такой ответ :
--------------------------------------------------------------------------------
N170   (04.04.04 18:27) [1]
Поищите в MSDN статью:
"HOWTO: Force Reenumeration of a Device Tree From an Application"
[PSS ID Number: 259697]
[Q259697]

Там есть ответ с примером кода.

--------------------------------------------------------------------------------


 
Apophis ©   (2004-11-20 00:31) [5]

DC-AC

Найти-то я нашел, а как сие на Делфях будет выглядеть? Какие типы переменных и как их вызывать?

-----------------------------------
BOOL ScanForHardwareChanges()
{
   DEVINST     devInst;
   CONFIGRET   status;
   
   //
   // Get the root devnode.
   //
   
   status = CM_Locate_DevNode(&devInst, NULL, CM_LOCATE_DEVNODE_NORMAL);
   
   if (status != CR_SUCCESS) {
       printf("CM_Locate_DevNode failed: %x\n", status);
       return FALSE;

   }
   
   status = CM_Reenumerate_DevNode(devInst, 0);
   
   if (status != CR_SUCCESS) {
       printf("CM_Reenumerate_DevNode failed: %x\n", status));
       return FALSE;
   }

   return TRUE;
}    
-----------------------------------

Ну не сталкивался я Сями раньше :(


 
DC-AC   (2004-11-20 14:48) [6]

Я только привёл ответ. Сам я это не делал. Для Delphi сначала придётся поискать переведённый хидер Cfgmgr32.h содержащий описания структур и функций Cfgmgr32.dll или перевести его самому. На www.delpihi-jedi.org лежит много переведённых хидеров, сам пользовался Setupapi.pas. Скачай его, посмотри, может там что-нибудь похожее есть.



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

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.053 c
6-1098211849
magasoft
2004-10-19 22:50
2005.01.09
TidHTTP Client - что за блюдо и с чем едят?


14-1103709995
YurikGL
2004-12-22 13:06
2005.01.09
У кого есть HP 1000?


1-1103711338
runa
2004-12-22 13:28
2005.01.09
Как используется TAction


14-1102690000
Zilog
2004-12-10 17:46
2005.01.09
Мне кажется некоторые тут особо высокомерные


1-1103609939
DDDeN
2004-12-21 09:18
2005.01.09
Перезаписать используемый другой прогой файл