Главная страница
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.044 c
1-1103706352
Mishenka
2004-12-22 12:05
2005.01.09
Можно ли в ListBox сделать несколько Item ов не активными (типа E


9-1095512462
Jus
2004-09-18 17:01
2005.01.09
Как в DelphiX спрятать курсор и отображать?


4-1101013672
InfMag
2004-11-21 08:07
2005.01.09
SysTray просто и понятно


14-1103586406
Алексей
2004-12-21 02:46
2005.01.09
запись на cd-r


14-1103215583
}|{yk
2004-12-16 19:46
2005.01.09
Как из формата djvu "выдрать" картинки?