Hallo beste mensen, ik heb hier een barcodelezer die na het aansluiten met USB een virtuele COM-poort aanmaakt (in Windows). Echter bij het koppelen van zo'n ding, krijg je de bekende "Found New Hardware Wizard", waarmee je de drivers voor de compoort moet installeren.
Omdat het bij iedere barcodelezer (ze zijn identiek, afgezien van het S/N) die je aansluit zo is dat er weer een nieuwe wizard verschijnt
, die vraagt om dezelfde drivers, wilde ik het automatiseren.
Goed, programmeren dus.
Na wat zoeken heb ik een functie gevonden in setupapi.dll, waarmee je een driver zou moeten kunnen installeren: SetupCopyOEMInf
Middels een PInvoke roep ik die aan:
En bij uitvoeren krijg ik nog zo'n "dit not pass windows logo testing" melding, waar ik op "Continue anyway" klik (krijg je ook bij handmatige installatie).. vervolgens returnt die functie true wat "het is gelukt" betekent.
Nu zou je zeggen, plug zo'n apparaat in, en hij doet het direct, want de driver is al geinstalleerd. Dit is niet waar, hij vraagt bij ieder ding, dat hij nog niet kent (met een ander s/n dus) opnieuw te installeren, met die wizard.
Nu mijn vraag:
Hoe kan je met een (C#) programma zorgen dat je een driver installeert, op zo'n wijze, dat alle comptible hardware bij inpluggen automatisch herkend wordt en direct beschikbaar is, omdat Windows al op de hoogte is van de driver? (ipv de Found new hw wizard te starten)
Eventuele andere oplossingen voor het installeren van dezelfde driver per scanner zijn ook welkom.
Omdat het bij iedere barcodelezer (ze zijn identiek, afgezien van het S/N) die je aansluit zo is dat er weer een nieuwe wizard verschijnt
Goed, programmeren dus.
Na wat zoeken heb ik een functie gevonden in setupapi.dll, waarmee je een driver zou moeten kunnen installeren: SetupCopyOEMInf
Middels een PInvoke roep ik die aan:
C#:
1
| SetupCopyOEMInf(@"C:\drivercom\UsbtoCom.inf", null, OemSourceMediaType.SPOST_PATH, OemCopyStyle.SP_COPY_NEWER_OR_SAME, null, 0, ref requiredSize, null); |
En bij uitvoeren krijg ik nog zo'n "dit not pass windows logo testing" melding, waar ik op "Continue anyway" klik (krijg je ook bij handmatige installatie).. vervolgens returnt die functie true wat "het is gelukt" betekent.
Nu zou je zeggen, plug zo'n apparaat in, en hij doet het direct, want de driver is al geinstalleerd. Dit is niet waar, hij vraagt bij ieder ding, dat hij nog niet kent (met een ander s/n dus) opnieuw te installeren, met die wizard.
Nu mijn vraag:
Hoe kan je met een (C#) programma zorgen dat je een driver installeert, op zo'n wijze, dat alle comptible hardware bij inpluggen automatisch herkend wordt en direct beschikbaar is, omdat Windows al op de hoogte is van de driver? (ipv de Found new hw wizard te starten)
Eventuele andere oplossingen voor het installeren van dezelfde driver per scanner zijn ook welkom.