Este artículo fue recopilado y compilado por Lanyus de "Delphi para una programación maravillosa".
1. Ocultar la barra de tareas
En Windows, la barra de tareas del sistema es esencialmente una ventana, con su nombre de clase de ventana "shell_traywnd". Para implementar operaciones en ella, puede usar la función API
Findwindow y
Showwindow para lograr su objetivo.
varilla
Wndhandle: Thandle;
WndClass: Array [0..50] de char;
Comenzar
StrpCopy (@wndclass [0], 'shell_traywnd');
wndhandle: = findwindow (@wndclass [0], nil);
Showwindow (wndhandle, sw_hide);
fin;
2. Accesos directos ocultos en el escritorio
Al igual que la barra de tareas, el escritorio es en realidad una ventana.
para decidir si mostrar.
3. Obtenga el tamaño y la ubicación de la barra de tareas
Use FindWindow para encontrar el mango y luego use GetWindowrect para obtener el tamaño de la barra de tareas actual.
GetWindowrect (hwnd hwnd, // el mango de la ventana solicitada
LPRECT LPRECT // La dirección de la estructura que almacena las coordenadas de la ventana
): Booleano;
4. Obtenga información de CPU
La información relevante de la CPU se almacena en una estructura, que está encapsulada por Delphi con TSystemInfo y se define de la siguiente manera:
typedef struct_system_info {
unión{
DWord dwoemid; // La siguiente rama de estructura se ha utilizado en lugar del uso de esta variable
estructura {
Palabra wprocessorarquitectura;
Palabra wreserved;
};
};
DWord swpagesiae;
Lpvoid lpminimumapplicationAddress;
LPVOID LPMaximumApplicationAddress;
DWORD SWACTIVEPROCESSIMASK;
DWORD DWNumberOfProcessors;
DWord dwprocessortype;
DWord dwallocationGranularity;
Word WprocessorLevel;
Word wprocessorRevision; // Información de modificación del procesador
} System_info;
Entre ellos, DWProcessortype está determinado por tres miembros: WProcessorarchitecture, WProcessorLevel y WprocessorRevision, y su valor es:
Procesador_intel_386: serie Intel80386;
Procesador_itnel_486: serie Intel80486;
Procesador_intel_pentium: serie Intel pentium;
Procesador_mips_r4000: la serie 4000 de MIPS (solo aplicable a Windows NT);
Procesador_alpha_21064: la serie 21064 de Alpha (solo aplicable a Windows NT);
Además, simplemente llame a la función API GetSystemInfo después de obtener información de CPU.
5. Obtenga información de memoria.
Al igual que la obtención de CPU, el sistema todavía utiliza una estructura para almacenar información de memoria. La definición de esta información de estado interno almacenado es la siguiente:
typedef struct_memorystatus {
DWord dwLength; // sizeOf (MemoryStatus) es el tamaño de esta estructura
DWord dwMemoryLoad;
DWORD DWTOTALPHYS;
DWORD DWAVAILPHYS; // Tamaño de memoria física disponible
DWORD DWTOTALPAGEFILE;
DWORD DWAVAILPAGEFILE;
DWORD DWTOTALVirtual;
DWORD DWAVAILVIRTUAL;
} MemoryStatus,*lpMemoryStatus;
Finalmente, llame a la función API GlobalMemoryStatus para obtener información de memoria.
6. Obtenga el tamaño del espacio del disco. (La prueba encontrada inexacta)
Use la función API getDiskFreespace.
Bool getDiskfreespace (
LPCTSTR LPROOTPATHNAME, // Directorio raíz
LPDWORD LPSECTORSPERCLUSTER, // Número de sectores por clúster
LPDWORD LPBYTESPERSector, // Número de bytes por sector
LPDWORD LPNumberOffReeclusters, // El número de grupos disponibles
LPDWORD LPTOTALNumberOfClusters // Número total de grupos
);
procedimiento tForm1.BitBTN1Click (remitente: tobject);
varilla
SecspClu, ByTespSC, Freeclu, TotalClu, TS, FS: DWord;
Comenzar
GetDiskfreespace ('c:/', secspClu, bytespsec, freeClu, totalClU);
Fs: = freeclu*SecspClu*bytespSec;
TS: = TotalClu*SecspClu*bytespSec;
Edit1.text: = formatfloat ('##, ###', ts);
Edit2.Text: = Formatfloat ('##, ###', FS);
fin;
7. Limite el rango de movimiento del ratón.
Hay una función API preparada en Windows ClipCursor que puede restringir que el cursor mueva el área.
Bool clipcursor (
Const rect *lprect // señala una estructura que almacena datos de rango rectangular
);
Con esta función, puede limitar el rango de movimiento del cursor en la pantalla. Sin embargo, si desea controlar el mouse para moverse dentro de un rango fijo de una ventana determinada, debe llamar a CA
Una función
MapWindowpoints, que convierte las coordenadas de una forma en otra forma de coordenadas relacionadas.
int mapwindowpoints (
Hwnd hwndfrom, // mango de la ventana de origen
HWND HWNDTO, // Mango de forma objetivo
LPPOINT LPPOINTS, // Apunte a la matriz de estructura, que contiene las coordenadas que deben convertirse
Uint cPoints // Número de estructuras en la matriz
);
Cuando el parámetro HWNDFORM o HWNDTO es NULL o HWND_DESKTOP, indica que el formulario de origen u forma de destino es un formulario de pantalla. Los LPPoints de parámetros pueden señalar un
Estructura Rect, en este momento CPOTINS
El valor de 2 se establecerá en 2.
procedimiento tForm1.BitBTN1Click (remitente: tobject);
varilla
SC: Trect;
Comenzar
sc: = bitBtn2.BoundSrect;
MapWindowPoints (Handle, 0, SC, 2);
ClipCursor (@Sc);
fin;
procedimiento tForm1.BitBTN2Click (remitente: tobject);
varilla
SC: Trect;
Comenzar
sc: = rect (0,0, screen.width, pantalla.Height);
ClipCursor (@Sc);
fin;
8. Cómo iniciar el ahorro de pantalla.
Use funciones SendMessage o PostMessage.
procedimiento tForm1.BitBTN3Click (remitente: tobject);
Comenzar
sendMessage (hwnd_broadcast, wm_syscommand, sc_screensave, 0);
fin;
También hay un método para iniciar el protector de pantalla, llamando a la función SystemParametersInfo, que puede iniciar o cerrar el ahorro de pantalla a través de su configuración de parámetros.
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, NIL, 0);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, NIL, 0);
9. Verifique si la unidad está lista.
No existe una función especial para detectar si la unidad está lista, ni se puede llamar directamente una función API de una persona para implementar esta operación. Pero nosotros
Disksize se puede usar para detectar la capacidad de disco.
capacidad.
Function disksize (unidad: byte): int64;
Cuando el parámetro es 0, significa que se especifica la unidad actual;
Aumentó...