Red de conocimiento informático - Problemas con los teléfonos móviles - Sistema Vista, ¡cómo usar el Bloc de notas para escribir código de apagado programado! ¡Quieres un tipo de archivo bat!

Sistema Vista, ¡cómo usar el Bloc de notas para escribir código de apagado programado! ¡Quieres un tipo de archivo bat!

Llame a Shell ("shutdown -l -f ")' para cerrar sesión.

Llamar a Shell ("shutdown -s -f ")' cerrar.

Llamar al reinicio del Shell ("shutdown -r -f ")".

O

Establecer estado

SetSuspendState

¿Se admite la hibernación?

IsPwrHibernateAllowed

¿Es compatible con el modo de espera?

IsPwrSuspendAllowed

Mire la sección de administración de energía de MSDN

Cold Moon

Dentro del formulario

Coloque un control de tiempo, dos controles de etiqueta y un control de cuadro de estilo, así como dos botones de opción y dos botones de comando.

Opción explícita

Dim txtTime 'Ahorra tiempo de escritura.

' Dim nowTime 'Ahorra tiempo real.

"Dim Old Time" guarda la hora de inicio.

Privado subform_Load()

Me.caption= "Cerrar periódicamente"

Me.label1.caption= "Hora de cierre:"

p>

Yo. Option1.caption= "Apagar a la hora especificada (formato de hora: 00:00:00)"

Yo. Option2.caption= "Retrasar el apagado a la hora especificada"

Me.command1.caption= "Aceptar "

Me.command2.caption= "Cancelar"

I. texto 1 = obtener configuración(" cerrar ventanas ", " Opciones ", " ShutDownTime ", " 1:00 ")

¡Yo! Temporizador 1.interval=1000

Conector final

Subcomando privado 1_Click()

Tiempo anterior=tiempo

tUse IsData La función determina el formato de hora de entrada.

MsgBox "El formato de hora que ingresó es incorrecto, ¡modifíquelo!",, "Incorrecto"

ElseIf opción 1. Vale la pena

txtTime = TimeValue(Text1.Text)

Temporizador 1. Habilitado = Verdadero 'Iniciar temporizador.

Yo. WindowState = 1 'Minimiza el formulario.

Yo. Caption="Apagado-inicio programado"

ElseIf opción 2. Eso vale la pena

Yo. EstadoVentana = 1

i. Caption="Apagado-pausa periódica"

Terminará si...

Finalizar conector

Subcomando privado 2_Click()

Desinstalar Siguiente yo

Conector final

Subformulario privado_Descargar (cancelar a número entero)

Guardar configuración "Cerrar ventana", "Opciones", "Cerrar hora de apagado" , i. Texto1

Conector final

Subtemporizador privado 1_Timer()

nowTime = tiempo

Me.label2.Caption = tiempo p>

Si opción 1.

Eso vale la pena

Si DateDiff("s ", nowTime, txt time) lt; = 0 y DateDiff("s ", nowTime, txtTime) >= -60 entonces 'usa la función DateDiff para determinar si Ha llegado Es hora.

ApagarPC verdadero

Temporizador 1. enable = false

Fin si

Fin si

Fin de ajuste

En el módulo estándar.

Constante privada EWX_LOGOFF = 0

Constante pública EWX_SHUTDOWN = 1

Const pública EWX _ POWEROFF = 8 Este parámetro no se proporciona en el navegador API integrado . Vale la pena señalar que sin este parámetro, Win2kServer morirá en la pantalla de apagado.

Constante privada EWX_REBOOT = 2

Constante privada EWX_FORCE = 4

Constante privada TOKEN _ ADJUST _ PRIVILEGES = ampH20

Constante privada TOKEN _ QUERY = ampH8

Constante privada SE _ PRIVILEGE _ ENABLED = amp Deuterio

Constante privada ANYSIZE_ARRAY = 1

Constante privada VER _PLATFORM_WIN32_NT = 2

Tipo OSVERSIONINFO

dwOSVersionInfoSize As Long

dwMajorVersion tiene la misma longitud

dwMinorVersion tiene la misma longitud

dwBuildNumber es Long

p>

dwPlatformId tiene la misma longitud

szCSDVersion que la cadena * 128

Tipo final

Etiqueta LUID

La parte inferior tiene la misma longitud

La parte alta tiene la misma longitud

Tipo final

Escribe atributos LUID _ y _

pLuid es Luid

Atributo para long

