[ bventil @ 22.03.2007. 01:27 ] @
Radim u BCB. Dobio sam narudzbinu da:
1. Kada se upali racunar da se automatski startuje moj program.
(to cu resiti preko StartUp, ako neko zna bolji nacin, slobodno nek predlozi, bicu vrlo zahvalan)
2. Kad se ugasi program da se ugasi i racunar?
Kako? Pretpostavljam da se naka f-ja ubaci u OnClose proceduru?

Eh, da:
3. Da nema mogucnosti da se vidi task bar.
Hoce covek da radnici na compu, ne mogu da rade nista drugo.
[ Shadowed @ 22.03.2007. 01:36 ] @
2. Pozovi shudown -s -t 0
[ savkic @ 22.03.2007. 05:17 ] @
> 1. Kada se upali racunar da se automatski startuje moj program.
> (to cu resiti preko StartUp, ako neko zna bolji nacin, slobodno nek predlozi, bicu vrlo zahvalan)

Možeš postaviti tvoj program kao shell.

> 2. Kad se ugasi program da se ugasi i racunar?
> Kako? Pretpostavljam da se naka f-ja ubaci u OnClose proceduru?

ExitWindowsEx.

> 3. Da nema mogucnosti da se vidi task bar.
> Hoce covek da radnici na compu, ne mogu da rade nista drugo.

To nije dovoljno, moraš onemogućiti Ctrl+Esc, Ctrl+Alt+Del (TaskManager), WinTaster + E/R/F. Verovatno ti je najlakše da uradiš preko group policy.
[ bventil @ 22.03.2007. 14:07 ] @



Nisam razumeo tvoj odgovor pod 3) da se to odradi preko group policy. Ali potrazicu vec nesto na netu.
Thanks a lot!
[ savkic @ 22.03.2007. 17:47 ] @
> Nisam razumeo tvoj odgovor pod 3) da se to odradi preko group policy.

U GP se može navesti da je pristup TaskManageru, startovanje programa... zabranjeno za pojedine korisnike tj. grupe korisnika.
[ X Files @ 22.03.2007. 19:48 ] @
Što se tiče samog gašenja računara, to je najmanji problem:
Code:

void SystemShutDown( int mode )
{
   HANDLE hToken;
   TOKEN_PRIVILEGES tkp;

   AnsiString error;

   // Get a token for this process.
   if ( !OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )
      error = "OpenProcessToken";

   // Get the LUID for the shutdown privilege.
   LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid );
   tkp.PrivilegeCount = 1;  // one privilege to set
   tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

   // Get the shutdown privilege for this process.
   AdjustTokenPrivileges( hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0 );

   // Cannot test the return value of AdjustTokenPrivileges.
   if ( GetLastError() != ERROR_SUCCESS )
      error = "AdjustTokenPrivileges";

   switch( mode )
   {
      // 0 = Forcefully close apps, shutdown and leave system at shutoff point
      case 0:   if ( !ExitWindowsEx( EWX_SHUTDOWN | EWX_FORCE, 0 ) )
                   error = "ExitWindowsEx";
                break;

      // 1 = Forcefully close apps, shutdown and reboot
      case 1:   if ( !ExitWindowsEx( EWX_REBOOT | EWX_FORCE, 0 ) )
                   error = "ExitWindowsEx";
                break;

      // 2 = Forcefully close apps, and logoff
      case 2:   if ( !ExitWindowsEx( EWX_LOGOFF | EWX_FORCE, 0 ) )
                   error = "ExitWindowsEx";
                break;

      // 3 = Forcefully close apps, shutdown and poweroff
      case 3:   if ( !ExitWindowsEx( EWX_POWEROFF | EWX_FORCE, 0 ) )
                   error = "ExitWindowsEx";
                break;
   }
}


Što se tiče ostalog, podržavam savkicevo viđenje. Koristi GP i User grupe. To je prirodni mehanizam
kod Windowsa.

Sve ostalo su igre bez granica. Glupo je iz Aplikacije baviti se skrivanjem OS funkcionalnosti. To je
(uglavnom) unapred izgubljen rat, i van je svih principa.
[ bventil @ 22.03.2007. 23:13 ] @
uuuuh, hvala puno za ovaj kod.
Ono sto sam ja planirao je samo:
ExitWindowsEx( EWX_POWEROFF | EWX_FORCE, 0 ) ;

>Sve ostalo su igre bez granica. Glupo je iz Aplikacije baviti se skrivanjem OS funkcionalnosti. To je
>(uglavnom) unapred izgubljen rat, i van je svih principa.
Kontam da si tu DEFINITIVNO u pravu.

Thanks a lot! Again. I tebi i Savkicu!