?? smallexe.dpr
字號(hào):
program SmallExe;
uses
SysUtils,
Windows,//這個(gè)單元必須要加入
Messages; //這個(gè)單元必須要加入
var
WinClass: TWndClassA;
Inst, Handle, Button1, Label1, Edit1: Integer;
Msg: TMsg;
hFont: Integer;
procedure CheckPassword;//定義一個(gè)檢查用戶輸入的密碼是否正確的過程;
var
Text: PChar;
Textlength: Integer;
begin
TextLength := GetWindowTextLength(Edit1);
GetMem(Text, TextLength + 1);
GetWindowText(Edit1, Text, TextLength + 1);//利用API函數(shù)取得用戶輸入的密碼;
if (Text = 'caoyang') then
begin
MessageBoxA(Handle, '密碼輸入正確,恭喜您,您已經(jīng)完成了登陸認(rèn)證!','密碼檢查', MB_OK);
FreeMem(Text, TextLength + 1);
Halt;
Exit;
End
Else
MessageBoxA(Handle, '密碼輸入不正確,請(qǐng)重新輸入.', '密碼檢查', MB_OK);
end;
function WindowProc(hWnd, uMsg, wParam, lParam:Integer):Integer;stdcall;
//這里定義了一個(gè)過程類型的具體兼容實(shí)現(xiàn),實(shí)際上是一個(gè)回調(diào)函數(shù)
begin
//反復(fù)循環(huán)檢測消息隊(duì)列,給uMsg,wParam,lParam賦值
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
//當(dāng)收到點(diǎn)擊按鈕的消息的時(shí)候,調(diào)用CheckPassword過程來檢查用戶的輸入是否正確
if (lParam = Button1) and (uMsg = WM_COMMAND) then
CheckPassword;
//如果收到銷毀窗體的消息,則利用Halt語句釋放所有的資源
if (uMsg = WM_DESTROY) then
Halt;
end;
//下面的部分是程序的主體
begin
{ ** 注冊(cè)用戶自己的窗口類 ** }
Inst := hInstance;
with WinClass do
begin
style := CS_CLASSDC or CS_PARENTDC;
lpfnWndProc := @WindowProc;
hInstance := Inst;
hbrBackground := color_btnface + 1;
lpszClassname := 'AG_TESTWINDOW';
hCursor := LoadCursor(0, IDC_ARROW);
end;
RegisterClass(WinClass);
{ ** 創(chuàng)建主窗體 ** }
Handle := CreateWindowEx(WS_EX_WINDOWEDGE, 'AG_TESTWINDOW', '用Windows API編寫程序演示',WS_VISIBLE or WS_SIZEBOX or WS_CAPTION or WS_SYSMENU,
363, 278, 305, 65, 0, 0, Inst, nil);
{ ** 創(chuàng)建一個(gè)按鈕 ** }
Button1:=CreateWindow('Button', '確認(rèn)', WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,216, 8, 75, 25, handle, 0, Inst, nil);
{ ** 創(chuàng)建一個(gè)靜態(tài)文本標(biāo)簽 ** }
Label1 := Createwindow('Static', '請(qǐng)輸入密碼:', WS_VISIBLE or WS_CHILD or SS_LEFT,8, 12, 76, 13, Handle, 0, Inst, nil);
{ ** 創(chuàng)建一個(gè)編輯框 ** }
Edit1:=CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', '', WS_CHILD or WS_VISIBLE or WS_BORDER or ES_PASSWORD, 88, 8, 121, 21, Handle, 0, Inst, nil);
{ ** 創(chuàng)建字體句柄 ** }
hFont := CreateFont(-11, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif');
{ 改變字體 }
if hFont <> 0 then
begin
SendMessage(Button1, WM_SETFONT, hFont, 0);
SendMessage(Label1, WM_SETFONT, hFont, 0);
SendMessage(Edit1, WM_SETFONT, hFont, 0);
end;
{把輸入焦點(diǎn)放在編輯框中 }
SetFocus(Edit1);
UpdateWindow(Handle);
{ ** 消息循環(huán)檢測 ** }
while(GetMessage(Msg, Handle, 0, 0)) do
begin
TranslateMessage(msg);//翻譯消息的類型
DispatchMessage(msg);//分發(fā)消息給相應(yīng)的處理例程
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -