Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Info Coronavirus/Vaccinare vs Fake News

Curent AC produs de alternator

GDPR | Algoritm computer vision p...

Elvetia considera interzicerea el...
 Windows Defender recuperare

Hackintosh Ryzen 5600g fara placa...

Cum izolez acest fir?

rtorrent - scripting
 TV LG 49UB850V-ZD, musculita in e...

Montare clapeta antiretur la hota

laptop nou + licenta windows

Unbelievable - De Necrezut -2019 ...
 Recomandare achizitie instant ap...

Cand iau pensia pensionarii a car...

Verificare gaze

Liza electrica cu catarg sau stiv...
 

CE functie imi inchide calculatorul?

- - - - -
  • Please log in to reply
11 replies to this topic

#1
PentiumSEX

PentiumSEX

    Member

  • Grup: Members
  • Posts: 478
  • Înscris: 06.08.2005
Va rog:
Ce functie sau cum programez astfel incit la o ora setata
sa se opreasca calculatorul? (presupun ca nu e nevoie de controlul timer pt a seta ora,
folosesc ora sistemului).

#2
RAZ

RAZ

    Member

  • Grup: Members
  • Posts: 1,227
  • Înscris: 15.10.2004
Foloseste ExitWindowsEx
 Public Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
bafta!

#3
PentiumSEX

PentiumSEX

    Member

  • Grup: Members
  • Posts: 478
  • Înscris: 06.08.2005
Multumesc.

#4
PentiumSEX

PentiumSEX

    Member

  • Grup: Members
  • Posts: 478
  • Înscris: 06.08.2005
Revin, pt ca n-am reusit pe deplin, asa ca ... dragi tovarasi si prieteni, va rog sa ma ajutati.
Asadar, pentru a defini o procedura (functie) ce sa-mi inchida calculatorul (POWEROFF) am incercat doua variante:

I) Dupa cum am fost indrumat am folosit functia   ExitWindowsEx ;
a)  am declarat intr-un modul:

    Public Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

B) intr-un buton al formei am introdus codul:

    Call ExitWindowsEx(0, 0)

c) In acest mod, cu parametrii impliciti ai functiei ExitWindowsEx ; adica
    uFlags = 0      (uFlags=EWX_LOGOFF)

apelul functiei conduce la exit user (user off)

d) Ce valoare trebuie sa-i dau parametrului  uFlags    pentru ca functia sa-mi
   inchida calculatorul ; (uFlags = EWX_POWEROFF) ?
In MSDN library apare valoarea, pt uFlags = 0x00000008 pentru ca uFlags = EWX_POWEROFF;
  ca urmare calculatorul inchizindu-se (POWEROFF). Ce reprezinta "0x00000008" ? e un nr in baza 16 (hexazecimal),
  sau mai degraba o referinta de memorie?

CONCLUZIE:  care sunt parametrii din: Call ExitWindowsEx(uFlags, dwReason)   ce au ca rezultat inchiderea calculatorului

II) In VBasic-Project-References  = am creat o referinta catre shell.dll
  (Microsoft Shell Controls and Automation)

a) intr-un modul am declarat variabila "Iesire":
   Public Iesire As New Shell

B) intr-un buton al formei am apelat metoda variab."Iesire":
   Iesire.ShutdownWindows

c) Nemultumirea consta ca mi se afiseaza casa de dialog TURN OFF Computer
   din care trebuie sa aleg daca inchid sau nu calculatorul. Eu nu doresc aceasta interactiune!

Eu doresc ca odata apasat butonul formei calculatorul sa se inchida direct (fara o noua interactiune, avertizare, etc)


CONCLUZIE: Cum ar trebui sa scriu codul astfel incit sa se inchida calculatorul?
Cum ii spun (prin o linie de cod) ferestrei afisate "TURN OFF Computer" ca s-a apasat butonul "TURN OFF" ?

Eu doresc ca odata apasat butonul formei calculatorul sa se inchida direct (fara o noua interactiune, avertizare, etc)

_____________Cam atit ... dragi tovarasi si prieteni

#5
RAZ

RAZ

    Member

  • Grup: Members
  • Posts: 1,227
  • Înscris: 15.10.2004
'Stimabile tovaras' ai citit in MSDN tot ce scria despre ExitWindowEx?  :peacefingers: pentru ca ai sarit peste ceva:

Quote

