1、共 12 页 第 1 页 目目 录录 目 录 . 1 一 设计目的 2 二 设计内容 2 三 设计要求 2 四 设计过程 2 1、窗口函数程序实现的步骤 2 2、消息循环 . 4 3、编写窗口过程函数 5 4、自启动模块设计 . 6 5、定时发送邮件模块设计 6 6、程序流程图 . 8 五 设计总结 9 参考文献 . 9 共 12 页 第 2 页 一一 设计目的设计目的 通过本次课程设计,设计一个键盘监听程序,系统启动后自动记录所有键盘 信息的功能,能够记录键盘的输入值,且该程序具有自动启动功能,并能够定 期通过网络给某人的指定的邮箱发送所记录的信息。 二二 设计内容设计内容 1、题目分析,查
2、找资料和总体设计。 2、详细设计、代码编制、程序调试。系统功能要求如下: 模块一 该部分通过设计一个窗口,并在窗口中响应键盘消息,记录键盘的相 关按键记录,实现键盘监听的功能。 模块二 该部分通过对注册表的修改,将该程写入注册表,实现该程序的随系 统的启动而启动。 模块三 该部分通过调用系统的定时函数,实现邮件的定时发送。 3、结果分析、完成课程设计报告。 三三 设计要求设计要求 1、学生能够较深入的理解网络编成的设计方法,并在所要求的设计时间内,利 用自己所熟悉的语言完成本题目的程序编制。 2、程序要能正确运行,完成预功能。 3、要求设计清晰、美观的用户界面,当操作出错时,程序要有出错提示信
3、息。 4、上交设计报告。重点阐述程序的有关算法说明、程序的流程图以及子程序的 功能和参数的说明及程序代码。 四四 设计过程设计过程 1、窗口函数程序实现的步骤 (1)WinMain 函数的定义 WinMain 函数的原型声明如下: int WINAPI WinMain( HINSTANCE hInstande, HINSTANCE hPrevInstance, 共 12 页 第 3 页 LPSTR IpCmdLine, Int nCmdShow ); WinMain 函数接收 4 个参数, 这些参数都是在系统调用 WinMian 函数时, 传 递给应用程序的。 第一个参数 hInstance
4、表示该程序当前运行的实例的句柄。第二个参数 hPrevInstance 表示当前实例的前一个实例的句柄。 第三个参数 IpCmdLine 是一 个以空终止的空符串,第四个参数 nCmdShow 指定程序的窗口应该如何显示。 (2)创建一个窗口 设计一个窗口类 一个完整的窗口有许多的特征,包括光标、图标、背景色等。因此在创建 一个窗口之前,要对该类型的窗口进行设计,指定该窗口的相关特征。Windows 为我们定义了一个窗口所应该有的基本属性。 在此次的程序中, 运用了 wndClass 这样一个函数,来实现窗口属性的设置。其中的第二个成员变量 IpfnWndProc 是一个函数指针,指向窗口过程
5、函数,窗口过程函数是一个回调函数。回调函 数在特定的事件或条件发生时由另外一方调用的,用于对该事件或条件进行响 应。 (3)注册窗口类 调用 RegisterClass 函数对窗口进行注册,注册成功后才能创建该类型的 窗口。具体实现如下:RegisterClass( (4)创建窗口 设计好窗口并且将其注册成功后, 就可以用 CreateWindow 函数产生这种类 型的窗口了。其函数的原型声明如下: HWND CreateWindow( LPCTSTR lpClassName, / registered class name LPCTSTR lpWindowName, / window nam
6、e DWORD dwStyle, / window style int x, / horizontal position of window int y, / vertical position of window int nWidth, / window width int nHeight, / window height 共 12 页 第 4 页 HWND hWndParent, / handle to parent or owner window HMENU hMenu, / menu handle or child identifier HINSTANCE hInstance, / handle to application instance LPVOID lpParam / window-creation data ); (5)显示及更新窗口 其中,显示窗口通过 ShowWindow 函数实现。更新窗口通过 UpdateWindow 函数实现。到此,一个窗口函数的