程序窗口;
{
这是制作申请的示例
不使用表单单元。 forms.pas是
使您的程序如此该死的Delphi单位
巨大的! forms.pas具有翻译的所有代码
您使用delphi w/组件创建的表单
进入窗户。如果你问我,任何添加的东西
您应用的200k(@%#$!)必须是该死的
效率低下的代码。
gordy <[email protected]>
www.jps.net/gfody
}
使用窗口,消息;
{$ r *.res}
var
WCLASS:TWNDCLASS; //主窗口的类结构
hfont,//字体手柄
hinst,//程序手柄(hinstance)
手柄,//主窗口的手柄
Hencrypt,//加密按钮的手柄
hdecrypt,//解密按钮的手柄
Hedit,//主编辑的手柄
hlabel,//密码标签的手柄
hpw:hwnd; //密码编辑的处理
MSG:TMSG; //消息结构
Dencrypt,
ddeCrypt:指针; //默认按钮过程
(*--------------------------------------------------------------------------- *)
//这一切都排在
程序大小;
var
RCT:TRECT;
开始
getWindowRect(handle,rct);
MoveWindow(HPW,230,5,RCT.RIGHT-RCT.LEFT-245,24,true);
MoveWindow(Hedit,5,34,rct.Right-rct.left-20,rct.bottom-rct.top-66,true);
结尾;
(*--------------------------------------------------------------------------- *)
//这是为了清理并停止程序
程序关闭;
开始
deleteObject(hfont);
UnregisterClass(“样本类”,HINST);
ExitProcess(Hinst); //结束程序
结尾;
(*--------------------------------------------------------------------------- *)
//用hpw中的文字在hedit中解密文本
程序解密;
var
x,i,//计数变量
Stext,SPW:整数; //文字的大小,PW
文字,PW:PCHAR; //文本缓冲区,PW
开始
Stext:= getWindowTextLength(Hedit)+1;
spw:= getWindowTextLength(hpw)+1;
getMem(文字,sext);
GetMem(PW,SPW);
getWindowText(hedit,text,stext);
getWindowText(HPW,PW,SPW);
X:= 0; //初始化计数
对于我:= 0 to sext-2做
开始
text [i]:= chr(ord(text [i]) - ord(pw [x]));
Inc(x);
如果x =(spw-1),则x:= 0;
结尾;
setWindowText(hedit,text);
freemem(文字);
Freemem(PW);
结尾;
(*--------------------------------------------------------------------------- *)
//用hpw中的文字加密文本
程序加密;
var
x,i,//计数变量
Stext,SPW:整数; //文字的大小,PW
文字,PW:PCHAR; //文本缓冲区,PW
开始
Stext:= getWindowTextLength(Hedit)+1;
spw:= getWindowTextLength(hpw)+1;
getMem(文字,sext);
GetMem(PW,SPW);
getWindowText(hedit,text,stext);
getWindowText(HPW,PW,SPW);
X:= 0; //初始化计数
对于我:= 0 to sext-2做
开始
text [i]:= chr(ord(text [i])+ord(pw [x]));
Inc(x);
如果x =(spw-1),则x:= 0;
结尾;
setWindowText(hedit,text);
freemem(文字);
Freemem(PW);
结尾;
(*--------------------------------------------------------------------------- *)
//此功能处理发送到加密按钮的每个消息
函数EncryptProc(HWND,MSG,WPARAM,LPARAM:LONGINT):longint; stdcall;
var
我:整数;
开始
//始终将消息传递给默认过程
结果:= CallwindowProc(Dencrypt,HWND,MSG,WPARAM,LPARAM);
案例msg
//如果用户按下选项卡,则是Gunna开关
//专注于解密按钮。
wm_keydown:如果wparam = 9,则setFocus(hdecrypt);
结尾;
结尾;
(*--------------------------------------------------------------------------- *)
//此功能处理发送到“解密”按钮的每个消息
功能DecryptProc(HWND,MSG,WPARAM,LPARAM:LONGINT):longint; stdcall;
开始
//始终将消息传递给默认过程
结果:= CallwindowProc(Dencrypt,HWND,MSG,WPARAM,LPARAM);
案例msg
//如果用户按下标签,则是Gunna Switch
//将重点返回到加密按钮。
wm_keydown:如果wparam = 9,则setFocus(hencrypt);
结尾;
结尾;
(*--------------------------------------------------------------------------- *)
//此功能处理发送到我们主窗口的每个消息
函数窗口Proc(HWND,MSG,WPARAM,LPARAM:LONGINT):longint; stdcall;
开始
//始终将消息传递给默认过程
结果:= DefwindowProc(HWND,MSG,WPARAM,LPARAM);
案例msg
wm_size:resize;
//单击按钮时,消息将传递给
//父窗口,因此我们在这里处理。
wm_command:如果lparam = hencrypt然后加密
否则,如果lparam = hdeCrypt,则解密;
WM_DESTROY:关闭;
结尾;
结尾;
(*--------------------------------------------------------------------------- *)
//这是主要程序功能(Winmain)
开始
hinst:= getModuleHandle(nil); //获取应用程序实例
// hinstance返回Zilch
与wclass做
开始
样式:= cs_parentDC;
HICON:= Lotalicon(Hinst,“ Mainicon”);
lpfnwndproc:= @windowproc;
hinstance:= hinst;
hbrbackground:= color_btnface+1;
lpszclassname:='示例类';
HCursor:= loadCursor(0,IDC_ARROW);
结尾;
//一旦我们的班级注册,我们
//可以开始用它制作窗口
RegisterClass(WCLASS);
//创建我们的主窗口
句柄:= createWindow(
“样本类”,//注册的类名称
'Encrypter-作者:Gordy',// Window的标题
ws_overlappedwindow或//基本窗口样式
ws_visible,//使其可见
10,//左
10,//顶部
400,//宽度
300,//高度
0,//父窗口句柄
0,//菜单的手柄
hinst,//应用程序实例
零); //创建数据的结构
//创建加密按钮
hencrypt:= createwindow(
'按钮',
'加密',
ws_visible或ws_child或bs_pushlike或bs_text,
5,5,65,24,句柄,0,Hinst,nil);
//创建解密按钮
hdecrypt:= createwindow(
'按钮',
“解密”,
ws_visible或ws_child或bs_pushlike或bs_text,
75,5,65,24,句柄,0,Hinst,nil);
//创建主编辑
hedit:= createWindowex(
WS_EX_CLIENTEDGE,//此EX样式适用于斜面边缘
'编辑',
'',,
ws_visible或ws_child或es_left或es_multiline或es_wantreturn或es_autovscroll或ws_vscroll,
5,34,380,234,句柄,0,hinst,nil);
//创建密码编辑
hpw:= createWindowex(
WS_EX_CLIENTEDGE,
'编辑',
'',,
ws_visible或ws_child或es_left或es_autohscroll或es_password,
230,5,155,24,句柄,0,hinst,nil);
hlabel:= createwindow(
'静止的',
'密码:',
ws_visible或ws_child或ss_left,
160,10,70,20,句柄,0,Hinst,nil);
//为我们的窗口创建自定义字体
//所有内容都会使用系统字体(BLECH!)
hfont:= createfont(
-12,//高度
0,//宽度
0,//旋转角度
0,//方向
0,//重量
0,//斜体
0,//下划线
0,//罢工
default_chareet,// char集
OUT_DEFAULT_PRECIS,//精确
clip_default_precis,//剪辑
default_quality,//渲染质量
default_pitch或ff_dontcare,//俯仰和家庭
'Sans Serif女士'); //字体名称
//为我们所有控件设置字体
SendMessage(Hencrypt,WM_SetFont,Hfont,0);
SendMessage(HdeCrypt,WM_SetFont,Hfont,0);
sendmessage(Hedit,wm_setfont,hfont,0);
SendMessage(HPW,WM_SETFONT,HFONT,0);
sendmessage(hlabel,wm_setfont,hfont,0);
//子类加密按钮(分配自定义WindowProc)
Dencrypt:=指针(getwindowlong(Hencrypt,gwl_wndproc));
setWindowlong(Hencrypt,GWL_WNDProc,longint(@encryptProc));
//子类解密按钮
ddeCrypt:= pointer(getwindowlong(hdecrypt,gwl_wndproc));
setWindowlong(hdecrypt,gwl_wndproc,longint(@decryptproc));
//我不在此处的编辑控件的原因
//是因为他们不做任何习惯。如果我想要
//每当您键入“ G”时,它们会发出哔哔声或
//我会亚级。
//专注于第一个控制(否则没有鼠标的人会被拧紧)
setFocus(hencrypt);
//现在我们循环getMessage处理每个消息
//我们主窗口的消息列表。每次主要
//窗口将其添加到列表中的消息,所以
//此循环最终将处理它。
while(getMessage(msg,hander,0,0))
开始
TranslateMessage(msg); //翻译任何键盘MSG
dispatchMessage(msg); //将其发送到我们的WindowProc
结尾; //用于处理。
结尾。