Cet article a été collecté et compilé par Lanyus à partir de "Delphi pour une merveilleuse programmation".
1. Masquer la barre des tâches
Dans Windows, la barre des tâches du système est essentiellement une fenêtre, avec son nom de classe de fenêtre "shell_traywnd". Pour implémenter des opérations dessus, vous pouvez utiliser la fonction API
Findwindow et
Showwindow pour atteindre son objectif.
var
Wndhandle: Thandle;
WndClass: Array [0..50] de char;
Commencer
StrpCopy (@wndclass [0], 'shell_traywnd');
wndhandle: = findwindow (@wndclass [0], nil);
Showwindow (wndhandle, sw_hide);
fin;
2. raccourcis cachés sur le bureau
Comme la barre des tâches, le bureau est en fait une fenêtre.
pour décider de s'afficher.
3. Obtenez la taille et l'emplacement de la barre des tâches
Utilisez FindWindow pour trouver la poignée, puis utilisez GetWindowRect pour obtenir la taille actuelle de la barre des tâches.
Getwindowrect (hwnd hwnd, // la poignée de la fenêtre demandée
Ltrect ltrect // L'adresse de la structure qui stocke les coordonnées de la fenêtre
): Booléen;
4. Obtenir des informations CPU
Les informations pertinentes du CPU sont stockées dans une structure, qui est encapsulée par Delphi avec TsysteMinfo et est définie comme suit:
typedef struct_system_info {
union{
DWORD DWOEMID;
struct {
Word Wprocessorarchitecture;
Mot Wreserved; // Réserver les mots
};
};
DWORD SWPAGEIAE;
Lpvoid lpminimumApplicationAddress;
Lpvoid lpmaximumApplicationAddress;
DWORD SWACTPROCTORMASSE;
DWORD DWNUMBERofProcessors;
DWORD DWPROCESSORTYPE;
DWORD Dwallocationgranularité;
Mot wprocessorlevel;
Word WprocessorRevision;
} System_info;
Parmi eux, DWProcessorTyT est déterminé par trois membres: WProcessorarchitecture, WprocessorLevel et WProcessorRevision, et sa valeur est:
Processor_intel_386: série Intel80386;
Processor_itnel_486: série Intel80486;
Processor_intel_pentium: série Intel Pentium;
Processor_mips_r4000: série 4000 de MIPS (uniquement applicable à Windows NT);
Processor_alpha_21064: série 21064 d'Alpha (uniquement applicable à Windows NT);
De plus, appelez simplement la fonction API GetSystemInfo après avoir obtenu des informations CPU.
5. Obtenez des informations mémoire.
Tout comme l'obtention du processeur, le système utilise toujours une structure pour stocker des informations mémoire. La définition de ces informations sur l'état interne stockées est la suivante:
typedef struct_memorystatus {
Dword dwlength; // sizeof (MemoryStatus) est la taille de cette structure
Dword dwmemoryload;
DWORD DWTOTALPHYS;
DWORD DWAVAILPHYS; // Taille de la mémoire physique disponible
DWORD DWTOTALPAGEFILE;
DWORD DwavailPageFile;
Dword dwtotalVirtual;
DWORD DwavailVirtual;
} MemoryStatus, * lpMemoryStatus;
Enfin, appelez la fonction API GlobalMemoryStatus pour obtenir des informations mémoire.
6. Obtenez la taille de l'espace disque. (Le test trouvé inexact)
Utilisez la fonction API GetDiskFreespace.
Bool getdiskfreespace (
Lpctstr lprootpathname, // répertoire racine
Lpdword lPsectorsperCluster, // nombre de secteurs par cluster
LPDword LPByTespersecteur, // Nombre d'octets par secteur
Lpdword lpnumberoffreeclusters, // le nombre de clusters disponibles
LPDword lptotalNumberofClusters // Nombre total de clusters
));
Procédure tform1.bitbtn1click (expéditeur: tobject);
var
SecSpClu, BytesPSC, FreeClu, TotalClu, TS, FS: DWORD;
Commencer
GetDiskfreespace ('c: /', secspclu, bytespsec, freeclu, totalclu);
Fs: = freeclu * secspclu * bytespsec;
Ts: = totalclu * secspclu * bytespsec;
Edit1.text: = formatfloat ('##, ###', ts);
Edit2.text: = formatfloat ('##, ###', fs);
fin;
7. Limitez la plage de mouvement de la souris.
Il existe une fonction API préparée dans Windows Clipcursor qui peut empêcher le curseur de déplacer la zone.
Bool clipcursor (
Const Rect * lPrect // pointer une structure qui stocke les données de plage rectangulaire
));
Avec cette fonction, vous pouvez limiter la plage de mouvement du curseur à l'écran. Cependant, si vous souhaitez contrôler la souris pour se déplacer dans une plage fixe d'une certaine fenêtre, vous devez appeler CA
Une fonction
MapWindowpoints, qui convertit les coordonnées d'une forme en une autre coordonnée de forme connexe.
int mapwindowpoints (
Hwnd hwndfrom, // poignée de fenêtre source
Hwnd hwndto, // poignée de formulaire cible
Lppoint lppoint, // pointer le tableau de structure, contenant les coordonnées qui doivent être converties
Uint cpoint // Nombre de structures dans le tableau
));
Lorsque le paramètre HwndForm ou Hwndto est NULL ou HWND_DESKTOP, il indique que le formulaire source ou la forme cible est un formulaire d'écran. Les paramètres LPPPoint peuvent pointer vers un
RECT Structure, à ce moment
La valeur de 2 sera définie sur 2.
Procédure tform1.bitbtn1click (expéditeur: tobject);
var
SC: Trect;
Commencer
sc: = bitbtn2.boundsrect;
MapWindowpoints (manche, 0, sc, 2);
Clipcursor (@sc);
fin;
Procédure tform1.bitbtn2click (expéditeur: tobject);
var
SC: Trect;
Commencer
SC: = RECT (0,0, Screen.Width, Screen.Height);
Clipcursor (@sc);
fin;
8. Comment démarrer l'économiseur d'écran.
Utilisez des fonctions SendMessage ou PostMessage.
Procédure tform1.bitbtn3click (expéditeur: tobject);
Commencer
sendMessage (hwnd_broadcast, wm_syscommand, sc_screensave, 0);
fin;
Il existe également une méthode pour démarrer l'économiseur d'écran, appelant la fonction SystemParametersInfo, qui peut démarrer ou fermer l'économiseur d'écran via ses paramètres de paramètres.
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 1, NIL, 0);
SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, 0, NIL, 0);
9. Vérifiez si le lecteur est prêt.
Il n'y a pas de fonction spéciale pour détecter si le lecteur est prêt, et il ne peut pas être directement appelé une fonction API à une personne pour implémenter cette opération. Mais nous
DiskSize peut être utilisé pour détecter la capacité du disque.
capacité.
Fonction DiskSize (Drive: Byte): Int64;
Lorsque le paramètre est 0, cela signifie que le lecteur actuel est spécifié;
Augmenté...