仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 440|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页编程之磁盘格局化的编程完成

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:58:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。编程盘格局化是盘算机用户常常利用的操纵之一,但因为操纵体系的把持台和外壳(Shell)供应了对格局化的完善撑持,使编程职员很简单无视用户对格局化的基础需求。在他们看来,磁盘格局化对用户来讲并非一个太年夜的成绩,使用程序不用要对它供应撑持。实在,这是一个错觉,当用户在运转使用程序碰到必要格局化磁盘时,再切换到把持台大概资本办理器往格局化磁盘长短常方便和啰嗦的。
另有一部分编程职员以为磁盘格局化很简单完成,没有手艺停滞,因而没有付与充足器重。实在,在实践编程时笔者发明磁盘格局化是一个不年夜不小的成绩。一方面,它请求编程只管复杂,不要触及中止、端口读写、物理扇区存取、VXD、WDM驱动程序等庞大细节,只需能完成格局化便可,代码越复杂越好,最好是只挪用一个函数便可完成。另外一方面,笔者却发明,基础上一切的编程参考书本都对这个成绩只字不提,在MSDN中也很难找到一个具有如许功效的FormatDisk函数。固然,我们能够使用WinExec、CreateProcess和ShellExecute等函数往实行Format命令,而且这计划完整可行,不外随之发生的把持台窗口会使我们的窗口程序显得不三不四,损坏原本的程序界面。固然我们还能够经由过程设置CreateProcess函数的参数完成对把持台窗口的埋没,使Format.exe潜伏地在背景运转,但这又必要我们保护它的完全路径,这也存在必定坚苦。
次要函数
从实践使用的角度看,从Windows9X到WindowsNT都应当供应这个FormatDisk函数,不然怎样完成资本办理器窗口的磁盘格局化呢?笔者经由过程细心查找发明,Windows的确供应了如许一个函数,只管文档材料没有说明,可是假如我们利用ViewDependencies翻开Shell2.dll,就会发明这个函数。它就是SHFormatDrive,编译毗连到Shell32.lib。只管经由过程平台的SDK文档和SHELLAPI.H文件其实不能发明这个函数,可是Win32各个操纵体系都能找到它的踪迹。使用程序能够经由过程挪用这个函数完成借用外壳的磁盘格局化对话框格局化磁盘。挪用商定以下:
DWORDWINAPISHFormatDrive(HWNDhwnd,UINTdrive,UINTfmtID,UINToptions);
参数寄义以下:
hwnd:具有对话框的窗口句柄,注重hwnd为NULL时,其实不会招致这个对话框天生一个下层的使用程序,也就是说,这个参数老是非NULL,这个对话框只能作为一个窗口的子窗口,而不克不及作为一个独自的使用程序;
drive:要格局化的驱动器号,以A:==0为基准,依此类推;
fmtID:必需设定为SHFMT_ID_DEFAULT,即0xFFFF;
options:能够有两个选择项:SHFMT_OPT_FULL0x0001和SHFMT_OPT_SYSONLY0x0002,假如这一项设置为零,体系就要利用疾速格局化作为默许设置。
该函数的前往值要末为一个以下以SHFMT_开首的值,要末是一个乐成格局化的磁盘标识。
//前次格局化堕落,磁盘大概被格局化
#defineSHFMT_ERROR0xFFFFFFFFL
//格局化被作废
#defineSHFMT_CANCEL0xFFFFFFFEL
//不克不及举行磁盘格局化
#defineSHFMT_NOFORMAT0xFFFFFFFDL
完成步骤
1.函数接口声明
typedefDWORD(WINAPI*PFNSHFORMATDRIVE)(HWNDhwnd,UINTdrive,UINTfmtID,UINToptions);
2.加载Shell32.dll库
HINSTANCEhInstance=LoadLibrary(_T
(“Shell32.dll”));
If(hInstance==NULL)return;
3.取得函数指针
PFNSHFORMATDRIVEpFnSHFormatDrive=(
PFNSHFORMATDRIVE)GetProcessAddress(_T
(“SHFormatDrive”));
if(pFnSHFormatDrive==NULL)
{
FreeLibrary(hInstance);
return;
}
4.挪用函数
(pFnSHFormatDrive)(hwnd,drive/*a:==0*/,fmtID/*SHFMT_ID_DEFAULT*/,options);
5.开释句柄资本
FreeLibrary(hInstance);
Return;
本程序在Windows2000情况下调试经由过程,利用Delphi、VisualBasic的用户经由过程挪用上述WindowsSDK函数也能够完成磁盘格局化。
</p>ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于WindowsNT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失;
深爱那片海 该用户已被删除
沙发
发表于 2015-1-20 06:50:04 | 只看该作者
运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写,使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-25 23:31:13 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
谁可相欹 该用户已被删除
地板
发表于 2015-2-4 11:36:27 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
分手快乐 该用户已被删除
5#
发表于 2015-2-9 22:23:52 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
简单生活 该用户已被删除
6#
发表于 2015-2-28 00:49:16 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
admin 该用户已被删除
7#
发表于 2015-3-9 17:13:43 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
小妖女 该用户已被删除
8#
发表于 2015-3-17 00:09:15 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
若天明 该用户已被删除
9#
发表于 2015-3-23 08:33:59 | 只看该作者
下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 10:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表