📄 9924.txt
字号:
================================================================
《编 程 技 术》
一份属于广大编程爱好者的电子杂志
这是一份完全关于探讨编程的免费电子杂志
您可以任意传播本刊,但必须保持它的完整
本刊承诺绝不向订户发送任何形式的垃圾邮件!
================================================================
第24期 99/09/05 本期发送数: 3890
================================================================
◆本期栏目◆
*网友作品*
Update Robot
Windows Cracker
*技术文档*
尝鲜DELPHI 5
在Delphi中使用自定义光标
将JPEG格式文件转化为Windows墙纸
在Foxpro中恢复已删除数据
用Foxpro 实现爆炸式窗口
用VC++5.0定制和调用动态链接库
PB中一个类Word打印对话框的实现
在VB应用程序中巧用DLL
*有问必答*
================================================================
◆网友作品◆
001.名称:Update Robot
版本:2.02
作者:王海丰
Email: wanghaifeng_1@163.net
主页: http://whf.soim.net
运行平台: Windows95&98
性质:共享软件
下载地址: http://home.online.tj.cn/~whf/whf/updaterob.zip (295KB)
功能简介:
UpDate Robot是一个全自动更新网站的工具,如果你经常通过FTP服务器更
新你的主页,你可能需要这个智能文件传输工具,它只上载你新创建的或
者经过更新文件和目录,并且能够删除无用的文件,的确,它足够聪明。
002.名称:Windows Cracker
Email: wanghaifeng_1@163.net
作者:王海丰
主页: http://whf.soim.net
运行平台: Windows95&98
性质:共享软件
下载地址: http://home.online.tj.cn/~whf/whf/wincrack.zip (417KB)
功能简介:
Windows Cracker是个轻松地修改Windows 95/98中绝大部分的系统隐藏选
项的软件,Windows Cracker类似WinHacker,WinChanger,从能修改的项目来
说,Windows Cracker全面超越WinHacker,WinChanger.Windows Cracker足
以满足您对Windows的大改特改.功能多多,一用便知.特点:
1.可能是目前同类软件中能修改项目最多的,目前能修改173项.
2.全中文界面,你能清楚知道要设置什么,最适合中国用户使用.
3.内部整合拨号上网优化,"***"密码查看两个非常实用的功能.
您自己开发过软件吗? 您有自己满意的作品吗? 您希望发布推广您的作品
吗? 本刊竭诚为您提供宣传空间。有意的朋友请把您的作品介绍以及下载
地址、您的网址、联系方法等相关信息发给我(具体格式请参照上面)。
本刊免费为您宣传三期。如有疑问可以与我联系。
我的信箱: yaozheng@kali.com.cn
****************************************************************
****************************************************************
◆技术文档◆
尝鲜DELPHI 5
(河南 阿迎 编译)
INPRISE正式发布DELPHI 5,它是屡获大奖的DELPHI软件的最新版本。DELPHI
主要用于Windows下的快速应用程序开发,针对个人用户和企业的开发者。除了在
数据库方面的优势,还将扩展到因特网应用开发上。它集成了窗口、客户端浏览
器、Web服务器、中间件和后端数据库系统。在因特网应用开发上增加了对HTML 4
和XML的支持,HTML 4和XML已成为建立因特网上数据分布与交换应用的行业标准。
因特网开发功能
DELPHI 5在因特网开发功能上有了不少的提升,这些功能可以帮助用户尽快
建立起新的因特网系统或是扩展现有的系统。Internet Express,通过简化的数
据分布以及优化数据交换加快因特网和XML开发。快速地将动态数据传送到浏览器
客户端,使开发者建立高速、灵活和可扩展的Web服务器应用。支持HTML 4,创建
全功能动态瘦客户机应用。通过MIDAS 3控制应用需求,MIDAS 3可以高效地控制
终端用户进程和数量的增长,开发者在建立因特网应用时能够利用它控制在因特
网或企业内部网上数量巨大的浏览用户或Windows用户,可以将许多分布计算应用,
比如HTTP、 CORBA、COM和MTS集成到系统上实现电子商务应用。
数据库开发功能
数据库开发是DELPHI的强项之一,它可以将大多数数据库作为数据源直接用
于其数据库开发应用中。在新版本的数据库开发领域使用了新的开发技术标准,
ADOExpress,可以快速访问各种类型的信息。结合DELPHI的开放数据组件体系结
构,程序员可以快速地为他们的用户在因特网上建立系统对商业数据进行操作。
InterBase Express,可以建立更快速,低维护和相关性更小的数据库。
协作性
大型软件必须依靠许多人的合作开发才有可能实现,针对大型企业中的团体
开发,DELPHI 5也作了加强。TeamSource是一个新工具,允许开发组管理更改源
代码。TeamSource建立在现有代码管理和版本引擎(比如PVCS)上,同时将他们
扩展成为高效的工作流模式,从而简化源代码的管理。Translation Suite能够
通过使用新的语言快速实现产品的国际化或本地化。
另外,DELPHI 5还在其他功能上做了改进,以减少开发周期时间。其IDE(集
成开发环境)增强,包括一个带有树状和数据图表的数据模块设计器,可以更容
易理解应用程序中的数据;项目浏览器方便地浏览整个项目的源代码;具有开发
计划列表;新的控制面板和应用向导控制台;高级的调试工具,包括用于分布式
开发(COM和CORBA)远程调试、多处理和交叉处理调试。
同以往的DELPHI系列一样,DELPHI 5仍然分为企业版、专业版和标准版。
企业版是开发因特网和分布计算的高效开发解决方案。InternetExpress包括
Web客户页向导,用于创建灵活的可扩展系统,以支持使用HTML 4和XML的电子商
务应用。MIDAS PageProducer和WebBroker可以构建HTML应用。ADOExpress满足各
种类型数据的访问。有超过200个可视化组件。使用InterBase Express可以创建
一系列数据库系统。
专业版主要用于Windows开发,创建Web和数据库应用。包括IDE、WebBroker、
本地因特网组件、InterBase Express和完善的调试工具。可以创建和重用COM对
象和服务器,包括一个针对MS Office自动控制器的完全套件。150个可重用组件。
高级的项目管理器和最快的32位编译器。
标准版主要用于Windows应用开发,通过拖拽很轻松地实现编程。85个可重用
组件。快速和简便的创建、调试和开发Windows应用,包括针对诸如MS Office的
Word、Excel、PowerPoint和Outlook的自动组件。完全支持Win95、NT标准,
Win32 API、COM、ActiveX和OLE。
****************************************************************
在Delphi中使用自定义光标
使用过VB的读者都知道,在VB中可以选择自己建立的光标文件做为控件的光标,
在Delphi中是否可以使用自己建立的光标呢?当然可以,只是过程要复杂一些。下
面我一步一步地来给大家做介绍。
首先利用光标编辑软件建立好光标文件并保存,在这里假设保存到ac.cur中。
然后利用文本编辑器建立一个资源文件,文件的内容如下:
/******************/
aa.rc
Samples Resource file by CR
******************/
NewCursor CURSOR “ac.cur"
#define NewCursor 1
将文件保存到aa.rc文件中,记住aa.rc和ac.cur要保存到同一个目录。在Delphi
的Bin目录下有一个brcc32.exe文件,调用brcc32将aa.rc编译成为aa.res文件。(如
果你有Borland C++系列软件的话,利用其中的Resource WorkShop可以实现从生成
图标到编译成RES文件的全过程,但是要注意的是,只有在Borland C++4.5及以后
的版本的Resource WorkShop才是32位的,而以前的都是16位的,在16位Resource
WorkShop下生成的res文件是无法在32位Delphi下使用的。)
打开Delphi,Delphi会自动生成一个Project1的工程,打开Project1.dpr,你可
以看到其中有一行程序: {$R *.RES} 。这个就是Project1缺省的资源文件,在这
行下面再加一行:{$R aa.RES},这样就将你自己的资源文件加入到工程中了。
在Unit1中加入如下的常量定义:
const
crMyCursor = 5;
在Form1的OnCreate事件中加入如下代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
Screen.Cursors[crMyCursor] := LoadCursor(HInstance,`NewCursor');
ShowMessage(IntToStr(Screen.Cursors[crMyCursor]));
Cursor := crMyCursor;
end;
做完上面的步骤以后,按F9运行程序,这时你就会看到窗口的图标变成了你自己
建立的图标。同样,要使其它的控件使用自定义图标也很简单,只要将Form1的OnCreate
事件中的语句“Cursor := crMyCursor; ”改为“Control.Cursor := crMyCursor;”
就可以了。其中Control为控件的名称。
上面的程序在Delphi14,win98下运行通过。
****************************************************************
将JPEG格式文件转化为Windows墙纸
(长沙 汤文)
JPEG是一种图像压缩标准,很多精美的图片都是采用这种格式标准,其特点是
文件体积较小,而且支持24位色深。但是,Windows9x只支持位图文件(即以bmp为扩
展名的文件)的墙纸。下面这个程序就是将以jpg或jpeg为扩展名的图片文件转化为
位图文件,并通过修改注册表的键值来通知Windows更换墙纸。本程序使用了一个
Tform;一个OpenPictureDialog用来让用户选择图片;三个SpeedButton;分别用
来打开OpenPictureDialog对话框,确定更换墙纸,退出程序。程序全部代码如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, registry, ExtDlgs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
OpenPictureDialog1: TOpenPictureDialog;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
openpicturedialog1.execute;{打开OpenPictureDialog对话框}
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
reg: tregistry;{Tregistry对象在Registry单元中声明,需要在Uese 中引用Registry单元}
jpeg: tjpegimage;{Tjpegimage对象在Jpeg单元中声明,需要在Uese 中引用Jpeg单元}
bmp: tbitmap;
begin
if (openpicturedialog1.filename=`')
then {判断OpenPictureDialog1中有无文件被选中}
messagedlg('请选择一张图片',mtinformation,[mbOK],0)
else
begin
jpeg:=tjpegimage.Create;
jpeg.LoadFromFile(openpicturedialog1.filename);{加载被用户选中的文件}
bmp:=tbitmap.Create;
bmp.assign(jpeg);
bmp.savetofile(`c:\windows\wall.bmp');{将转换成功的文件保存的路径及文件名}
reg:=tregistry.Create;
reg.rootkey:=hkey_current_user;{设置根键名称}
reg.openkey(`control panel\desktop',false);{打开Control Panel\Desktop路径对应的主
键}
reg.writestring(`tilewallpaper',`0');
reg.writestring(`wallpaper',`c:\windows\wall.bmp');
{覆盖并写入新值TileWall- paper和Wallpaper串}
systemparametersinfo(spi_setdeskwallpaper,0,nil,spif_sendchange);{通知win-dows更
换墙纸}
reg.closekey;{写入更改内容并关闭注册表}
reg.Free;{释放对象}
close;
end;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
close;
end;
end.
此程序只能将以jpg或jpeg为扩展名的图片文件转化为Windows的墙纸,因此应
在OpenPictureDialog控件的Filter属性中筛选显示文件的类型,最好设置为
JPEG Image File(*.jpg)和JPEG Image File(*.jpeg)文件。程序在中文
Windows98,Delphi 4.0下编译通过。
****************************************************************
如何在Windows操作系统中改变文件打开方式
(合肥 张建军 滕明贵 韩莹)
在Windows 95/NT/98操作系统中改变文件打开方式的问题,又可称为改变文
件类型关联的问题,即把某类型(扩展名)的文件与某应用程序关联,例如通常当
双击*.txt文件时系统自动调用Notepad.exe。本文介绍利用Windows注册表编辑器
Regedit.exe手工或编程改变文件打开方式的方法,并提供程序实例。
一、基本思路:
1、注册表编辑器Regedit.exe是用于更改系统注册表设置的高级工具,包含了
关于系统配置及运行的重要信息,默认访问路径为C:\Windows\Regedit.exe。双击
Regedit.exe图标,运行注册表编辑器。在左侧显示栏内看到HKEY_CLASSES_ROOT、
KEY_CURRENT_USER、HKEY_LOCAL_MACHINE等主键。与文件类型有关的所有主键、键
名、键值都存放在HKEY_CLASSES_ROOT下。
◆双击HKEY_CLASSES_ROOT,向下拖动滚动条,找到.txt主键,右侧显示栏内
“txtfile”说明:在HKEY_CLASSES_ROOT下有一txtfile主键,其下存放了打开
*.txt文件应用程序的有关信息。
◆向下拖动滚动条,找到txtfile主键,右侧显示栏内“文本文档”为文件类
型描述。双击txtfile,DefaultIcon右侧显示栏内“shell32.dll,-152”为*.txt
文件的图标;shell\open\command,右侧显示栏内“C:\WINDOWS\NOTEPAD.EXE %1”
为打开*.txt文件的应用程序名称及参数。
改变打开文件方式的方法(例如用VISIO打开*.exc文件):
◆手工:打开系统注册表,在HKEY_CLASSES_ROOT下找到.exc及另一主键名,
找到此主键,将shell\open\command右侧显示栏内“C:\WINDOWS\NOTEPAD.EXE %1”
改为“C:\VISIO.EXE %1”(假设VISIO.EXE的访问路径是C:\,具体视情况而定),
按F5刷新系统注册表。
◆编程:利用VB、Delphi、C++Builder等读写系统注册表,可自动改变文件
打开方式。本文提供VB、Delphi编程实例。
二、编程实例:
㈠利用VB编程
1、在VB5.0 IDE中,新建工程Project1,在Form1上添加命令按钮Command1。
2、选择菜单“工程”—“添加模块”—“模块”—“打开”,在Project1中
添加模块Moudle1。
3、在Moudle1“通用—声明”部分声明API函数和常量。
Const REG_SZ = 1
Global Const HKEY_CLASSES_ROOT = &H80000000
Declare Function OSRegQueryValueEx Lib “advapi32”Alias
“RegQueryValueExA”(ByVal hKey As Long, ByVal lpszValueName As String,
ByVal dwReserved As Long, lpdwType As Long, lpbData As Any,
cbData As Long) As Long
Declare Function OSRegOpenKey Lib “advapi32”Alias
“RegOpenKeyA”(ByVal hKey As Long, ByVal lpszSubKey As String,
phkResult As Long) As Long
Declare Function OSRegSetValueEx Lib“advapi32”Alias
“RegSetValueExA”(ByVal hKey As Long, ByVal lpszValueName As String,
ByVal dwReserved As Long, ByVal fdwType As Long, lpbData As Any,
ByVal cbData As Long) As Long
Declare Function OSRegCloseKey Lib“advapi32”Alias
“RegCloseKey”(ByVal hKey As Long) As Long
4、在Moudle 1中编写函数。
Function RegOpenKey(ByVal hKey As Long, ByVal lpszSubKey As String,
phkResult As Long) As Boolean
Dim lResult As Long
On Error GoTo 0 ' 关闭错误陷阱
lResult = OSRegOpenKey(hKey, lpszSubKey, phkResult)
If lResult = 0 Then
RegOpenKey = True
Else
RegOpenKey = False
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -