文件传输系统报告_第1页
文件传输系统报告_第2页
文件传输系统报告_第3页
文件传输系统报告_第4页
文件传输系统报告_第5页
免费预览已结束,剩余29页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉工程大学计算机科学与工程学院综合设计报告设计名称:软件基础综合设计设计题目:简单文件传输系统学生学号:1405121004专业班级:2014 智能科学与技术02学生姓名:楚明萱指导教师(职称):朱锐(讲师)学业导师(职称):赵彤州(副教授)学生成绩:完成时间:2016年 6月 24日武汉工程大学计算机科学与工程学院制说明:1、报告中的第一、二、三项由综合设计负责人在综合设计开始前填写并发给每个学生。2、学业导师负责批改学生的设计报告,并给出相应的得分。同时,就设计报告质量撰写评语。3、指导教师就学生在设计期间的表现及设计完成情况分别给出相应的得分。同时,就此两项情况撰写评语。4、设计的总评

2、成绩由上述各部分累加得出,由指导教师汇总,并填写于报告的封面。5、设计报告正文字数一般应不少于5000 字,也可由综合设计负责人根据本项综合设计的具体情况酌情增加字数或内容。6、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各项课程设计),各专业也可根据本项综合设计的特点及内容做适当的调整,并上报学院批准。- ii-武汉工程大学计算机科学与工程学院综合设计报告成绩评定表学生姓名: 楚明萱学号: 1405121004班级:2014 智能科学与技术 02类合计 各项评分标准实际评语别分值 分值得分报告30质量平时20表现设计完50成情况报告格式规范,表述清晰,章节内容组织恰当

3、。符号统10 一,图表完备,符合规范要求。参考文献数量在 5 篇以上,格式及引用符合要求。报告内容翔实,结构严谨合理。课题背景介绍清楚,综述充分。设计与实现等主要10 过程完整,论述具体透彻。能运用所学专业知识对问题加以分析和求解。无抄袭现象。设计报告对整个设计过程进行了全面总结, 体现了收获,10得出了有价值的结论或结学业导师(签字):果。遵守学习纪律,表现良好,20 积极完成课程设计任务,无旷课、迟到、早退等情况。按照要求完成设计内容,方案合理,功能完善,设计工30 作量饱满,能运用专业知识和技能去发现与解决实际问题。在设计过程中展现出了较强20 的学习能力、 动手实践能力、团队协作能力和

4、创新意识。总评成绩指导教师(签字):- I -武汉工程大学计算机科学与工程学院综合设计报告一、综合设计目的、条件、任务和内容要求:1、设计目的本设计综合应用面向对象程序设计思想和方法、C+语言以及算法与数据结构知识解决比较简单的问题, 培养学生的程序设计综合能力以及撰写文档和报告的专业能力。2、设计任务复习算法与数据结构知识,完成一个简单的文件传输系统。3、设计内容设计并实现一个简单文件传输系统。能够实现 1 对 1 和 1 对多的文件传输。 在设计过程中要包含以下内容:代码调试( Visual stutio 或其他);流程图( Visio)的画法与应用;Socket 发送和接收;多线程的使用

5、。-II-武汉工程大学计算机科学与工程学院综合设计报告二、进度安排:1. 1 个单元时间,收集资料,熟悉 vs 编程环境;2. 1 个单元时间,学习 Visio 画图;3. 1 个单元时间,学习代码调试;4. 1 个单元时间,学习 Socket 通讯;5. 1 个单元时间,学习多线程编程;6. 1 个单元时间,完成文件传输系统;7. 4 个单元试卷,撰写报告和检查。三、应收集资料及主要参考文献:Visio 的使用1.启动 Visio 软件。单击左侧类别中的“流程图”,如图1 所示。2.因为我们要创建的是一个标准的流程图, 所以需要在中间的模板列表中, 拖动滚动条,找到并单击“基本流程图”,如图

6、 2 所示。这样我们就可以使用标准的流程图形状进行绘制了。3.在“基本流程图形状”列表中,按住鼠标左键将“准备”形状拖到右边的绘图页中,如图 3 左所示,松开鼠标完成形状的添加。4.双击添加到绘图页中的“准备”形状,输入文字“准备好相关资料”,如图3右所示。在页边的空白处单击鼠标左键可以结束文字的输入。5.单击鼠标左键, 选择该图形,当形状周围显示绿色方块时, 表示被选中了。然后,通过格式栏中的相应按钮对字体、字号和字的颜色等进行相应设置。这里将字体设置为黑体,字号为12pt。6.改变字的大小后, 需要调整形状的大小。 鼠标移到绿色方块处, 当鼠标变为水平箭头时,如图 4 左所示,按住拖动,可

7、以调整形状的大小,以便让形状可以完全容纳文字。然后,我们继续将“进程”形状拖动到绘图页中,这时由于在绘图页中已经存在了一个形状,系统启动了动态对齐的功能,会显示一条垂直的虚线,我们使“进程”形状与“准备”形状的中心点对齐,如图4 右所示。松开鼠标完成形状的添加。-III-武汉工程大学计算机科学与工程学院综合设计报告7.双击“进程”形状,输入文字“教务处报到”,单击空白处结束输入。然后,选中“准备”形状,单击“格式”工具栏中的格式刷按钮复制格式,将鼠标指针移动到“进程”形状上,鼠标变成刷子形状,如图5 所示。此时单击,就可以快速地完成其文字的设置了。8.按照这样的操作方法,我们依次添加其他的形状

8、,如图6 所示。9.单击工具栏中的“连接线工具”按钮,如图7 所示。10.鼠标指标移到“准备”形状的中心角点处,鼠标显示红色方块,如图8 左所示,按住鼠标向下拖动至下一个形状的中心角点处,同样也会显示红色的方块, 如图 8右所示。这种红色的方块代表着两个形状间的动态连接,此时松开鼠标就完成形状间的连线了。11.选择的“连接线工具”是可以连续使用的,用上面的方法将其他的形状也进行连接,连接完成后,在工具栏中单击“指向工具”按钮,鼠标恢复为正常状态,如图 9 所示。12.切换至“标题与边框”列表,将“怀旧形”边框拖到绘图页中,双击标题并输入标题文字,如“某校新生入学报到流程”。13.单击左侧的“背

9、景”,将“地平线背景”拖动到绘图页中,此时系统会弹出对话框询问是否要将其作为背景页,如图 10 所示。14. 这里单击“是”按钮,将其作为背景页处理,系统将背景页命名为“ VBackground”,此时,流程图就绘制好了,如图11 所示。15.在工具栏中单击“保存”按钮,将流程图进行保存,如图12 所示,文件名称为“入学流程”,文件类型设置为“绘图”,单击“保存”按钮就可以了。使用 Visio 不仅可以制作流程图,还可以画交通图、建筑图等多种类型的图形,同学们可以开动脑筋,找到它的用武之地,提高软件的应用能力。用 Visio 做工作流程图visio 图片也可以全选然后选择组合。对于 visio

10、 有专门的批注和标注模板。在实际工作中,我们常常需要向别人介绍清楚某项工作的操作流程。若是稍微复杂一些的工作流程,仅用文字是很难清楚表达的 !这时就应充分利用可视化技术,将那些复杂的工作流程用图形化的方式表达出来,这样不仅使你表达容易,而且让别人也更容易理解。代码调试Windows 用户态程序高效排错Socket 编程 WinSock 网络编程经络C+ 多线程 windows 核心编程-IV-武汉工程大学计算机科学与工程学院综合设计报告目 录.VIAbstractVII..22.1 socket.22.2 . .3. ..8. . .

11、16 . .18 . .19 . . .20 . .21- V -武汉工程大学计算机科学与工程学院综合设计报告摘要文件传输 是通过一条网络连接从远地站点向本地主机复制文件。当前 internet上有着各种文件传输 工具,例如QQ等,但大多数是需要远地服务器控制的。因此对于一些文件的传输工作存在着风险和资源的浪费。基于socket 的文件传输系统是用C#语言在vs2015 的环境下开发完成的一种适用于内网和外网(需要有外网 IP )的文件传输系统。它具有文件传输的功能,可满足局域网,外网的日常工作和学习。客户端以及服务端双方在 TCP协议的基础上建立 socket 连接之后,服务端可以从客户端接

