首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > Windows程序(1)
【标  题】:Windows程序(1)
【关键字】:Windows,程序,in,Win,Window,do,Wi,Windows
【来  源】:网络

Windows程序(1)

这一章我都不知道该如何写了,呵呵~~
毕竟,Win32是一个非常深奥的系统,目前还容不得我这种小辈在这儿说三道四,不过,我既然是要写给那些入门阶段的朋友们看的,又不是写给那些搞程序设计老鸟看的,所以,我也犯不着怕被人背后指着骂 本章的名字就叫《Windows程序》而不是《Windows程序设计》所以,我只是讲一些关于Windows程序运作的原理:
Windows为什么叫Windows,相信所有用过的朋友都可以明白,那桌面上一个一个的窗口,就是它名字的由来。也就是这一个又一个窗口的出现,使计算机的使用一下子简单了巨多。几年前接触过电脑的朋友一定知道DOS吧,不知道的话,去问加解密工具下载版的版主老哥,让他跟你解释 你还记的DOS下那黑乎乎的窗口吧,没见过的哥们儿可以在开始菜单中找出来看看。DOS通过一系列的命令来进行相应的操作,如进入一个目录,删除一个目录等等等等。那种工作方式就叫做命令提示符方式,也即命令行。
现在国内不懂电脑的人还老爱说要想学电脑,必须要英语过关。(就是这个,吓跑了多少仅仅是想学习一些基本操作的朋友)可能也就是源自DOS的原因吧。
后来,随着硬件的支持以及技术上的提高,当然还有为了使电脑更方便的服务与人,慢慢的就有了所谓的视图操作系统,从此,你不用再记忆那些大堆的指令了,而且操作上,也有了相大的提高,可以说操作系统发展到今天的份儿上,操作已经够简单了,去看看那些在网吧里一把鼻涕的小孩子们吧…
当然,就像当年DOS之于命令提示行一样,今天的Windows仍和当年一样,占据着大部分的用户群。
(场外:一观众扔来一烂柿饼,你是唐僧啊,这么多废话)
马上转入正题,Windows之所以好用,除了不用背N多的命令外,一个原因就是因为它本身提供了大量的标准Windows GUI函数。所以对于用户,面对的是同一套标准的窗口,对这些窗口的操作都是一样的,所以使用不同的应用程序时无须重新学习操作。不用像当年在DOS下面那样一安装新程序,就要马上看帮助,看说明。
而Windows GUI函数,只不过是微软提供给程序开发人员的API(Application Programming Interface 应用编程接口)中的一小部分而以。Windows API是一大组功能强大的函数,它们本身驻扎在 Windows 中供人们随时调用。这些函数的大部分被包含在几个动态链接库(DLL)中,譬如:kernel32.dll、 user32.dll 和 gdi32.dll。 Kernel32.dll中的函数主要处理内存管理和进程调度;user32.dll中的函数主要控制用户界面;gdi32.dll中的函数则负责图形方面的操作等等。
你可能多多少少听说过API函数,如果你不太清楚到底是怎么一回事的话,我尽量给你解释的清楚一点。
不知道你有没有想过,Windows中的那一个又一个窗口是怎么画出来的呢?呵呵,你可能用VB、Delphi编过程序,你有没有想过你写的程序中的那些窗口是怎么形成的?是控件变成的。倒...呵呵,相信你当初学VB或Delphi的时候,所看的书上一定对可视化编程环境大肆赞扬了一番吧,是不是也提到过比VC++怎么怎么方便?怎么怎么不用再为生成程序的界面而花费大量无用时间了等等。
(台下上来一东北民工:小子,你找抽啊,还讲不讲了)
马上开说,其实我只是想告诉你,所有你用的Windows下的程序,都是通过调用一个又一个的Windows API来执行相应任务的,没有API,你的程序什么也做不了。用VB、Delphi以及MFC的朋友也许会说我根本没有调用什么API啊!其实这些API都是由你所用的开发环境自动进行相应的转换的。比如说你用Delphi新建一程序,什么也不用动就直接按F9来运行它,是不是出现一个空白的窗体?这就是个标准的Windows程序,它有Windows程序所具有的一切特征,如最大化按钮、最小化按钮、关闭按钮…你可以通过鼠标来移动它。
但是如果你想用VC++或MASM32来写这样一个程序,那么你有两种方法,在VC++中,你可以用MFC或直接调用API,而在MASM32中,你就只有直接调用API这一种方法。所谓直接调用API,就是指所有的操作都通过最原始的API来完成。通过直接调用API来生成这样一个程序,你必须要先注册窗口类(除非您使用 Windows 预定义的窗口类,如 MessageBox 或 dialog box);然后产生窗口;然后在桌面显示窗口(除非您不想立即显示它); 然后刷新窗口客户区;
麻烦吧,如果你想真正的让这个程序能正常地运行下来,还要再加入以下步骤:
1.你要得到您应用程序的句柄。2.窗体显示后就进入无限的获取窗口消息的循环。3. 如果有消息到达,由负责该窗口的窗口回调函数处理。4. 如果用户关闭窗口,进行退出处理。
上面这此步骤,都需要调用相应的API来完成。比如说得到程序的句柄用GetModuleHandle注册窗口类用RegisterClass或RegisterClassEx;注册后,还要用CreateWindowEx函数来生成相应窗口,而后用ShowWindow来显示它,之后还会用UpdateWindow 来更新客户区等等等等。这些还都不算呢,如果你真通过直接调用API去写一个稍大一点儿的程序的话,你会发现那是一个多么不令人愉快的事情。
上面说的这些,只不过是API中的一小小小小小小小小小小….部分,这才几个,真正的API有成百上千个,包括对系统各个方面进行的操作。没有API,你的程序什么也干不了。比如说你的程序中有一个Edit控件,VB中应该叫做Text控件吧,你想将用户输入到里面的信息放到一个变量中去,那么Delphi中可以用Str:=Edit1.text来实现。VB中应该是Str=Text1.Text;但是如果你用API,想要得到Edit输入框里的文本内容,就要调用GetDlgItemInt(Edit中输入的值当做数值来用)GetDlgItemText、GetDlgItemTextA(Edit中输入的值当做字符串来用)。而上面我说的VB、Delphi得到编辑框中输入的内容的方法,最终在编译成可执行文件的时候,也会由编译器自动对其进行相应的转换。你只要明白一件事就好了,那就是你所用的程序,无时无刻都在调用着系统中的各种各样的API函数。
Windows程序(2):【上一篇】
Ida pro 里的中文字串:【下一篇】
【相关文章】
  • Windows程序(2)
  • BootStar v7.33 keygen in pure win32asm(1)
  • BootStar v7.33 keygen in pure win32asm(2)
  • ACCESS2000数据库文件密码的提取(源程序c++builder5)
  • 使SoftICE在程序入口处停下来的一个办法
  • 常见软件保护技术之功能限制的程序
  • C#教程第一课:简单的欢迎程序
  • Windows消息(2)
  • Windows消息(3)
  • Windows消息(1)
  • 【随机文章】
  • asp.net生成html静态页页面。
  • 亚马逊网上商店2006年读者最喜欢的计算机图书介绍
  • JSTL 入门: 表达式语言
  • 支持圈子建设,我也讨论一下系统整合
  • 误删文件系统恢复的过程
  • 动网7.1后台备份漏洞
  • 天堂2 献给所有要练巫师和正在练的人
  • Win2000 DNS服务器的设置
  • Java程序员面试三十二问
  • socket_create ——PHP SOCKET相关定义
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.