Este artigo foi coletado e compilado por Lanyus de "Delphi para uma programação maravilhosa".
1. Esconda a barra de tarefas
No Windows, a barra de tarefas do sistema é essencialmente uma janela, com o nome da classe de janela "Shell_traywnd". Para implementar operações, você pode usar a função da API
FindWindow e
ShowWindow para atingir seu objetivo.
var
WndHandle: Thandle;
wndclass: matriz [0..50] de char;
Começar
StrpCopy (@WNDClass [0], 'Shell_trayWnd');
wndHandle: = findWindow (@WndClass [0], nil);
ShowWindow (wndhandle, sw_hide);
fim;
2. Atalhos ocultos na área de trabalho
Como a barra de tarefas, o desktop é na verdade uma janela.
para decidir se deve ser exibido.
3. Obtenha o tamanho da barra de tarefas e o local
Use o FindWindow para encontrar o identificador e, em seguida, use GetWindowRect para obter o tamanho atual da barra de tarefas.
Getwindowrect (hwnd hwnd, // a alça da janela solicitada
Lprect lprect // o endereço da estrutura que armazena as coordenadas da janela
): Booleano;
4. Obtenha informações da CPU
As informações relevantes da CPU são armazenadas em uma estrutura, que é encapsulada por Delphi com tsystemInfo e é definida da seguinte forma:
typedef struct_system_info {
união{
DWord dwoemid;
estrutura {
Palavra wProcessOarchitecture;
Word WRITERVED; // Palavras de reserva
};
};
DWORD SWPagesiae;
LPVOid LPMinimumApplicationAddress;
LPVOid LPMAMUMAPLICATIONADDRESS;
DWORD SwactionProcessMask;
DWORD DWNumberOfProcessors;
DWORD DWProcessorType;
DWORD DWALLOCATIONGRANULITY;
Word WProcessorLEND;
Word WProcessRevision;
} System_info;
Entre eles, o dwprocessortype é determinado por três membros: WProcessOrchitecture, WProcessorLevel e WProcessRevision, e seu valor é:
Processor_intel_386: série Intel80386;
Processor_itnel_486: série Intel80486;
Processor_Intel_Pentium: Intel Pentium Series;
Processor_mips_r4000: série 4000 do MIPS (aplicável apenas ao Windows NT);
Processor_alpha_21064: série 21064 da Alpha (aplicável apenas ao Windows NT);
Além disso, basta chamar a função da API getSystemInfo após obter informações da CPU.
5. Obtenha informações de memória.
Assim como a obtenção de CPU, o sistema ainda usa uma estrutura para armazenar informações de memória. A definição desta informação de estado interno armazenada é a seguinte:
typedef struct_memorystatus {
DWord dwlength;
DWord dwmemoryload;
DWORD dwtotalphys;
DWORD DWavailphys;
DWORD DWTOTALPAGEFILE;
DWORD DWavailPageFile;
DWord dwtotalvirtual;
DWORD DWavailVirtual;
} MemoryStatus,*lpMemoryStatus;
Por fim, ligue para a função API GlobalMemoryStatus para obter informações de memória.
6. Obtenha o tamanho do espaço do disco. (O teste achado impreciso)
Use a função API getDiskFreespace.
Bool getdiskfreespace (
LPCTSTR LProotPathName, // Diretório raiz
LPDWORD LPSectorspercluster, // Número de setores por cluster
Lpdword lpbyTespersector, // número de bytes por setor
LPDWORD LPNUMBERFREECLUSTERS, // O número de clusters disponíveis
Lpdword lptotalNumberOfclusters // Número total de clusters
);
procedimento tFform1.bitbtn1Click (remetente: TObject);
var
Secspclu, ByTespSC, Freeclu, Totalclu, TS, FS: DWORD;
Começar
GetDiskfreespace ('C:/', Secspclu, ByTespsec, Freeclu, Totalclu);
FS: = FREECLU*SECSPCLU*BYTESPSEC;
Ts: = totalclu*SECSPCLU*byTespsec;
Edit1.text: = formatfloat ('##, ###', ts);
Edit2.text: = formatfloat ('##, ###', fs);
fim;
7 Limite a faixa de movimento do mouse.
Há uma função de API pronta no Windows ClipCursor que pode restringir o cursor a mover a área.
Bool Clipcursor (
Const Rect *lprect // aponta para uma estrutura que armazena dados de faixa retangular
);
Com essa função, você pode limitar o alcance do movimento do cursor na tela. No entanto, se você deseja controlar o mouse para se mover dentro de um alcance fixo de uma determinada janela, você precisa ligar para CA
Uma função
MapWindowPoints, que converte as coordenadas de uma forma em outro formulário relacionado coordenadas.
int mapWindowpoints (
HWND
HWND HWNDTO, // MANIPEDADE DE FORMULHOS DE TARGEN
LPPONT LPpoints, // apontar para a matriz de estrutura, contendo as coordenadas que precisam ser convertidas
Uint cpoints // número de estruturas na matriz
);
Quando o parâmetro hwndform ou hwndto é nulo ou hwnd_desktop, indica que o formulário de origem ou o formulário de destino é um formulário de tela. Os parâmetros lppoints podem apontar para um
Estrutura Rect, neste momento CPoints
O valor de 2 será definido como 2.
procedimento tFform1.bitbtn1Click (remetente: TObject);
var
SC: Trect;
Começar
sc: = bitbtn2.boundsrect;
MapWindowPoints (Handle, 0, SC, 2);
Clipcursor (@sc);
fim;
procedimento tform1.bitbtn2Click (remetente: tabjas);
var
SC: Trect;
Começar
sc: = ret (0,0, screen.width, screen.height);
Clipcursor (@sc);
fim;
8. Como iniciar o protetor de tela.
Use funções de sendMessage ou pós -maquiagem.
procedimento tform1.bitbtn3Click (remetente: tabjas);
Começar
sendMessage (hwnd_broadcast, wm_syscommand, sc_screensave, 0);
fim;
Há também um método para iniciar o protetor de tela, chamando a função SystemParameterSInfo, que pode iniciar ou fechar o protetor de tela através de suas configurações de parâmetros.
SystemParametersInfo (spi_setscreenseActive, 1, nil, 0);
SystemParametersInfo (spi_setscreenseActive, 0, nil, 0);
9. Verifique se a unidade está pronta.
Não há função especial para detectar se a unidade está pronta, nem pode ser chamada diretamente de uma função de API de uma pessoa para implementar esta operação. Mas nós
Disksize pode ser usado para detectar a capacidade do disco.
capacidade.
Função Disksize (Drive: Byte): Int64;
Quando o parâmetro é 0, significa que a unidade atual é especificada;
Aumentou...