09. juni 2002 - 15:03Der er
37 kommentarer og 1 løsning
Luk Windows fra program ?
Jeg bruger BCB4 og vil lave et program der kan slukke windows eller genstarte (man kan vælge det i programmet) på et klokslet (justerer man selv). Men programmet skal fungere lige gyldig om man kører win9x eller NT (2k og XP), dvs. jeg kan ikke bare bruge en fast funktion til f.eks. 2k. Jeg fik engang lavet et sådanne program i VB, der var noget med noget AdjustToken (så man fik rettigheder til at lukke windows ned). Selve nedluknigen foregik via API'en.
Problemet er at jeg ikke kan få det til at fungere i C, og har nu næsten opgivet, håber lidt nogen herinde kan hjælpe :)
ExitWindowsEx The ExitWindowsEx function either logs off the current user, shuts down the system, or shuts down and restarts the system. It sends the WM_QUERYENDSESSION message to all applications to determine if they can be terminated.
Windows NT: To shut down or restart the system, the calling process must use theAdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege. For more information about security privileges, seePrivileges.
Windows 95: ExitWindowEx does not work from a console application, as it does on Windows NT.
Kamikaze er du væk ? Jeg fatter desværre nissemand af alt det der, har prøvet at rode frem og tilbage med det, men det vil ligesom ikke som jeg. Kan du ikke forklare mig hvad der skal stå hvor ? Og hvor meget jeg selv skal skrive ? (F.eks. den typedef der, den eksisterer jo allerede).
Øhm undskyld mig, men EWX_LOGOFF logger da bare en af i NT ? Og EWX_SHUTDOWN lukker da vel computeren helt ? Ellers najst eksempel, det skal nok komme til at du' :)
Damn det var det jeg frygtede, for dem fatter jeg klaphat af, sådan virkelig seriøst. Havde lidt gang i det, men det gik helt i kage, med cannot convert long to void * * og lignende skidt :(
Jeg har ikke flere point at give af :( Men vil du godt hjælpe mig med de privileges alligevel ? du kan evt. få lidt extra point når jeg engang får nogen ?
Nu smuttede jeg hen og sove igår, da jeg skal til eksamen idag. Så du behøvede sådan set ikke have lavet det igår. Jeg skal ikke lave en console app, så 9x kommer nok også til at virke :)
Virker fint i NT, men der en ting jeg ikke forstår: Hvorfor er de her to forskellige ?: if (!ExitWindowsEx(EWX_REBOOT, EWX_FORCE)) return false; og if (!ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0)) return false; Altså hvorfor står der forskellige ting i parentesen ? Derudover tænkte jeg på om jeg kan erstatte EWX_REBOOT af en variabel, så jeg på en nem måde kan vælge mellem reboot & shutdown ? (Altså hvilken variabel type skal det være så). Ellers kanon mange tak for hjælpen, du er lidt skrap til det her synes jeg :)
Gik fint, jeg fik 9 i tysk, uden at have læst og uden noter :) Og så fik jeg hat på (HTX), så det er bare dæjli :) Tjekker lige at det hele duer, og så smider jeg point efter dig.
Weee det kører nu. Btw. så skal man bruge EWX_SHUTDOWN til 9x, og EWX_POWEROFF til NT kernen, fjollet imo, men pyt. Tusind mange tak for din uvurderlige hjælp :)
Hey du har fortjent dem og lidt til, har bare ik fler' :(
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.