1、 Delphi默认com+对象的远程激活
Delph中远程com+对象激活一般通过TdispatchConnection及其子类来实现,实际代码中多用TDCOMConnection或TsocketConnectoion这两个组件,TDCOMConnection组件最终调用CoCreateInstanceEx创建com+对象。CoCreateInstanceEx (const clsid: TCLSID; unkOuter: IUnknown; dwClsCtx: Longint; ServerInfo:PCoServerInfo;dwCount: Longint; rgmqResults: PMultiQIArray): HResult。
TDCOMConnection在调用CoCreateInstanceEx时为pCoServerInfo参数中的pAuthInfo传递了Null值,因此TdcomConnection在创建Com对象时使用的是本地计算机登录者的用户令牌。假若A计算机上的登录用户Auser使用TDCOMConnection类连接远程计算机B上的com+对象,则B计算机会使用Auser的用户名/密码在B计算机上建立登录会话并最终创建com+对象。但是一台windows工作站上的本地用户只能在本地登录而无法在别的计算机上登录,因此A计算机上的Auser就无法在B工作站上建立登录会话,当然也就无法创建com+对象,此时远程工作站B会尝试用Guest帐户建立会话并使用该账户激活com+对象。在这种情况下,如果B工作站上的Guest账户没有启用或Guest没有激活com+对象的权限,你就会看见令人头晕的提示“拒绝访问”。看到这里你是不对现在网上最“流行”的dcom配置方法有所悟了呢。那个方法就是允许everyone访问、激活com对象、并且将“默认身份验证级别”设置成无。这种方法能够使你的com应用可以“用了”,但是,它可以上“任何人”访问。而且这种设置你将无法利用com+基于角色的安全访问控制功能。
2、怎样不用GUEST账户激活
这个问题的实际上应该是:怎样用远程工作站上的用户激活远程com对象。解决这个问题其实很简单:只要你在调用CoCreateInstanceEx时为它指定远程工作站上的用户名和密码,只要用户名/密码通过远程计算机的验证,并且该用户被授予了“远程激活”com+对象的权限,那么远程工作站会用该用户身份激活com+对象。看一下代码:
var
mts:IMTSXjpimsDB;
ov:Variant;
i:integer;
cai:_CoAuthInfo;
cid:_CoAuthIdentity;
csi:COSERVERINFO;
mqi:MULTI_QI;
iid_unk:TGUID;
idsp:IDispatch;
wUser,wDomain,wPsw:WideString;
begin
wUser:=edusertext;//用户名
wDomain:=edSvrText;//远程计算机名
wPsw:=edPswText;//密码
ciduser:=pUnshort(@wUser[1]);
cidUserLength:=length(wUser);
cidDomain:=pUnshort(@wDomain[1]);
cidDomainLength:=length(wDomain);
cidpassword:=pUnshort(@wPsw[1]);
cidPasswordLength:=length(wPsw);
cidFlags:=2;
//以上填充_CoAuthIdentity结构
caidwAuthnSvc:=10;//winNt默认的鉴证服务
caidwAuthzSvc:=0;
caipwszServerPrincName:=wDomain;
caidwAuthnLevel:=0;
caidwImpersonationLevel:=3;//必须设置成模拟
caipAuthIdentityData:=@cid;
caidwCapabilities:=$0800;
//以上填充_CoAuthInfo结构
FillChar(csi, sizeof(csi), 0);
csidwReserved1:=0;
csipwszName:=pwidechar(wdomain);
csipAuthInfo:=@cai;
//以上填充COSERVERINFO结构
iid_unk:=IUnknown;
mqiIID:=@iid_unk;mqiItf:=nil;mqihr:=0;
ScreenCursor:=crHourGlass; olecheck(CoCreateInstanceEx(CLASS_MTSXjpimsDB,nil,CLSCTX_REMOTE_SERVER,@csi,1,@mqi));
这段代码中除了最后实际调用CoCreateInstanceEx外,前面的代码都是设置参数。这些参数的含义请大家参考msdn,除了用户名、主机名、密码外,只有一个重要要部分要说明:caidwImpersonationLevel必须设置成允许模拟(值为3),否则远程计算机将无法按提供的用户/密码建议网络会话。
3、不修改现有代码,可以实现用远程用户身份激活吗?
当然可以,我扩展了TDcomConnection类,为其加入了用户名和密码,并修改其默认的DoConnect方法,使其在调用CoCreateInstanceEx时用指定的用户名和密码填充参数。代码如下:
unit SecDComConnection;
interface
uses
windows,SysUtils, Classes,ActiveX, DB, DBClient, MConnect,comobj,Midas;
type
{typedef struct _SEC_WINNT_AUTH_IDENTITY
unsigned short __RPC_FAR User;
unsigned long UserLength;
unsigned short __RPC_FAR Domain;
unsigned long DomainLength;
unsigned short __RPC_FAR Password;
unsigned long PasswordLength;
unsigned long Flags;
SEC_WINNT_AUTH_IDENTITY, PSEC_WINNT_AUTH_IDENTITY;
}
{typedef struct _COAUTHIDENTITY
USHORT User;
ULONG UserLength;
USHORT Domain;
ULONG DomainLength;
USHORT Password;
ULONG PasswordLength;
ULONG Flags;
COAUTHIDENTITY;}
{#define RPC_C_AUTHN_NONE 0
#define RPC_C_AUTHN_DCE_PRIVATE 1
#define RPC_C_AUTHN_DCE_PUBLIC 2
#define RPC_C_AUTHN_DEC_PUBLIC 4
#define RPC_C_AUTHN_GSS_NEGOTIATE 9
#define RPC_C_AUTHN_WINNT 10
#define RPC_C_AUTHN_GSS_SCHANNEL 14
#define RPC_C_AUTHN_GSS_KERBEROS 16
#define RPC_C_AUTHN_MSN 17
#define RPC_C_AUTHN_DPA 18
#define RPC_C_AUTHN_MQ 100
#define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL
}
{#define RPC_C_AUTHZ_NONE 0
#define RPC_C_AUTHZ_NAME 1
#define RPC_C_AUTHZ_DCE 2
#define RPC_C_AUTHZ_DEFAULT 0xFFFFFFFF }
{
#define RPC_C_AUTHN_LEVEL_DEFAULT 0
#define RPC_C_AUTHN_LEVEL_NONE 1
#define RPC_C_AUTHN_LEVEL_CONNECT 2
#define RPC_C_AUTHN_LEVEL_CALL 3
#define RPC_C_AUTHN_LEVEL_PKT 4
#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6 }
{SEC_WINNT_AUTH_IDENTITY_UNICODE=2 }
pUnShort=^Word;
pCoAuthIdentity=^_CoAuthIdentity;
_CoAuthIdentity=record
user:pUnShort;
UserLength:ULONG;
Domain:pUnShort;
DomainLength:Ulong;
password:pUnShort;
PasswordLength:ulong;
Flags:ulong;
end;
_CoAuthInfo=record
dwAuthnSvc:DWORD;
dwAuthzSvc:DWORD;
pwszServerPrincName:WideString;
dwAuthnLevel:Dword;
dwImpersonationLevel:dword;
pAuthIdentityData:pCoAuthIdentity;
dwCapabilities:DWORD;
end;
TSecDComConnection = class(TDCOMConnection)
private
FCai:_CoAuthInfo;
FCid:_CoAuthIdentity;
FSvInfo:COSERVERINFO;
FUser:WideString;
FPassWord:WideString;
procedure SetPassword(const Value: wideString);
procedure SetUser(const Value: wideString);
procedure SetSvInfo(const Value: COSERVERINFO);
protected
procedure DoConnect; override;
public
property SvInfo:COSERVERINFO read FSvInfo write SetSvInfo;
constructor Create(AOwner: TComponent); override;
procedure MySetBlanket(itf:IUnknown;const vCai:_CoAuthInfo);
function GetServer: IAppServer; override;
published
property User:wideString read FUser write SetUser;
Property Password:wideString read FPassword write SetPassword;
end;
procedure Register;
implementation
constructor TSecDCOMConnectionCreate(AOwner: TComponent);
begin
inherited Create(AOwner);
FillMemory(@Fcai,sizeof(Fcai),0);
FillMemory(@FCid,sizeof(FCid),0);
FillMemory(@FSvInfo,sizeof(FSvInfo),0);
with FCai do begin
dwAuthnSvc:=10;//RPC_C_AUTHN_WINNT
dwAuthzSvc:=0;// RPC_C_AUTHZ_NONE
dwAuthnLevel:=0;//RPC_C_AUTHN_LEVEL_DEFAULT
dwImpersonationLevel:=3;
pAuthIdentityData:=@fcid;
dwCapabilities:=$0800;
end;
end;
procedure TSecDCOMConnectionDoConnect;
var
tmpCmpName:widestring;
IID_IUnknown:TGUID;
iiu:IDispatch;
Mqi:MULTI_QI;
qr:HRESULT;
begin
if (ObjectBroker) <> nil then
begin
repeat
if ComputerName = '' then
ComputerName := ObjectBrokerGetComputerForGUID(GetServerCLSID);
try
SetAppServer(CreateRemoteComObject(ComputerName, GetServerCLSID) as IDispatch);
ObjectBrokerSetConnectStatus(ComputerName, True);
except
ObjectBrokerSetConnectStatus(ComputerName, False);
ComputerName := '';
end;
until Connected;
end
else if (ComputerName <> '') then
begin
with fcid do begin
user:=pUnshort(@fuser[1]);
UserLength:=length(fuser);
tmpCmpName:=ComputerName;
Domain:=pUnshort(@tmpCmpName[1]);
DomainLength:=length(TmpCmpName);
password:=pUnShort(@FPassword[1]);
PasswordLength:=length(FPassword);
Flags:=2;//Unicode
end;
FSvInfopwszName:=pwidechar(tmpCmpName);
FSvinfopAuthInfo:=@Fcai;
IID_IUnknown:=IUnknown;
mqiIID:=@IID_IUnknown;mqiItf:=nil;mqihr:=0;
olecheck(CoCreateInstanceEx(GetServerCLSID,nil,CLSCTX_REMOTE_SERVER,@FSvinfo,1,@mqi));
olecheck(mqihr);
MySetBlanket(mqiItf,Fcai);
qr:=mqiItfQueryInterface(idispatch,iiu);
olecheck(qr);
MySetBlanket(IUnknown(iiu),FCai);
SetAppServer(iiu);
end
else
inherited DoConnect;
end;
function TSecDComConnectionGetServer: IAppServer;
var
QIResult: HResult;
begin
Connected := True;
QIResult := IDispatch(AppServer)QueryInterface(IAppServer, Result);
if QIResult <> S_OK then
begin
Result := TDispatchAppServerCreate(IAppServerDisp(IDispatch(AppServer)));
end;
MySetBlanket(IUnknown(Result),FCai);
end;
procedure TSecDCOMConnectionMySetBlanket(itf: IUnknown;
const vCai: _CoAuthInfo);
begin
with vCai do
CoSetProxyBlanket(Itf,dwAuthnSvc,dwAuthzSvc,pwidechar(pAuthIdentityData^Domain),
dwAuthnLevel,dwImpersonationLevel,pAuthIdentityData,dwCapabilities);
end;
procedure TSecDCOMConnectionSetPassword(const Value: wideString);
begin
FPassword := Value;
end;
procedure TSecDCOMConnectionSetSvInfo(const Value: COSERVERINFO);
begin
FSvInfo := Value;
end;
procedure TSecDCOMConnectionSetUser(const Value: wideString);
begin
FUser := Value;
end;
procedure Register;
begin
RegisterComponents('DataSnap', [TSecDComConnection]);
end;
end
代码中有一些C风格的注释,是因为delphi没有为我们预定义这些变量和数据结构。
如何使用呢?将这个组件安装在IDE中,并将其放到你的现有代码的远程数据模块中去,将原有指向TDOCMConnection的数据集控件设置成这个新的TSecDCOMConnection控件。然后你可以在远程计算机中设置最严格的安全选项。但是要记住应该为你要使用的用户设置合适的权限:给予远程激活权限、给予远程访问权限。
4、到现在还没有谈到访问的问题。首先激活和访问并不是一回事。一个用户可能拥有激活权限但没有访问权限,也有可能只有访问权限却无激活权限。前面谈到CoCreateInstacnceEx可以用另一身份激活对象并取得IunKnown指针的一个本地引用。如果你直接用这个指针去取得IappServer接口并调用方法,那么你很可能又会见到“拒绝访问”信息。这是IUnKnown指针的本地引用存在于客户机的进程中,再没有做特殊设置前,该指针继承了客户机进程的本地令牌,也就是说当用这个指针获取远程IappServer接口时,会用客户机当前登录令牌调用QueryInterface,在调用过程中远程计算机将有此令牌中缓存的用户名和密码进行再次登录验证,当然此时又会被拒绝,而后远程计算机再次尝试用GUEST帐户登录并获取com对象接口,此时若没有找开GUEST访问权限,则客户端访问失败,windows返回“拒绝访问”信息。那么怎样才能使QueryInterface调用也使用远程用户身份呢,这就要调用CoSetProxyBlanket强制设置本地接口引用使用远程用户的令牌。在上面的代码中,我用MySetBlanket包装了该API,以便使用激活时的用户身份调用QueryInterface。而后在取得的IappServer接口上再次调用MySetBlanket,保证在使用该接口时也采用远程用户身份。
MySetBlanket(mqiItf,Fcai);
qr:=mqiItfQueryInterface(idispatch,iiu);
olecheck(qr);
MySetBlanket(IUnknown(iiu),FCai);
为保证直接引用DataProvider的TclientDataSet也能按上述要求工作,在扩展的TSecDCOMConnection控件中,重载了GetServer方法。这样TSecDCOMConnection已能完全替换TDCOMConnection实现便利的com+应用编程了。
由于时间仓促,写这篇时很多术语没有做解释交待,因此可能会有一些不太好理解,但是出于为delphi Fans提供一个简单的实现安全性com访问的方法,我还是将这篇贴上来,主要是可以让需要的朋友直接复制代码用在自己的应用上。使用TSecDCOMConnection后,服务器方的com+对象可以强制找开访问检查,并打开组件级的访问检查。在打开访问检查的情况下,必须将服务器中允许访问com+对象的用户名加入到角色中才能正确访问。
(上述代码在delphi7/winXP sp2中调试通过,对于windows98和windows nt40及以下 *** 作系统,由于CoCreateInstanceEx不能直接生成com+对象的安全上下文,因此代码不可用)Windows环境下的文件名
绝大多数DOS文件名后缀在Windows下继续有效,但Windows本身也引出了许多种崭新的后缀名,如:drv为设备驱动程序(Driver)、fon和fot都是字库文件、grp为分组文件(Group)、ini为初始化信息文件 (Initiation)、pif为DOS环境下的可执行文件在Windows下执行时所需要的文件格式、crd即卡片文件(Card)、rec即记录器宏文件(Record)、wri即文本文件(Write),它是字处理writeexe生成的文件、doc和rtf也是文本文件(Document),它们是Word产生的文件、cal为日历文件、clp是剪贴板中的文件格式、htm和html即主页文件、par为交换文件、pwl为口令文件(Password)等等。
图像文件名后缀
进入多媒体世界后,大家会看到各种各样精彩的,会发现许多种后缀名。的确,由于各个公司在开发图形有关的软件时都自制标准,导致今日在图形方面有太多的格式,以下就是常见的几种格式:
首先是一种位图文件格式,它是一组点(像素)组成的图像,它们由图像程序生成或在扫描图像时创建。主要有Windows位图(BMP):由Microsoft公司开发,它被Windows和Windows NT平台及许多应用程序支持。支持32位颜色,用于为Windows界面创建图标的资源文件格式,光标(CUR、DLL、EXE):资源文件格式,用于创建Windows界面的光标。OS/2位图(BMP):Microsoft公司和IBM开发的位图文件格式。它为各种 *** 作系统和应用程序所支持。支持压缩,最大的图像像素为64000×64000。画笔(PCX):由Zsoft公司推出,它对图像数据也进行了压缩,可由PCX生成。用于Windows的画笔。支持24位颜色,最大图像像素是64000×64000。支持压缩。图形交换格式:
Graphics Interchage format(GIF):由Compu Serve创建,它能以任意大小支持图画,通过压缩可节省存储空间,还能将多幅图画存在一个文件中。支持256色,最大图像像素是64000×64000。
Kodak Photo CD(PCD):Eastman Kodak所开发的位图文件格式,被所有的平台所支持,PCD支持24位颜色,最大的图像像素是2048×3072,用于在CD-ROM上保存照片。
Adobe Photoshop(PSD):Adobe Photoshop的位图文件格式,被Macintosh和MS Windows平台所支持,最大的图像像素是30000×30000,支持压缩,广泛用于商业艺术。
Macintosh绘画(MAC):Apple公司所开发的位图文件格式。被Macintosh平台所支持,仅支持单色原图,最大图像像素是576×720。支持压缩,主要用于在Macintosh图形应用程序中保存黑白图形和剪贴画片。
动画文件的后缀名
动画文件格式用于保存包含动画框架中的图形信息。主要有:Autodesk FLIC(FLC):即FLI,Autodesk Animator和AnimatorPro的动画文件格式。支持256色,最大的图像像素是64000×64000,支持压缩。广泛用于动画图形中的动画序列、计算机辅助设计和计算机游戏应用程序。不大适合制作真实世界图像动画。
MacPICTS(PCS,PIC):Macromedia开发的动画文件格式,为Macintosh应用程序使用。支持256色,支持压缩,用于保存动画数据,是Quick Time的前身。
Microsoft资源互换文件格式,TIFF(AVD):Microsoft公司开发的动画文件格式,被Windows、Windows
NT平台和OS/2多媒体应用程序所支持,支持256色和压缩,用于在多媒体应用程序中保存音频、视频和图形信息。
MPEG(MPEG):国际标准化组织的运动图像专家小组开发的动画文件格式。被所有平台和Xing Technologies
MPEG播放器及其它应用程序所支持,支持压缩,最大图像像素是4095×4094×30帧/每秒。用于编码音频、视频、文本和图形数据。
Quick Time(QTM):Apple计算机公司开发的动画文件格式。被Apple Macintosh和Microsoft
Windows平台所支持,支持25位颜色,最大图像像素是64000×64000,支持压缩,用于保存音频和运动视频信息。
声音文件的后缀名
声音文件格式是用于保存数字音频信息的。它们主要有:
AIFF(AIF):这是Apple计算机公司开发的声音文件格式,被Macintosh平台和应用程序所支持。支持压缩。
Amiga声音(SVX):Commodore所开发的声音文件格式,被Amiga平台和应用程序所支持,不支持压缩。
MAC声音(SND):Apple计算机公司开发的声音文件格式,被Macintosh平台和多种Macintosh应用程序所支持,支持某些压缩。
MIDI(MID):国际MIDI协会开发的声音文件格式,被Windows平台和许多应用程序所支持,用于为乐器创建数字声音。
声霸(VOC):Creative Labs公司开发的声音文件格式,被Windows和DOS平台所支持,支持压缩。
WAVE(WAV):微软公司用作Windows平台上保存音频信息的资源格式。
压缩文件的后缀名
为了提高存储效率,许多公司都推出了压缩数据的方法和相应的软件,这类文件的使用主要通过压包和解包软件来进行,主要的后缀有:zip、arj、rar、lzh、jar。还有一些专用的压缩文件,如:ex_、dl_、d3_、cab等。
数据库类文件的后缀名
在Dbase、FoxBase、Foxpro系列软件的环境下有以下几类后缀:
dbf 数据库文件(databasefile) prg 命令文件(即程序Program)
fxp 编译后的程序 scx和sct 屏幕文件
fpt 备注字段文件 frx和frt 报表文件
cbx和pjt 标签文件 mnx 和mnt 菜单文件
pjx和pjt 工程文件 app 应用文件
cdx和idx 索引文件 qpr和qpx SQL查询文件
fp 配置文件 ap 生成应用
err 编译错误文件 men 内存应用
fky 键宏文件 win 窗口文件
pcb 库文件 tmp 临时文件
tbk 临时数据库文件
可安全删除的文件类型
临时文件:tmp,syd,$$$,@@@,_mp,gid,~,gts
备份文件:bak,old,wbk,xlk,ckr_
帮助文件:hlp、chm、cnt
后记
用户要注意在不同的 *** 作系统下,后缀名的约定会有所不同,如在Unix下,p代表Pascal语言程序,z代表压缩文件,tar代表归档文件。另外,针对极特殊的设备,其驱动程序也会有特殊的后缀,如3DS显示卡的驱动程序是exp。还有某些公司针对自己的产品也规定了文件名后缀,如方正公司的图像排版文件规定用grh(即Graph)。
文件名的后缀代表着某一种类型的文件,一般会由某一种特定的软件产生和处理。只有对这些后缀名的知识有一定的了解,才能在上机的过程中知道其所以然。这儿带着大家看到了常见的一些后缀类型,实际上还有很多类型,不可能全部讲完。常言说,师傅领进门,修行在个人,以后大家在计算机世界中自己转着看吧。
常见的文件后缀名
ACA
Microsoft的代理使用的角色文档
acf
系统管理配置
acm
音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能
aif
声音文件,支持压缩,可以使用Windows Media Player和QuickTime Player播放
AIF
音频文件,使用Windows Media Player播放
AIFC
音频文件,使用Windows Media Player播放
AIFF
音频文件,使用Windows Media Player播放
ani
动画光标文件扩展名,例如动画沙漏。
ans
ASCII字符图形动画文件
arc
一种较早的压缩文件,可以使用WinZip,WinRAR,PKARC等软件打开
arj
压缩文件。可以使用WinZip,WinRAR,PKARC等软件打开
asf
微软的媒体播放器支持的视频流,可以使用Windows Media Player播放
asp
微软的视频流文件,可以使用Windows Media Player打开
asp
微软提出的Active Server Page,是服务器端脚本,常用于大型网站开发,支持数据库连接,类似PHP。可以使用Visual InterDev编写,是目前的大热门
asx
Windows Media 媒体文件的快捷方式
au
是Internet中常用的声音文件格式,多由Sun工作站创建,可使用软件Waveform Hold and Modify 播放。Netscape Navigator中的LiveAudio也可以播放au文件
avi
一种使用Microsoft RIFF规范的Windows多媒体文件格式,用于存储声音和移动的
bak
备份文件,一般是被自动或是通过命令创建的辅助文件,它包含某个文件的最近一个版本,并且具有于该文件相同的文件名
bas
Basic 语言源程序文件,可编译成可执行文件,目前使用Basic开发系统的是Visual Basic
bat
批处理文件,在MS-DOS中,bat文件是可执行文件,有一系列命令构成,其中可以包含对其他程序的调用
bbs
电子告示板系统文章信息文件
bfc
Windows的公文包文件
bin
二进制文件,其用途依系统或应用而定
bmp
Bitmap位图文件,这是微软公司开发Paint的自身格式,可以被多种Windows和Windows NT平台及许多应用程序支持,支持32位颜色,用于为Windows界面创建图标的资源文件格式。
c
C 语言源程序文件,在C语言编译程序下编译使用
cab
Microsoft制订的压缩包格式,常用于软件的安装程序,使用Windows自带的实用程序,Extractexe可以对其解压缩,WinZip,WinRAR等都支持这种格式
cal
Windows 中的日历文件
cdf
Internet Explorer的频道文件
cdr
CorelDraw中的一种图形文件格式,它是所有CorelDraw应用程序中均能够使用的一种图形图像文件格式
cdx
索引文件,存在于Dbase,Foxbase,Foxpro系统软件环境下
cfg
配置文件,系统或应用软件用于进行配置自己功能,特性的文件
chm
编译过后的HTML文件,常用于制作帮助文件和电子文档
clp
在Windows下剪贴板中的文件格式
cmd
用于Windows NT/2000的批处理文件,其实与BAT文件功能相同,只是为了与DOS/Windows 9x下的BAT有所区别
cmf
声卡标准的音乐文件,FM合成器等可以回放
cnf
NetMeetting会议连接文件
cnt
联机帮助文件目录索引文件,通常和同名的hlp文件一起保存
col
由Autodesk Animator,Autodesk Animator Por等程序创建的一种调色板文件格式,其中存储的是调色板中各种项目的RGB值
com
DOS可执行命令文件,一般小于64KB
cpl
控制面板扩展文件,Windows *** 作系统使用
cpp
C++语言源程序,非常强大的语言,在各种平台中都有相应的开发系统
crd
Windows中的卡片文件
crt
用于安全方面的证书认证文件
cur
Windows下的光标资源文件格式,可用光标编辑软件编辑
css
Text/css文件
dat
数据文件,在应用程序中使用
dat
VCD中的图象声音文件,VCD播放软件可调用,或是通过VCD机播放
dbf
数据库文件,Foxbase,Dbase,Visual FoxPro,等数据库处理系统所产生的数据库文件
dcx
传真浏览文档文件
ddi
映象文件,DUP,HD,IMG等工具可展开
dev
设备驱动程序
dib
设备无关位图文件,这是一种文件格式,其目的是为了保证用某个应用程序创建的位图图形可以被其它应用程序装载或显示一样
dir
目录文件
dll
Windows动态连接库,几乎无处不在,但有时由于不同版本DLL冲突会造成败各种各样的问踢
doc
是目前市场占有率最高的办公室软件Microsoft Office中的字处理软件Word创建的文档
dos
Windows保留的MS-DOS的某些系统文件
dot
Microsoft Word的文档模板文件,通过模板可以简化一些常用格式文档的创建工作,而且可以内嵌VBA程序来实现某些自动化功能
drv
设备驱动程序文件,用在各种系统中
dwg
AutoCAD的图纸文件,也是许多绘图软件都支持的格式,常用于共享数据
dxb
AutoCAD创建的一中图形文件格式
dxf
图形交换格式,一种计算机辅助设计的文件格式,最初开发用来与AutoCAD一起使用,以便于图形文件在应用程序之间的传递,它以ASCII方式储存图形,在表现图形的大小方面十分精确
der
Certiticate文件
dic
Txt文件
emf
由Microsoft公司开发的Windows 32位扩展图元文件格式,其总体设计目标是要弥补在Microsoft Windows 31(Win16)中用的wmf文件格式的不足,使得图元文件更加易于使用
eps
用PostScript语言描述的一种图形文件格式,以文本文件保存,在PostScript图形打印机上能打印出高品质的图形图象,最高能表示32位图形图象
err
编译错误文件,存在于Dbase,Foxbase,Foxpro系列软件环境下
exe
可执行文件,虽然后缀名相同,但具有不同的格式和版本
exp
3DS使用的显示卡驱动程序
exc
Txt文件
flc
Autodesk Animator和Animatorpro的动画文件,支持256色,最大的图象象索是6400064000,支持压缩,广泛用于动画图形中的动画序列,计算机辅助设计和计算机游戏应用程序
fnd
保存的搜索结果
fon
点阵字库文件
for
Fortran语言程序
fot
指向字体的快捷键
fp
配置文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
fpt
备注字段文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
frt
报表文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
frx
报表文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
fxp
编译后的程序,存在于Dbase,Foxbase,Foxpro系列软件的环境下
gif
在各种平台的各种图形处理软件上均能够处理的,经过压缩的一种图形文件格式
grh
方正公司的图象排版文件
grp
Windows下的程序管理器产生的组窗口文件
goc
Gocserve
gra
MSGraphChart5
h
C语言源程序头文件
hlp
Windows应用程序帮助文件
hqx
Macintosh中使用BinHex将二进制文件编码为7位的文本文件,大多数Macintosh文件皆以hqx出现(bin极少使用),在Macintosh中,可使用StuffIt Expander对hqx解码,在Windows中可使用BinHex 13解码
ht
超级终端
htm
保存超文本描述语言的文本文件,用于描述各种各样的网页,使用各种浏览器打开
html
同htm文件
icm
图象配色描述文件
ico
Windows中的图标文件,可以包含同一个图标的多种格式,使用图标编辑软件创建
idf
MIDI乐器定义
idx
索引文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
iff
文件交换格式文件,这种文件格式多用于Amiga平台,在这种平台上它几乎可以存储各种类型的数据,在其它平台上,IFF文件格式多用于存储图象和声音文件
image
MAcintosh磁盘映象文件,常见于萍果机的FTP网点,在Macintosh中由Shrink Wrap处理
ime
Windows下的输入法文件
img
磁盘映象文件,用HD-COPY,WinImage等工具打开后可以恢复到一张磁盘上
inc
汇编语言包含文件,类似C/C++中的H文件
inf
Windows下的软件安装信息,Windows的标准安装程序根据此文件内的安装信息对软件,驱动程序等进行安装
ini
Windows中的初始化信息文件,已经用的不多了,新的应用程序将设置保存在系统的注册表中
jar
一种压缩文件,ARJ的新版本,不过不太流行,可以使用WinJar,Winrar等打开
jpeg
一种压缩文件,同jpg
jpg
静态图象专家组制订的静态图象压缩标准,具有很高的压缩比,使用非常广泛,可使用PhotoShop等图象处理软件创建
lnk
快捷方式,这个文件指向另一个文件,开始菜单的程序文件夹下每条项目都是一个LNK文件
log
日志文件,通常用来记录一些事件之类
lzh
一种古老的压缩文件,可以使用WinRAR打开
mac
Macintosh中使用的一中灰度图形文件格式,在Macintosh Paintbrush中使用,其分辨率只能是720567
mag
图形文件格式
mdb
Microsoft Access使用的数据库格式,是非常流行的桌面数据库
men
内存应用文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下
mid
音频压缩文件,曾经非常流行,不过在现在的软件中用的很少了
mif
MIDI乐器
mov
使用Apple's QuickTime格式的**文件,在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放,在Windows中可由Quicktime播放
movie
QuickTime或苹果机的影视格式,在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放,在Windows中可由QuickTime播放
mp3
采用MPEG-1 Layout 3标准压缩的音频文件,是网上主要的压缩音频文件,这种文件由于具有极高的压缩率和失真低的特点,是目前音乐盗版的主要文件格式,但目前受到VQF,WMA等新标准的挑战
mpg
采用MPEG-1标准压缩的视频文件,与VCD使用的格式非常相近,提供CD质量的音频信号和320240的视频分辩率,目前的媒体播放软件大都能播放,Microsoft的WMV8和MPEG-4压缩的AVI文件是其强大的竞争对手
mpt
Macintosh中使用的一种图形文件格式
msg
Microsoft邮件文档
obj
对象代码
ovl
由于软件功能多,内存偏小,不能一次性全部调入内存的可执行文件可能有同文件名的ovl文件
pcd
位图文件,由Eastman Kodak开发,被所有的平台所支持,PCD支持24位颜色,最大的图象像索是20483072,用于在CD-ROM上保存
pcs
动画文件,是Macromedia开发的动画文件格式,为Macintosh应用程序使用,支持压缩,支持256色,用于保存动画数据,是Quick Time的前身
pcx
图像文件,PCX格式是ZSOFT公司在开发图像处理软件Paintbrush是开发的一种格式,这是一种经过压缩的格式,占用磁盘空间较少
图文多媒体文件,Adobe公司定义的电子印刷品文件格式,它是一种事实上的标准,在Internet网上的很多电子印刷品,都是pdf格式的
psd
是PhotoShop中使用的一种标准图形文件格式,能够保存图像数据的每一个细小部分,包括层,附加的蒙版通道以及其他内容
pwl
Windows下的口令文件
qt
Machintosh 的QuickTime影视格式,在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放,在Windows中可由Quicktime播放
qtm
动画文件,这种文件格式是由Apple计算机公司开发,被Apple Macintosh和Microsoft Windows平台所支持,支持25位颜色,最大图像分辩率是6400064000,支持压缩,用于保存音频和运动视频信息
rec
Windows下的记录器宏文件
reg
Windows 95/98的系统及应用程序注册文件,这种文件虽然以纯文本文件保存,但一样存在版本问题,不同的 *** 作系统使用的REG文件版本是不同的
rle
一种压缩过的位图文件格式,RLE压缩方案是一种极其成熟的压缩方案,特点是无损失压缩,既节省了磁盘空间又不损失任何图像数据,但在打开这种压缩文件时,要花费更多时间,此外,一些兼容性不太好的应用程序可能会搭不开
rm
Windows下的RealPlayer所支持的视频压缩文件,网上非常流行的流式视频文件,很多实时视频新闻等都是采用这种格式的,不过,最新的Windows Media Video V8已经对其发起了强大的攻势
rmi
MIDI音序文件
rtf
丰富文本格式文件,以纯文本描述内容,能够保存各种格式信息,可以用写字版,Word等创建
sav
存档文件
scp
用于Windows系统中Internet拨号用户,自动拨号登录用的脚本文件,可避免手动登录时繁琐的键盘输入
scr
屏障保护文件
sct
屏幕文件
scx
屏幕文件
set
Microsoft备份集文件,用于保存要备份的内容,设置等信息
shb
指向一个文档的快捷方式
snd
Mac声音文件,Apple计算机公司开发的声音文件格式,被Macintosh平台和多种Macintosh应用程序所支持,支持某些压缩
sql
查询文件,在Dbase,Foxbase,Foxpro系列软件的环境下使用
svg
SVG可以算是目前最火热的图像文件格式了,它是基于XML由WorldWideWebConsortium联盟开发的,SVG是可缩放的矢量图形
svx
Amiga声音文件,Commodore所开发的声音文件格式,被Amiga平台和应用程序所支持,不支持压缩
swf
flash是Micromedia公司的产品,严格说它是一种动画编辑软件,实际上它是制作出一种后缀名为swf的动画,这种格式的动画能用比较小的体积来表现丰富的多媒体形式,并且还可以与HTML文件达到一种"水乳交融"的境界
swg
虚拟内存交换文件,由 *** 作系统使用
sys
系统文件,驱动程序等,在不同的 *** 作系统中有不同的定义
tbk
临时数据库文件,在Dbase,Foxbase,Foxpro系列软件的环境下使用
tga
图像文件,此文件格式的结构比较简单,属于一种图形,图像数据的通用格式,在多媒体领域有着很大影响,是计算机生成图像向电视转换的一种首选格式
tiff
图像文件,此图像格式复杂,存储内容多,占用存储空间大,其大小是GIF图像的3倍,是相应的JPEG图像的10倍,最早流行于Macintosh,现在Windows主流的图像应用程序都支持此格式
tmp
临时文件,一般是系统和应用程序产生的临时使用的文件,当系统和应用程序退出时,会自动地删除其建立的临时文件,如果是非正常退出,临时文件可能保留在磁盘上,在单任务系统下,可立即删除它们,在多任务系统下,应删除那些不是正在使用的临时文件
txt
文本文件
url
InternetShortcut(internet 上URL地址的快捷方式)
vcd
虚拟光驱工具制作的光盘镜像文件
ver
版本描述,用于描述某个软件的版本信息的文件,内容因软件而异
voc
声音文件,此文件格式由Creative Labs公司开发,被Windows和DOS平台所支持,支持压缩
vxd
虚拟设备驱动程序,在Windows *** 作系统中非常常见,是重要的系统文件
wab
通信簿文件,由系统中的通信簿程序使用
wav
音频文件,此文件格式是在Windows上用于保存音频信息的资源格式,Windows中由Waveform Hold and Modify或Navigator,或"媒体播放机"播放,存在许多编码方式,需要相应的解码程序才能播放
win
窗口文件,在Dbase,Foxbase,Foxpro系列软件的环境下使用
wmf
Microsoft Windows中常见的一种图元文件格式,它具有文件短小,图案造型化的特点,整个图形常由各个独立的组成部分拼接而成,但其图形往往较粗糙,并且只能在Microsoft Office中调用编辑
wpc
写字板文档转换
wps
Wps文本文件,有多种版本,可以使用Wps Office,Wps 2000等打开
wri
Windows写字板文档
xab
Microsoft邮件地址簿
xbm
Animator Pro创建的一种图形文件格式,其中包含用来描述多边形的一系列点的信息
zip
是DOS/Windows中最常见文件压缩格式,也是互联网上的标准压缩格式,可以包含路径和多个文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)