Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
14-1103642476
Болтуны, кто они?
2004-12-21 18:21
2005.01.09
Предлагаю выбрать наиболее болтливых, по принципу:


14-1103107899
Человек счетчик
2004-12-15 13:51
2005.01.09
Поставте счетчик на форуме, кто сколько ответил


1-1103625147
}|{yk
2004-12-21 13:32
2005.01.09
Memo и Unicode


1-1103620067
Sha
2004-12-21 12:07
2005.01.09
MSWord: узнать Cell.Width в случае Cell.Width=wdUndefined


11-1085226971
Yustas
2004-05-22 15:56
2005.01.09
Не работает Message




   Наверх