2. Hvordan kan man få sit program til at lukke med windows ? Jeg har Win2000 og når jeg så vil prøve at lukke Windows sker der ikke noget ! hvorfor ??? Det er et program som starter med windows og ligger i systray, og det skulle gerne kunne lukke med windows også.!
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
Hmmmn .. Spørgsmål ved jeg ikke lige men spørgsmål 2 har jeg da en løsning på
Probelmet er at ikke alle under windowsNT har ret til at lukke computeren, man kan saktens forestille sig at en bruger ikke har ret til dette, ydligere skal der holdes styr på hvem og hvorsan Windows lukkes ned. Derfor skal brugeren bede om en SeShutdownPrivilege token fra windows. Alt dette under W2K. for 95/98/ME skal du bare kalse ExitWindowsEx().
Alt dette kan kommes ned i en og samme funktion, hvortil du bare skal medgive en parameter alt efter hvilken slage Shutdown du ønsker. Jeg har for nemheds skyld valgt at kalde den ExitWindows, forsi det er jo det den gør....
Function ExitWIndows( iFlags : Integer ) : Boolean; //------------------------------------- //Exit the current Windows session. iFlags have to be one of the following constants. // //EWX_FORCE Forces processes to terminate. Instead of bringing up the "application not responding" // dialog box for the user, this value forces an application to terminate if it does not respond. // //EWX_LOGOFF Shuts down all processes running in the security context of the process that called the // ExitWindows function. Then it logs the user off. // //EWX_POWEROFF Shuts down the system and turns off the power. The system must support the power-off feature. // //EWX_REBOOT Shuts down the system and then restarts the system. // //EWX_SHUTDOWN Shuts down the system to a point at which it is safe to turn off the power. // All file buffers have been flushed to disk, and all running processes have stopped. //-------------------------------------
begin Result := True; if( SetPrivilege( 'SeShutdownPrivilege', True ) )then begin if( not ExitWindowsEx( iFlags, 0 ) )then begin // handle errors... Result := False; end; SetPrivilege( 'SeShutdownPrivilege', False ) end else begin // handle errors... Result := False; end; end;
Hvad den opmærksomme læser straks bemærker så har jeg lånt lidt inde fra Online hjælpen ...
OnClose skal den vel ikke kaldes fra med mindre ud ønsker at lukke windows sammen med dit program. Det vil være mere naturligt at kalde funktionen fra en kanp af, eller hvis der bliver svaret OK i en dialogbox
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.