12、收文件,在用户通讯前彼此的客户端还应该进行连接, 它们之间的具体通讯过程是不需要通过服务器的点对点通讯。FTP 是 File Transfer Protocol (文件传输 协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序( Application )。用户可以通过它把自己的 PC机与世界各地所有运行 FTP协议的服务器相连,访问服务器上的大量程序和信息。 FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着 FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文

13、件送到远程计算机去。文件传输是依靠 文件传输 协议( FTP)实现的,它的基本思想是客户机利用类似于远程登录的方法登录到 FTP服务器,然后利用该机文件系统的命令进行操作。事实上,因特网中很多资源都是放在 FTP服务器中的,如一些试用版软件、完全免费试用的自由软件等,我们都可以采用 FTP的方式大批量的获取。因此, FTP服务与万维网服务在因特网应用领域中都占据了重要的地位。关键词: C#;点对点; socket 连接;文件传输-VI-武汉工程大学计算机科学与工程学院综合设计报告AbstractFile transferis from remote sites via a network co

14、nnection to the localhost to copy files. The Internet has afile transfertools, such as QQ, etc.,but most requireremote server control.So thereisa riskforsome filetransferwork and thewaste of resources.Filetransfersystem based on socketisto usec # language under the environment of vs2015 developed a

15、kind of applicable tothe internal network and external network (IP) need to have the network filetransfer system. It has the function of the file transfer can meet the localarea network(LAN), outernet dailywork and study. Both the clientand theserverbased on theTCPsocket connection,theserver can rec

16、eivefilesfrom the client,the user communication before the client should also connect each other, theydo not need through the server is the specific communication process betweenpoint to pointcommunication.File TransferProtocol) is the FTP File Transfer Protocol (Englishabbreviation, the Chinese ref

17、erred to as "on the agreement. Used for two-waytransmission control file on the Internet. At the same time, it is also anApplication(Application).Users can use ittoyour PC and allaround theworldrun FTP protocolto connect to theserver toaccess a wide range ofapplicationsand information on the se

18、rver. , the main function of the FTP is to make usersconnected on a remote computer (the computer running FTP server program) toexamine what remote computer file,and thenthefilefroma remote computer kaoto the local computer, or to the local computer file to the remote computer.Filetransferis depend

19、on thefiletransferprotocol(FTP),itisthebasicidea of the client by using the method ofsimilar remote login login to the FTPserver, and then use the machine of the file system command. In fact, a lot ofresourcesintheInternetare on the FTP server,as some trialversionsoftware,completely free trial of fr

20、ee software, we can adopt the way of the FTP accessin bulk. Therefore, FTP service and web services in the field of Internetapplication occupies an important position.Keywords: C# ;Point to point; Socket connection;File transfer-VII-武汉工程大学计算机科学与工程学院综合设计报告第一章课题背景(或绪论、概述)1.1选题背景现代科技给我们带了翻天覆地的变化,互联网就是这

21、诸多变化之一,而且它无时不刻包围着你。 可以这样说, 21 世纪是互联网的世纪。 互联网是人类科技发展史中成长最快的新鲜事物,从诞生到高度发展仅仅用了二十几年,而未来的发展前景更是一片光明。每个人可能已经感觉到了它的发展,从大大小小的网络公司到各种各样的网上商店、书店、网吧、网上银行等,就连电影院也都搬到了网上, 你可以足不出户的欣赏美国大片。早在 20 世纪 90 年代初, internet 和 world wide web(简称 WWW )已经被大家熟知。最近几年 internet 的发展更是神速,它已经深深触及到我们的生活和工作的方方面面。随着许多新兴技术在 internet 中的推广应

22、用,使用它的自身发展更日趋完善,它为用户也带来了越来多的实惠和便利。毫不夸张地说,无论你在世界上的哪个角落,只要通过互联网,你就可以同亲人朋友、甚至是陌生人相互交流,而且形式多样。互发邮件、交换文件、彼此聊天这已经很平常了,而现在随着网络、通信技术的相结合,已经出现了可视电话、网络家电、电子商务等。网络用户可以通过大大小小的各类网站或主页。他们已经越来越离不开网络,而且已经把企业网络建设纳入了未来企业发展最重要的环节。是互联网最大的凝聚力所在,它是一个巴罗万象的信息服务系统。1.2 选题意义随着网络通信技术的发展与用户需求日益多样化,现代局域网络正处在变革与发展之中,本课题的主要目的之一是为了

23、更清晰地培养学生掌握科学研究方法的能力和使学生迅速体会文件传输系统的研发过程。基于局域网的文件传输系统能够让家庭网络以及各个企业等局域网对内部资料有一个快捷,准确 ,安全的共享。特别是对如今较大系统研发的模块分工合作得到了绝对保密性,从而使各项工作有计划、更科学的进行及顺利完成,使企业的办事效率得到显著提高。文件传输系统主要功能是自动获取局域网内用户的主机名, IP 地址以及工作组名字,最终以C/S 模式通过 TCP/IP 协议实现点到点文件传输功能。本系统既锻炼了我们的实际动手能力,使我们将大学四年所学的理论知识与实际开发相结合,又引导我们进行了一次模拟实际产品的开发,对于我们以后工作能力的

24、培养具有重要的意义。- 1 -武汉工程大学计算机科学与工程学院综合设计报告第二章设计简介及设计方案论述2.1 socket的运行机制图一般而言, socket 大部分应用于服务器与客户端的连接与通信,本系统虽然有服务器,但并不实际参与用户间的交流和文件传输,只起到辅助作用,所以在文件传输时客户端与客户端之间其实是互为服务器的, 下图是从服务器与客户端之间的关系来描述socket通信机制。图 2.1socket运行机制图- 2 -武汉工程大学计算机科学与工程学院综合设计报告2.2 发送端以及客户端流程图图 2.2 发送端和客户端流程图- 3 -武汉工程大学计算机科学与工程学院综合设计报告第三章详

25、细设计3.1 主要流程实现枚举磁盘,枚举目录 , 获取文件信息上传文件,下载文件,执行文件,创建目录,删除目录等传输控制结构要实现客户端与服务端的通信, 设计一个合理的传输控制结构, 会使后面的工作轻松很多 , 为了使代码易读首先对要使用的命令进行预定义其各个命令定义如下#define GetDriver 0x01 /磁盘信息#define GetDirInfo 0x02 /目录信息#define ExecFile 0x03 /执行文件#define GetFile 0x04 /下载文件#define PutFile 0x05 /上传文件#define DelFile 0x06 /删除文件#d

26、efine DelDir 0x07 /删除目录#define CreateDir 0x08 /创建目录#define FileInfo 0x09 /文件信息#define GetScreen 0x10 /查看屏幕在程序的网络通信中主要有操作命令 , 命令对像 , 和具体数据三部分 , 对于命令的传输定义如下结构typedef structint ID; /操作命令BYTE lparamBUF_LEN*2; /命令对像COMMAND;因为在程序中打交道最多的就是文件, 对文件的详细属性定义如下结构typedef structchar FileNameMAX_PATH; /文件名称int File

27、Len; /文件长度char Time50; /时间信息BOOL IsDir; /为目录否BOOL Error; /错误信息HICON hIcon; /图标句柄FILEINFO;- 4 -武汉工程大学计算机科学与工程学院综合设计报告服务端结构服务端还是比较简单的其整体思路如下1. 服务端循环接受连接 , 并把连接交给线程处理2. 线程接受 " 命令数据 ", 并跟据命令 ID 将命令对像和 SOCKET句柄传给处理函数3. 函数执行指定功能 , 并返回执行结果对整体结构的描述 , 我们用伪代码表述如下main() /* 初示化设置 .*/ while(true)if(cli

28、ent=accept(server,(sockaddr *)&clientaddr,&len)/循环接受连接CreateThread(NULL,NULL,SLisen,(LPVOID)client,NULL,NULL);/传递线程处理/* 清理释放资源 .*/WSACleanup();, 如果有新的连接就传递给新的线程处理, 线程代码如服务端程序运行后循环接受连接下DWORD WINAPI SLisen(LPVOID lparam)SOCKET client=(SOCKET)lparam;COMMAND command;while(1)if(recv(client,(char*

29、)&command,sizeof(command),0)=SOCKET_ERROR)/接受命令数据cout<<"The Clinet Socket is Closedn"break;elseswitch(command.ID)/判断命令 IDcase GetDriver:/ 将命令对像和 SOCKET句柄传递给处理函数 GetDriverProc (command,client);break;case DelFile:DelFileProc (command,client);break;/* 其它命令 .*/- 5 -武汉工程大学计算机科学与工程学院综合

30、设计报告线程式的功能是接受客户端的" 命令数据 ", 并跟跟据命令ID 将命令对像传递给处理函数 , 由函数完成指定的功能以删除文件命令为例其函数格式如下DWORD DelFileProc (COMMAND command,SOCKET client)if(DeleteFile(char*)command.lparam)=0)/command.lparam为命令对像 , 这里为要删除的文件路径send(client,"删除失败 .");elsesend(client,"删除成功 .");很容易看出 , 处理函数接受 " 命令

31、对像 " 和客户端SOCKET句柄 , 执行后会把结果传递回去 .客户端结构客户端结构的实现思路如下1. 跟服务端建立连接2. 发送用户命令3. 启动一个线程 , 用于接受服务端的返回信息对整体结构的描述 , 我们用伪代码表述如下 void CMyDlg:OnConnect()if(connect(server,(SOCKADDR*)&serveraddr,sizeof(serveraddr)<0)/连接 .return ;CreateThread(NULL,NULL,CLisen,this,NULL,NULL);/创建线程用于接受SERVER返回信息对于用户发送的命令

32、我们仍以删除文件为例说明其代码如下void CMyDlg:OnMenuDelFile()HTREEITEM CurrentNode =m_tree.GetSelectedItem(); /取得选择的节点CString FullPath =GetFullPath(CurrentNode); /取得节点全目录- 6 -武汉工程大学计算机科学与工程学院综合设计报告COMMAND command;command.ID=DelFile; /设置命令为删除文件/删除文件command.lparam=FullPath.LockBuffer(); /将路径加入命令对像send(server,command);

33、用于接受 SERVER返回信息的线程,和服务端接受命令线程相似,这里就不再说明了,有兴趣可以看下源代码到这里程序的流程框架就介绍完了,下面我们再看一下程序的界面设置.界面实现程序的主界面如上图所示,主程序是一个对话框,主要包括一个树控件m_tree 和列表控件 m_list分别用于显示磁盘目录和文件,在对话框初示化时用以下代码设置树控件的属性DWORD dwStyle = GetWindowLong(m_tree.m_hWnd,GWL_STYLE); dwStyle |=TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT; SetWindowLong

34、(m_tree.m_hWnd,GWL_STYLE,dwStyle);对于列表框控件则没有太多要求,要留意的是,如果显示图标应该把 Styles 显示属性设置为 ICONVC的做出的界面, 常常让人有种摔键盘的冲动。 其实稍微留意一下其设置, 也可以让它漂亮一些比如上图所示的界面就是经过简单设置得到的,而没有用其它类库,有点兴趣?其设置方法为:1. 在对话框属性中设置 Styles 的 Border 属性为 Thin2. 选重 More Styles " 可见 " 属性3. 选重 Extended Styles的" 静态边 " 属性- 7 -武汉工程大学计

35、算机科学与工程学院综合设计报告3.2 具体流程各个功能的实现1.获取磁盘信息2.获取目录信息3.获取文件信息4.运行指定文件5.删除指定文件6.删除指定目录7.创建指定目录8.上传下载文件9.获取远程文件图标获取磁盘信息磁盘信息可以用 API GetDriveType 来实现 ,它以路径名作为参数 (如 C:)返回磁盘类型 ,其实例代码如下DWORD GetDriverProc(COMMAND command,SOCKET client)for(char i='A'i<='Z'i+)char x20=i,':'UINT Type=GetDr

36、iveType(x);if(Type=DRIVE_FIXED|Type=DRIVE_REMOV ABLE|Type=DRIVE_CDROM)/* 返回处理结果 .*/return 0;GetDriveType 可能返回的结果如下#define DRIVE_UNKNOWN0 / 无效路径名#define DRIVE_NO_ROOT_DIR1 / 无效路经,如无法找到的卷标#define DRIVE_REMOV ABLE 2 /可移动驱动器#define DRIVE_FIXED3 / 固定的驱动器#define DRIVE_REMOTE4 / 网络驱动器#define DRIVE_CDROM5 /

37、 CD-ROM#define DRIVE_RAMDISK 6 / 随机存取 (RAM) 磁盘在上面的实例代码中我们只取 ,硬盘 ,光驱和移动磁盘- 8 -武汉工程大学计算机科学与工程学院综合设计报告获取目录信息这里只要枚举用户指定的目录就可以了,其实例代码如下 :DWORD GetDirInfoProc(COMMAND command,SOCKET client)/*command为要枚举的路径如 (C:)client为返回结果的 SOCKET句柄 */FILEINFO fi;memset(char*)&fi,0,sizeof(fi);strcat(char*)command.lpar

38、am,"*.*");/枚举所有文件CFileFind file;BOOL bContinue = file.FindFile(char*)command.lparam); while(bContinue)memset(char*)&fi,0,sizeof(fi);bContinue = file.FindNextFile();if(file.IsDirectory() /为目录fi.IsDir=true;strcpy(fi.FileName,file.GetFileName().LockBuffer(); / 保存文件名称 if(send(client,(char*

39、)&fi,sizeof(cmd),0)=SOCKET_ERROR)cout << "Send Dir is Errorn"return 0;获取文件信息以下实例代码用来获取 文件的名称 ,路径 ,时间 ,属性等信息 DWORD FileInfoProc (COMMAND command,SOCKET client)/*command为要查看的文件如 (C:TEST.EXE)client为返回结果的 SOCKET句柄 */FILEINFO fi;HANDLE hFile;WIN32_FIND_DATA WFD;memset(char*)&WFD,0

40、,sizeof(WFD);if(hFile=FindFirstFile(char*)command.lparam,&WFD)=INVALID_HANDLE_VALUE)/ 查看文件属性fi.Error=true;return 0;/ 得到文件的相关信息- 9 -武汉工程大学计算机科学与工程学院综合设计报告SHGetFileInfo(WFD.cFileName,FILE_ATTRIBUTE_NORMAL,&shfi, sizeof(shfi),SHGFI_ICON|SHGFI_USEFILEATTRIBUTES|SHGFI_TYPENAME );strcpy(fi.FileNam

41、e,(char*)command.lparam); / 文件路径 FileLen=(WFD.nFileSizeHigh*MAXDWORD+WFD.nFileSizeLow)/1024; / 文件长度 fi.FileLen=FileLen;/ 转化格林时间到本地时间FileTimeToLocalFileTime(&WFD.ftLastWriteTime,&localtime); FileTimeToSystemTime(&localtime,&systime);/ 文件修改时间sprintf(stime,"%4d-%02d-%02d %02d:%02d:

42、%02d",systime.wYear,systime.wMonth,systime.wDay,systime.wHour,systime.wMinute,systime.wSecond);if(GetFileAttributes(char*)command.lparam)&FILE_ATTRIBUTE_HIDDEN)/* 隐藏文件 .*/elseif(GetFileAttributes(char*)command.lparam)&FILE_ATTRIBUTE_READONLY)/* 只读文件 .*/send(client,(char*)&fi,sizeof(

43、fi),0);FindClose(hFile);return 0;运行指定文件运行文件有以下几种方法1.WinExec 2.ShellExecute 3.CreateProcess这里使用的是 ShellExecute其实例代码如下DWORD ExecFileProc (COMMAND command,SOCKET client)/*command为要运行的文件路径如(C:TEST.EXE)client为返回结果的 SOCKET句柄 */COMMANDcmd;memset(char*)&cmd,0,sizeof(cmd);cmd.ID=ExecFile;if(ShellExecute(

44、NULL,"open",(char*)command.lparam,NULL,NULL,SW_HIDE)<(HINST ANCE)32)strcpy(char*)cmd.lparam,"文件执行失败 !");send(client,(char*)&cmd,sizeof(cmd),0);-10-武汉工程大学计算机科学与工程学院综合设计报告elsestrcpy(char*)cmd.lparam,"文件执行成功 !");send(client,(char*)&cmd,sizeof(cmd),0);return 0;AP

45、I 函数 ShellExecute原形为:HINSTANCE ShellExecute(HWND hwnd,/窗口句柄LPCTSTR lpOperation, /操作类型LPCTSTR lpFile,/文件指针LPCTSTR lpParameters,/文件参数LPCTSTR lpDirectory, /缺省目录INT nShowCmd/显示方式);这是一个相当有意思的函数 ,在调用此函数时只须指定要执行的文件名 ,而不必管用什么程序去打开或执行文件,WINDOWS 会自动根据要打开或执行的文件去判断该如何执行文件或用什么程序去打开文件 ,如果要求不高的话比 CreateProcess要好用的多 ,如果想做出像 NCPH 和灰鸽子那样带参数执行的话 ,其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论