Tipo final

Tipo TOKEN_PRIVILEGES

El privilegio cuenta mientras

Privilegios como atributo LUID (matriz de cualquier tamaño)

Tipo final

Función de declaración privada GetCurrentProcess Lib "kernel32 "() es Long

Función de declaración privada OpenProcessToken Lib " advapi 32 "(el identificador del proceso ByVal es de tipo largo, ByVal DesiredAccess es un entero largo, TokenHandle es un entero largo)

Función de declaración privada LookupPrivilegeValue Lib " advapi 32 " Alias ​​​​" LookupPrivilegeValueA " (sistema ByVal LP el nombre es una cadena, ByVal lpName es una cadena, lpLuid es LUID)Long

Función de declaración privada AjustarTokenPrivileges Lib " advapi 32 "(el identificador ByVal TOKEN es largo, ByVal DisableAllPrivileges es largo, NewState es TOKEN_PRIVILEGES, ByVal BufferLength es largo, estado anterior es TOKEN_PRIVILEGES, longitud de retorno es largo)

Función de declaración pública ExitWindowsEx Lib "usuario 32 "(ByVal u flags es largo, ByVal dwReserved es largo) es largo

Declaración privada La función GetVersionEx Lib "kernel32 "alias" GetVersionExA "( ByRef lpVersionInformation como información de versión del sistema operativo) es larga

Detecta si el programa se está ejecutando en Windows NT y detecta si es NT.

La función pública IsWinNT() es un valor booleano

Atenuar myOS como OSVERSIONINFO

myOS .dwosversioninfosize = Len(myOS)

GetVersionEx. globulina

IsWinNT =(myos . dwplatformid = VER_Platform_WIN32_NT)

Función final

Establece el permiso de apagado para la aplicación actual.

Private subenabled()

Dim hProc es largo

Dim hToken es tan largo como

Dim Moulide reproduce LUID

Atenuar mPriv como TOKEN_PRIVILEGES

Atenuar mNewPriv como TOKEN_PRIVILEGES

hProc = GetCurrentProcess()

OpenProcessToken hProc, TOKEN_ADJUST _ PRIVILEGES TOKEN _ QUERY, hToken

LookupPrivilegeValue " ", " SeShutdownPrivilege ", mLUID

mPriv. PrivilegeCount = 1

mPriv. Permisos(0). Propiedad = SE_privilege_enabled

mPriv. Permisos(0). pLuid = mLUID

Habilitar permiso de cierre para la aplicación actual Otorga permiso de cierre de la aplicación actual.

AjustarTokenPrivileges hToken, False, mPriv, 4 (12*mPriv.PrivilegeCount), mNewPriv, 4 (12*mNewPriv.PrivilegeCount)

Finalizar conector

Cerrar La computadora apaga la computadora.

Public Sub ShutDownPC (forzado a booleano)

Atenuar ret mientras

Las banderas atenuadas son tan largas

Banderas = EWX_SHUTDOWN o EWX_POWEROFF

if Force Then Flags = Flags EWX _ Force

Si es WinNT, habilite el apagado

Salir del indicador WindowsEx, 0

finalizar conector

Reinicie la computadora.

Sub reinicio público de PC (forzado a booleano)

Dim ret As Long

La bandera tenue es tan larga

Flags = EWX_REBOOT

si Force Then Flags = Flags EWX _ Force

Si es WinNT, habilite el apagado

Salir del indicador WindowsEx, 0

Finalizar conector

Cerrar sesión del usuario actual. Cancelar (cerrar sesión) del usuario actual.

Cierre de sesión secundario público (forzado a booleano)

Atenuar ret mientras

Atenuar ret mientras

Flags = EWX_LOGOFF

if Force Then Flags = Flags EWX _ Force

Indicador Salir de WindowsEx, 0

Conector final

Descripción de inicio automático: (establecido en la utilidad CMOS-copyright (c) Software de premios 1984-2001 como ejemplo)

Presione la tecla Eliminar para ingresar al programa de configuración CMOS.

Mueva la selección a Configuración de administración de energía y presione Entrar.

Luego mueva la opción a Recuperar mediante alarma y presione la tecla AvPág para seleccionar Activar.

Pase a la siguiente línea y establezca la alarma del día (mes) en 0.

Pase a la siguiente línea y configure la hora (hh: mm: ss) del despertador en [su propia hora de inicio], por ejemplo: 8:0:0 (encendido a las 8 a. m.).