To shut down or restart the system, the calling process must use the AdjustTokenPrivileges function to enable the SE_SHUTDOWN_NAME privilege.
Aplicatia ta nu are privilegiul acesta de SE_SHUTDOWN_NAME asa ca va trebui sa-l setezi.
Probabil te intrebi cum, mai cauta prin msdn si vei da de un exemplu 'Step By Step Example' , nu am link-ul si nici timp de cautat asa ca am sa-ti dau codul....
1. Intr-un modul aduga codul de mai jos (sau intr-un form):
	 Private Type LUID
		 UsedPart As Long
		 IgnoredForNowHigh32BitPart As Long
	  End Type

	  Private Type TOKEN_PRIVILEGES
		PrivilegeCount As Long
		TheLuid As LUID
		Attributes As Long
	  End Type

	  Private Const EWX_SHUTDOWN As Long = 1
	  Private Const EWX_FORCE As Long = 4
	  Private Const EWX_REBOOT = 2

	  Private Declare Function ExitWindowsEx Lib "user32" (ByVal _
		   dwOptions As Long, ByVal dwReserved As Long) As Long

	  Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
	  Private Declare Function OpenProcessToken Lib "advapi32" (ByVal _
		 ProcessHandle As Long, _
		 ByVal DesiredAccess As Long, TokenHandle As Long) As Long
	  Private Declare Function LookupPrivilegeValue Lib "advapi32" _
		 Alias "LookupPrivilegeValueA" _
		 (ByVal lpSystemName As String, ByVal lpName As String, lpLuid _
		 As LUID) As Long
	  Private Declare Function AdjustTokenPrivileges Lib "advapi32" _
		 (ByVal TokenHandle As Long, _
		 ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES _
		 , ByVal BufferLength As Long, _
	  PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long


Public Sub AdjustToken()
		 Const TOKEN_ADJUST_PRIVILEGES = &H20
		 Const TOKEN_QUERY = &H8
		 Const SE_PRIVILEGE_ENABLED = &H2
		 Dim hdlProcessHandle As Long
		 Dim hdlTokenHandle As Long
		 Dim tmpLuid As LUID
		 Dim tkp As TOKEN_PRIVILEGES
		 Dim tkpNewButIgnored As TOKEN_PRIVILEGES
		 Dim lBufferNeeded As Long

		 hdlProcessHandle = GetCurrentProcess()
		 OpenProcessToken hdlProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or _
			TOKEN_QUERY), hdlTokenHandle

	  ' Get the LUID for shutdown privilege.
		 LookupPrivilegeValue "", "SeShutdownPrivilege", tmpLuid

		 tkp.PrivilegeCount = 1	' One privilege to set
		 tkp.TheLuid = tmpLuid
		 tkp.Attributes = SE_PRIVILEGE_ENABLED

	 ' Enable the shutdown privilege in the access token of this process.
		 AdjustTokenPrivileges hdlTokenHandle, False, _
		 tkp, Len(tkpNewButIgnored), tkpNewButIgnored, lBufferNeeded

	 End Sub

2. La apasarea buttonului fa ceva de genul:
	Private Sub Command1_Click()
		 AdjustToken
		 ExitWindowsEx (EWX_SHUTDOWN Or EWX_FORCE), &HFFFF
	  End Sub

Concluzie: calculatorul se inchide 'fortat' (EWX_FORCE) fara o noua interactiune, avertizare, etc ;)

bafta!

#6
PentiumSEX

PentiumSEX

    Member

  • Grup: Members
  • Posts: 478
  • Înscris: 06.08.2005
Eeee ... DA; acu' DA măi tovarășe. Mulțumesc pt. cod; merge OK.


off topic
PS: În spațiul U.E. se pot întîlni nume de persoane ca: 'VAN Basten'; 'VAN Dame'.
Întrebare: Odată cu integrarea României în U.E., (prin corelare cu numele de mai sus din U.E.)
românescul 'RăzVAN' va deveni 'VAN Raz' (în U.E.)?

Mulțumesc încă odată, Noroci.

#7
PentiumSEX

PentiumSEX

    Member

  • Grup: Members
  • Posts: 478
  • Înscris: 06.08.2005
Înaite să adorm îmiplace să ascult muică, și pt. că era inervant să mă ridic să închid calculatorul făcui acest mic program (vezi atașamentul) ce mă scutește de această 'corvoadă' (deranj).

Atentie: schimbati extensia fisierului atasat din *.txt in *.exe
(adica din InchidCalculatorul.txt schimbati denumirea in InchidCalculatorul.exe )

Mulțumesc celor ce m-au ajutat cu sfaturi în realizarea acestui progrămel.
Salutări

Attached Files



#8
lau74dani

lau74dani

    Junior Member

  • Grup: Members
  • Posts: 160
  • Înscris: 17.03.2006
Nu functioneaza link-ul sau nu stiu eu cum se face ? Am incercat sa salvez fisierul text dar se salveaza fisierul index.php

#9
RAZ

RAZ

    Member

  • Grup: Members
  • Posts: 1,227
  • Înscris: 15.10.2004
@lau74dani: incearca cu IE sau il gasesti si aici

#10
lau74dani

lau74dani

    Junior Member

  • Grup: Members
  • Posts: 160
  • Înscris: 17.03.2006
Gata, am reusit, multumesc !

#11
PentiumSEX

PentiumSEX

    Member

  • Grup: Members
  • Posts: 478
  • Înscris: 06.08.2005
Codul sursa (atasat) pt. programelul "InchidCalculatorul".

Attached Files



#12
PentiumSEX

PentiumSEX

    Member

  • Grup: Members
  • Posts: 478
  • Înscris: 06.08.2005
Sper sa mai existe KIT -ul programului "inchidCalculatorul" la urmatorul link:
http://www.u1.ro/v/8...atorul.rar.html

Salutare

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate