API do instalowania sterownikow urzadzen

0

W jaki sposob i przy uzyciu jakich funkcji mozna z wlasnego programu zainstalowac sterowniki urzadzenia majac plik .inf ????

dzieki

oczywiscie chodzi o syetem Windows

0

sprawdzalem na stronie Microsoft http://msdn2.microsoft.com/en-us/library/ms647732.aspx i nie ma nic o tym by parametr lpOperation mógł być 'install'. Sprawdzilem i strowniki sie nie instaluja.

0

a przez open się nie da :>

0

prez open raczej nie, poniewaz Open spowoduje otwarcie w domyslnym edytorze - notepadzie. prawoklik na .inf pokazuje dodatkowa opcje uruchomienia - install - wiec jakos trzeba by ja wywolac. jesli nie przez lpOperation="install" (co wydaje mi sie wlasciwym rozwiazaniem, acz shellexecute malo uzywalem), to trzeba by zerknac recznie, regeditem, do rejestru i wyszukac jaki program zostaje odpalony po wybraniu tej opcji, przypatrzec sie formatowi linii polecen jaki tam sie znajdzie i po prostu go odpalic dokladnie tak jak format pokazuje

0
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL.INF

DefaultInstall - nazwa sekcji uruchamianej, ta podana to domyślna, jak można wpaść ;)
Co oznacza 132?

1 - zawsze restartuje
2 - zawsze pyta o restart
3 - restart, jeśli potrzeba (bez pytania)
4 - pyta o restart, jeśli trzeba
128 - ustawia ścieżkę bieżącą na tą, w której jest plik

[q: ranides ma na mysli flagi bitowe. wg tej listy 132=ustawsciezke+pytaj o restart jak trzeba]

ostatniego argumentu nie muszę wyjaśniać, nie?

no to razem z ShellExecute:

ShellExecute(NULL, "open", "RUNDLL32.EXE", "SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\\WINDOWS\\INF\\SHELL.INF", "", SW_SHOWDEFAULT);

Albo bez ShellExecute, bezpośrednio:

#include <setupapi.h>
// linkujesz z setupapi.lib
// ...
InstallHinfSection(NULL, NULL, "SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\\WINDOWS\\INF\\SHELL.INF", 0);

albo jakoś tak, na podst. MSDN pisane, a nie własnych doświadczeń :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1