Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Shutdown

[es] :: Windows desktop :: Shutdown

[ Pregleda: 2286 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

salec

Član broj: 6527
Poruke: 1717
*.rcub.bg.ac.yu

Jabber: salec@elitesecurity.org


Profil

icon Shutdown11.09.2003. u 15:10
Kako da izvedem shutdown racunara (bez pitanja!) iz .bat skripta ili pozivom neke API funkcije?

Hteo bih da mogu da ogranicim koriscenje racunara neukim korisnicima na samo odredjene sate u toku dana, pa mi je prvi grub plan bio nesto kao:

int main(void)
{
if ( banned_hours( get_system_time() ) )
shutdown();
}

koji bi se aktivirao pri startupu. U vecini prirucnika za razne programske jezike upotrebljive pod windowsima moze se naci funkcija za citanje RTC-a, ali za shutdown...neki racunari ni nemaju ATX (ovaj o kom se radi ima).
Windows je devedesetosmica.
11.09.2003. u 15:10 

reiser
Vranje

Član broj: 7895
Poruke: 1893
62.108.97.*



Profil

icon Re: Shutdown11.09.2003. u 15:24
Ne znam C++, ali evo sta sam nasao preko Google-a :
Code:

BOOL MySystemShutdown()
{
  HANDLE hToken;
  TOKEN_PRIVILEGES tkp;

  // Get a token for this process.

  if (!OpenProcessToken(GetCurrentProcess(),
       TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
     return( FALSE );

  // 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);

  if (GetLastError() != ERROR_SUCCESS)
     return FALSE;

  // Shut down the system and force all applications to close.

  if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
     return FALSE;

  return TRUE;
}


treba da ukljucis i 'windows.h', ma sta da je to... (mislim da je nesto kao unit u pascalu)
11.09.2003. u 15:24 

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8868
*.verat.net

Sajt: www.diskusije.net


Profil

icon Re: Shutdown11.09.2003. u 22:11
Nemam 98-icu na kojoj bih probao ali bi ovo trebalo da radi:
C:\WINDOWS\RUNDLL32.EXE user.exe,exitwindows

Takodje pogledaj API f-ju ExitWindowsEx ako i InitiateSystemShutdown ako hoces da prikazes neku poruku i sl. mada se ova druga mislim moze obici sa shutdown -a (ako ovo postoji na 98-ici).
11.09.2003. u 22:11 

salec

Član broj: 6527
Poruke: 1717
*.rcub.bg.ac.yu

Jabber: salec@elitesecurity.org


Profil

icon Re: Shutdown12.09.2003. u 08:44
Ovo ne radi (ispise "Error in user.exe Missing entry:exitwindows"):

Code:
C:\WINDOWS\RUNDLL32.EXE user.exe,exitwindows


Posto me je zaintrigiralo, nasao sam fajl user.exe i uradio QuickView iz kontekst menija, ne bi li nasao neke labele i sl., ali na moje iznenadjenje QuickView je prikazao opis interfejsa, izmedju ostalog i spisak entry-ja. Negde pri kraju dugacke liste entrija nalazi se i "EXITWINDOWSEXEC" sto mi zvuci nalik na to sto trazim, ali kad sam u komand prompt upisao:
Code:
C:\WINDOWS\RUNDLL32.EXE user.exe,EXITWINDOWSEXEC
nisam dobio ikakvu poruku o gresci, ali takodje se nista nije ni dogodilo. Pretpostavljam da je funkcija izvrsena, ali nije imala dejstvo zbog neceg drugog. Inace na vrhu opisa koji da QV stoji:
Code:
DYNAMIC LINK LIBRARY 
16 bit for Windows 3.x
mozda to ima neke veze sa ignorisanjem EXITWINDOWSEXEC-a od strane 98-ice?

12.09.2003. u 08:44 

salec

Član broj: 6527
Poruke: 1717
*.rcub.bg.ac.yu

Jabber: salec@elitesecurity.org


Profil

icon Re: Shutdown19.09.2003. u 08:55
Ljudi, ne znam sta je u pitanju, onaj dan mi nikako nije uspelo da izvrsim "exitwindows" ali danas sam probao na tri razlicita racunara (ukljucujuci i onaj na kom sam probao ranije) i na svakom je radilo!

Izvinjavam se zbog prethodne dezinformacije.
19.09.2003. u 08:55 

Shadowed
.NET developer

SuperModerator
Član broj: 649
Poruke: 8868
*.verat.net

Sajt: www.diskusije.net


Profil

icon Re: Shutdown19.09.2003. u 13:08
Exitwindowsexec koliko bi se secam trebalo da restartuje racunar (ili samo Windows tako sto ode u DOS mode a onda ponovo pokrene Win). Inace misim da bolje mozes da vidis funkcije pomocu Dependency Walker-a ali nisam siguran da li to moze i sa .exe fajlovima ili samo sa .dll-ovima.
19.09.2003. u 13:08 

Billy_boy

Član broj: 13944
Poruke: 353
*.cmu.carnet.hr



Profil

icon Re: Shutdown28.09.2003. u 15:28
Nisam 100% siguran za shut down, ali ovoti je za restart:

"rundll32.exe shell32.dll,SHExitWindowsEx 2"

Postoje i:

"rundll32.exe shell32.dll,SHExitWindowsEx 1"
"rundll32.exe shell32.dll,SHExitWindowsEx"

Jedno od toga je log off, a drugo shut down.

Rade u:
-start/run
-bat scripti
-Bilo komu programu, ali moras ispred ubaciti naredbu za porketanje windows programa (ne znam treba li ubaciti stazu rundll32, ali mislim da windowsi sami prepoznaju jer je spremljna u run naredbe). (Provjereno u QBasicu)


Ovo sigurno radi na Win98!

P.S. Pazi na velika slova
28.09.2003. u 15:28 

Sasa Vitorovic
Beograd

Član broj: 11629
Poruke: 191
*.ptt.yu

Sajt: www.ptt.yu/korisnici/s/a/..


Profil

icon Re: Shutdown07.07.2004. u 13:57
Citat:
Billy_boy: ...ali moras ispred ubaciti naredbu za porketanje windows programa ...

Moze neki primer,ne razumem kakav win program!
Imam winxp, a koristim Visual Basic 6.0.
U fudbalu je vazno jedno:a to su dve stvari:rad ,red i disciplina.
07.07.2004. u 13:57 

[es] :: Windows desktop :: Shutdown

[ Pregleda: 2286 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.