Opstart af program inden windows loader andre programmer?
Hej eksperter. Jeg har lavet et lille matematik program i C# til min lillebror. Ideen er, at han skal svare 10 gange rigtig på nogle gangestykker, inden han kan komme i gang med, at spille. Min far lavede i sin tid et lign. program i Pascal, som han loadede igennem autoexec.bat. Jeg fandt dog hurtigt en måde, at omgå de dumme regnestykker på, men ... nu er turen altså kommet til min lillebror. Problemet er bare, at jeg ingen idé har om, hvordan jeg loader programmet inden windows loader desktoppen og alle de andre programmer. Nogle ideer?
Det du skal gøre er at lave den som en slags shell replacement, og så når han har svaret rigtigt på de ti regnestykker skal du kører explorer.exe (som jo er windows gui)
Dette er noget du sætter op i registrerings databasen, så hvis han ikke skal kunne ændre det (ved ikke hvor god han er til sådan noget jo) så må du hellere sørge for at disable adgang til registrerings databasen på hans bruger.
Der er kun to problemer ved det (som jeg ser det), og det ene er hvis i er flere der bruger den computer, for så vil i alle skulle svare på de ti regnestykker.
Det andet er at han jo bare kan bruge joblisten og så lukke dit program og åbne explorer.exe selv.
Den med joblisten kan omgås ved at snuppe alle tastetryk med en keyhook, og så lade vær med at sende dem videre.. Så kan man ikke trykke ctrl+alt+del, eller det kan man godt men der sker intet..
Har ik' lige haft tid til, at kigge på det med at få programmet til, at starte op inden alt andet starter op, men det virker. Regner med, at jeg smidder sourcekoden op (det er sq ik' så svært at kode).
Altså hvis han ikke har de store rettigheder, burde det da være nemt nok at sikre at han ikke kan dræbe din shell - tjek Russinowich et al. Jeg har i hvert fald ikke kunnet dræbe MS' shells på Tech-Ed :-) KAn man ikke have individuelle shells? JEg har aldrig lavet en, men det troede jeg... xylene_free? Blot et spm.
Når du siger individuelle shells, mener du så en for hver bruger?
Altså i principet kan du godt, det du så skal gøre i stedet for er at lade windows's explorer.exe starte op, og så have et program der starter sammen med explorer.exe, vha. registrerings databasen, og så i det program lukke explorer.exe, og så åbne det shell du vil ud fra brugernavnet, som jeg ved man kan hente frem, kan dog ikke lige huske hvordan.. Tjek evt msdn for det, eller spørg her inde..
Det burde være mulig at strikke sammen, og langt fra så svært som det lyder..
Hvis du ikke kan klare den selv kan jeg måske kigge på det i slutningen af ugen, har bare lige en eksamen jeg skal have overstået..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.