Rezime
Ovaj članak opisuje kako da prizovem uređaj dijalogSvojstva u aplikaciji ili sa komandne linije pomoću funkcije DeviceProperties_RunDLL .
Više informacija
Pomoću upravljača uređajima možete da pokrenete uređaj dijalog Svojstva za određeni uređaj. Koristeći funkciju DeviceProperties_RunDLL iz Devmgr.dll datoteke, korisnici mogu da pokrenu dijalog sa svojstvima uređaja ili programski ili sa komandne linije.
Funkcija prototipa
void DeviceProperties_RunDLL( HWND hwndStub, HINSTANCE hAppInstance, LPCTSTR lpCmdLine, int nCmdShow ) /*++ Routine Description: This API opens the property pages for the specified device. This function can be executed by means of a rundll command line and will have the following form: rundll32.exe devmgr.dll, DeviceProperties_RunDLL <options> Arguments: hwndStub - Windows handle to receive any message boxes that might appear. hAppInstance - HINSTANCE. lpCmdLine - Command line options passed in (for example, /DeviceID <device instance Id>). nCmdShow - Flag that specifies how device manager should be shown when it is opened. It can be one of the SW_ values (for example, SW_SHOW). Return Value: none --*/
Opcije komandne linije
Funkcija DeviceProperties_RunDLL prihvata sledeće opcije komandne linije:Napomena opcija imena, /DeviceId i /MachineName, ne razlikuju.
-
/DeviceId < uređaj Id instance > Ova opcija određuje uređaj kojem će prikazati svojstva za. Pozivalac morate navesti DeviceId. Može se preuzeti iz registra ili iz "Upravljač uređajima". Za više informacija o konfigurisanju Upravljač uređajima da biste prikazali informacije o DeviceId , pogledajte odeljak „Reference”.
-
/MachineName < ime mašine > Ova opcija određuje ime mašina gde je uređaj pripada. Ova opcija je potreban ako funkcija se koristi za aplikacije u operativnom sistemu Windows 2000, to jest, potrebno je da navedete ovu opciju, ni mašina ime je prazno u slučaju lokalnog računara.
Prizivamo programsko
Za programsko pozivanje dijaloga " Svojstva " uređaj, morate učitati Devmgr.dll, a zatim da pribavite adresu funkcije. Takođe morate definisati makro da se mapiraju u prototip za odgovarajuće (ili Non-podržava Unikod). Sledeći je uzorak koda:
#ifdef _UNICODE #define DeviceProperties_RunDLL "DeviceProperties_RunDLLW" typedef void (_stdcall *PDEVICEPROPERTIES)( HWND hwndStub, HINSTANCE hAppInstance, LPWSTR lpCmdLine, int nCmdShow ); #else #define DeviceProperties_RunDLL "DeviceProperties_RunDLLA" typedef void (_stdcall *PDEVICEPROPERTIES)( HWND hwndStub, HHINSTANCE hAppInstance, LPSTR lpCmdLine, int nCmdShow ); #endif PDEVICEPROPERTIES pDeviceProperties; HINSTANCE hDevMgr = LoadLibrary(_TEXT("devmgr.dll")); if (hDevMgr) { pDeviceProperties = (PDEVICEPROPERTIES)GetProcAddress((HMODULE)hDevMgr, DeviceProperties_RunDLL); } if (pDeviceProperties){ pDeviceProperties(m_hWnd, hInst, _TEXT("/MachineName \"\" /DeviceID PCI\\VEN_8086\&DEV_2445\&SUBSYS_010E1028 \&REV_12\\3\&172E68DD\&0\&FD"), SW_SHOW); }
Prizivamo iz komandne linije
Da iskopamo uređaj dijalog sa svojstvima iz komandne linije, Pokreni komande kao sljedeće naredbe:
-
rundll32.exe devmgr.dll,DeviceProperties_RunDLL /DeviceID root\system\0000
-
rundll32.exe devmgr.dll,DeviceProperties_RunDLL /MachineName "" /DeviceID root\system\0000
-
rundll32.exe devmgr.dll,DeviceProperties_RunDLL /DeviceID „PCI\VEN_8086 & DEV_2445 & SUBSYS_010E1028 & REV_12\3 & 172E68DD & 0 & FD”
Napomena Ako postoji simbol ampersand (&) za ID instance uređaja, morate otkucati dvostrukih navodnika iskaznicu.
Reference
Za više informacija, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
304514 kako konfigurirati "Upravljač uređajima" da biste prikazali detaljne informacije
164787 Windows Rundll i Rundll32 interfejsi