1、判断Num Lock、Caps Lock、Scroll Lock指示灯状态
以Num Lock为例:
function IsNumLockOn() : boolean;
begin
Result := (GetKeyState(VK_NUMLOCK) and $01) <> 0;
end;
如果灯亮则返回True,不亮返回False。
VK_NUMLOCK 替换成 VK_CAPITAL 或 SCROLL 则可以判断Caps Lock 或 Scroll Lock指示灯的状态。
2、更改ComboBox组件的下拉框的宽度
ComboBox下拉框的宽度默认是与ComboBox的宽度(Width)相同的,所以如果ComboBox的Item内容长度比较长时,下拉框就显示不了。这时可以用代码更改下拉框的宽度,以显示完整内容:
ComboBox1.Perform(CB_SETDROPPEDWIDTH, 600, 0);
“600”表示新的宽度,可以根据需要修改。
3、激活当前的屏幕保护程序
PostMessage(GetDesktopWindow, WM_SYSCOMMAND, SC_SCREENSAVE, 0);
4、打开Windows查找对话框(需添加ShellAPI单元)
ShellExecute(
handle,
'find',
'c:/windows', // 开始搜索的目录
'',
'',
SW_SHOW
);
5、判断系统是否是使用大字体。如果用户设置显示效果是大字体,将会严重影响软件界面的显示。
if Screen.PixelsPerInch = 96 then
;// 正常字体;
if Screen.PixelsPerInch = 120 then
;// 大字体;
6、取消默认的Beep。Delphi的TEdit组件中用户按下回车键后,PC扬声器都会Beep一声。下面的代码用于取消这一声:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then key := #0;
end;
7、判断外部应用程序是否停止响应
procedure TForm1.Button1Click(Sender: TObject);
var
H : THandle;
lngReturnValue : longint;
DWResult : DWORD;
begin
H := FindWindow('Notepad', nil); //要判断的程序
if H > 0 then
begin
lngReturnValue := SendMessageTimeout(H, WM_NULL, 0,
0, SMTO_ABORTIFHUNG And SMTO_BLOCK, 1000, DWResult);
if lngReturnValue > 0 then
ShowMessage('Responding')
else
ShowMessage('Not responding');
end
else
ShowMessage('Application not found');
end;