?? 動(dòng)態(tài)給外部程序加一個(gè)按紐 (2001年3月15日).txt
字號(hào):
動(dòng)態(tài)給外部程序加一個(gè)按紐 (2001年3月15日)
網(wǎng)友更新 分類:Win API 作者:閻磊 推薦:yanlei 閱讀次數(shù):357
(http://www.codesky.net)
--------------------------------------------------------------------------------
啟動(dòng)計(jì)算器,給計(jì)算器加一個(gè)按鈕
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
proc : longint;
form_hw,hn:HWND;
implementation
{$R *.DFM}
function WndProc2(hwnd: HWnd; Msg: UINT; wParam: wParam;
lParam: LPARAM) : integer; Far; stdcall;
begin
CASE Msg OF
WM_LBUTTONUP:
begin
showmessage('ok');
end
END;
Result := CallWindowProc(TFNWndProc(proc), hwnd, Msg, wParam, lParam);
end;
procedure TForm1.Button1Click(Sender: TObject);
var l:longint;
rcw : Word;
begin
rcw := WinExec('calc.exe', SW_SHOWNORMAL);//啟動(dòng)計(jì)算器
if rcw<=32 then //無法啟動(dòng)計(jì)算器
begin
Application.Terminate;
end ;
while true do//確保計(jì)算器啟動(dòng)
begin
form_hw:=FindWindow(nil,'計(jì)算器');
if boolean(form_hw) then break;
end;
hn := CreateWindow('BUTTON', 'ok',
WS_VISIBLE + WS_CHILD, 0, 0, 30, 20,form_hw
, 0, 0, nil);//left=0,top=0,width=30 height=20
proc := GetWindowLong(hn, GWL_WNDPROC);
l := longint(@WndProc2);//設(shè)定事件
SetWindowLong(hn, GWL_WNDPROC, l);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if boolean(form_hw) then//啟動(dòng)
SendMessage(form_hw, wm_close,0,0);
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -