c ++ - Kør automatisk, når USB er tilsluttet

Indlæg af Hanne Mølgaard Plasc

Problem



Er det muligt at gøre et program automatisk køre (udfør), når USB'en, der er gemt på, er tilsluttet en computer


Jeg tror ikke det er muligt på grund af den søgning, jeg har set på internettet, og også sikkerhedsrisikoen sådan kodning ville have


F.eks. Jeg har en simpel nedtællingstimer (10 til 1) programmeret i C ++ (overholdes på Windows), når USB (som .exe-filen er gemt på) er tilsluttet en computer, starter timeren uden at jeg udfører den manuelt.

Bedste reference


Du kan oprette en Autorun.inf-fil og placere den på USB-drevet. Windows læser denne fil, når drevet er tilsluttet. I filen kan du angive navnet på det program, du vil køre, samt ikoner osv. [2]


Du kan ikke tvinge programmet til at køre, når USB-drevet er indsat. Det er op til sikkerhedspolitikken i operativsystemet, og de fleste vil i det mindste spørge brugeren 'Vil du køre' Setup.exe 'fra dette drev?' Eller noget lignende.

Andre referencer 1


Som standard er det ikke muligt, da Windows sætter brugerne i kontrol med deres computere så meget som muligt - hvis de ikke vil have autorun aktiveret, vil det ikke være muligt at få et program udført automatisk.


Du kan skrive et hjælperprogram, der kører i baggrunden (muligvis som en tjeneste), der sover mesteparten af ​​tiden og venter på, at en USB-enhed bliver tilsluttet. Der kan være en måde at modtage meddelelser om her, eller du kan bare have at kigge det regelmæssigt, ved jeg ikke. Når det har fundet en USB-enhed, kan den selvfølgelig gøre hvad den vil have (CreateProcess osv.).

Andre referencer 2


Siden Windows 7 ignoreres autorun.inf filen, når det kommer til USB-enheder. U3-teknologien tillader, at en tommelfingerkørsel behandles som en cd/dvd, som kan være en mulig løsning. [3]

Andre referencer 3


Jeg tror du kan gøre det ved at bruge system (), hvis du er bekendt med disktype kommandoen i cmd, så tror jeg, du kan finde ud af ting. Alt hvad du kan gøre i kommandoprompten, kan du også gøre i c ++ ved hjælp af system (). Men det vil forbruge en masse hukommelsesplads