Dieser Artikel wurde von Lanyus von "Delphi für wundervolle Programmierung" zusammengestellt und zusammengestellt.
1. Verstecken Sie die Taskleiste
In Windows ist die Taskleiste des Systems im Wesentlichen ein Fenster mit seinem Fensterklassennamen "Shell_traywnd". Um Operationen darauf zu implementieren, können Sie die API -Funktion verwenden
FindWindow und
Showwindow, um sein Ziel zu erreichen.
var
Wndhandle: Thandle;
WndClass: Array [0..50] von Char;
Beginnen
StrpCopy (@WndClass [0], 'Shell_traywnd');
wndHandle: = findWindow (@wndClass [0], nil);
ShowWindow (WndHandle, SW_Hide);
Ende;
2. Versteckte Abkürzungen auf dem Desktop
Wie die Taskleiste ist der Desktop tatsächlich ein Fenster.
Entscheiden Sie, ob Sie angezeigt werden sollen.
3. Holen Sie sich die Größe und den Standort der Taskleiste
Verwenden Sie FindWindow, um den Griff zu finden, und verwenden Sie GetWindowrect, um die aktuelle Taskleistengröße zu erhalten.
GetWindowRect (hwnd hwnd, // das Handle des angeforderten Fensters
LPRECT // Die Adresse der Struktur, die die Fensterkoordinaten speichert
): Boolean;
4. Erhalten Sie CPU -Informationen
Die relevanten Informationen der CPU werden in einer Struktur gespeichert, die von Delphi mit Tsysteminfo eingekapselt und wie folgt definiert ist:
typedef struct_system_info {
Union{
DWORD DWOEMID; // Der folgende Strukturzweig wurde anstelle der Verwendung dieser Variablen verwendet
struktur {
Wort wProcessorarchitecture; // bezeichnet die Architektur des Prozessors
Wort wreserviert; // Wörter reservieren
};
};
DWORD SWPAGEIAE; // Paginierungsgröße
Lpvoid lpminimumapplicationAddress;
Lpvoid lpmaximumApplicationAddress;
DWORD SWACTIVEPROCESSORMASK;
Dword dwnumberofprocessors;
DWORD DWPROCESSORTYM; // Prozessorkategorie
DWORD DWALLOCATIONGRANUMARTIC;
Wort wProcessorLevel; // Prozessorebene
Word WProcessorRevision;
} System_info;
Unter ihnen wird DwProcessortype von drei Mitgliedern bestimmt: WProcessorarchitecture, WProcessorLevel und WProcessorRevision, und sein Wert ist:
Processor_intel_386: Intel80386 -Serie;
Processor_itnel_486: Intel80486 -Serie;
Processor_intel_pentium: Intel Pentium -Serie;
Processor_mips_r4000: MIPS 4000 -Serie (nur für Windows NT anwendbar);
Processor_alpha_21064: Alphas 21064 -Serie (nur für Windows NT anwendbar);
Rufen Sie außerdem die API -Funktion getSystemInfo auf, nachdem Sie CPU -Informationen erhalten haben.
5. Speicherinformationen erhalten.
Genau wie die CPU verwendet, verwendet das System immer noch eine Struktur, um Speicherinformationen zu speichern. Die Definition dieser gespeicherten internen Zustandsinformationen lautet wie folgt:
typedef struct_memoryStatus {
DWORD DWLENGHT;
DWORD DWMEMORYLOAD;
DWORD DWTOTALPHYS;
DWORD DWAVAILPHYS; // verfügbare physische Speichergröße
DWORD DWTOTALPAGEFILE;
DWORD DWAVailPageFile;
DWORD DWTOTALVIRTUM;
DWORD DWAVAILVIRTUAL; // Die Größe des verfügbaren virtuellen Speichers
} MeenStatus,*lpMemoryStatus;
Rufen Sie schließlich die API -Funktion GlobalMemoryStatus auf, um Speicherinformationen zu erhalten.
6. Holen Sie sich die Speicherplatzgröße. (Der Test ungenau gefunden)
Verwenden Sie die API -Funktion getDiskfreespace.
Bool getdiskfreespace (
LPCTStr LPROOTPADHNAME, // Wurzelverzeichnis
LPDWORD LPSECTORSPERCLUSTER, // Anzahl der Sektoren pro Cluster
LPDWORD LPBYTeSperctor, // Anzahl der Bytes pro Sektor
LPDWORD LPNUMBEROFFREECLUSTERS, // die Anzahl der verfügbaren Cluster
LPDWORD LPTOTALNUMBEROFCLUSTERS // Gesamtzahl der Cluster
);
procedure tform1.bitbtn1click (Absender: tobject);
var
Secspclu, Bytespsc, Freeclu, TotalClu, TS, FS: DWORD;
Beginnen
GetDiskfreespace ('C:/', Secspclu, bytespsec, freeclu, TotalClu);
Fs: = freeclu*secspclu*bytespsec;
TS: = TotalClu*SecSpclu*bytespsec;
Edit1.text: = formatfloat ('##, ###', TS);
Edit2.text: = formatfloat ('##, ###', fs);
Ende;
7. Begrenzen Sie den Mausbewegungsbereich.
In Windows ClipCursor gibt es eine fertige API-Funktion, die den Cursor daran hindert, den Bereich zu bewegen.
Bool clipCursor (
Const rect *lprekt // auf eine Struktur verweisen, die rechteckige Bereichsdaten speichert
);
Mit dieser Funktion können Sie den Bewegungsbereich des Cursors auf dem Bildschirm einschränken. Wenn Sie jedoch die Maus steuern möchten, um sich innerhalb eines festen Bereichs eines bestimmten Fensters zu bewegen, müssen Sie CA anrufen
Eine Funktion
MapWindowPoints, die die Koordinaten eines Formulars in eine andere verwandte Formkoordinaten umwandeln.
int mapWindowpoints (
Hwnd hwndfrom, // Quellfensterhandfenster
Hwnd hwndto, // Zielformularhandle
LPIN -LPINTS -
Uint cpoints // Anzahl der Strukturen im Array
);
Wenn der Parameter hwndform oder hwndto null oder hwnd_desktop ist, zeigt er an, dass das Quellformular oder das Zielformular ein Bildschirmformular ist. Parameter -Lpinouts können auf a verweisen
RETTELSTRUKTUR, zu diesem Zeitpunkt cpoints
Der Wert von 2 wird auf 2 eingestellt.
procedure tform1.bitbtn1click (Absender: tobject);
var
SC: Trect;
Beginnen
SC: = bitBtn2.BoundSRect;
MapWindowPoints (Handle, 0, Sc, 2);
ClipCursor (@SC);
Ende;
procedure tform1.bitbtn2click (Absender: tobject);
var
SC: Trect;
Beginnen
sc: = rect (0,0, screen.width, screen.height);
ClipCursor (@SC);
Ende;
8. So starten Sie den Bildschirmschoner.
Verwenden Sie SendMessage- oder Postmessage -Funktionen.
procedure tform1.bitbtn3click (Absender: tobject);
Beginnen
sendMessage (hwnd_roadcast, wm_syscommand, sc_screensave, 0);
Ende;
Es gibt auch eine Methode, um den Bildschirmschoner zu starten und die Funktion systemparameterfo aufzurufen, die den Bildschirmschoner durch seine Parametereinstellungen starten oder schließen kann.
SystemParametersinfo (SPI_SETSETSAVEACTIVE, 1, NIL, 0);
SystemParameterSinfo (SPI_SETSETSAVEACTIVE, 0, NIL, 0);
9. Überprüfen Sie, ob das Laufwerk fertig ist.
Es gibt keine besondere Funktion, um festzustellen, ob das Laufwerk bereit ist, und es kann auch nicht direkt als eine Ein-Personen-API-Funktion bezeichnet werden, um diesen Vorgang zu implementieren. Aber wir
DISKSIZE kann verwendet werden, um die Festplattenkapazität zu erkennen.
Kapazität.
Funktion diskSize (Laufwerk: Byte): INT64;
Wenn der Parameter 0 ist, bedeutet dies, dass das aktuelle Laufwerk angegeben ist.
Erhöht...