计算机毕业论文:Delphi常用应用函数

时间:2022-11-17 10:28:00

计算机毕业论文:Delphi常用应用函数

得到WINDOWS的SYSTEM路径:

方法:

var

MySysPath:PCHAR;

begin

GetMem(MySysPath,255);

GetSystemDirectory(MySysPath,255);

end;

注:MySysPath为SYSTEM路径

得到程序的路径

ExtractFileDir(Application.Exename);

察看文件是否存在

FileExists(FileName:String):Boolean;

改变文件扩展名

ChangeFileExt(FileName:String)

得到文件的扩展名

ExtractFileExt(FileName:String):String;

如何取得Windows的临时文件目录?

适合版本:Delphi3,2.0,1.0

Windows95&NT都指定了放置临时文件的目录,然而,用户能改变临时目录的位置而不使用缺省的目录。这篇文章的目的是告诉你如何得到Windows95&NT当前的临时目录位置。这个WindowsAPI函数GetTempPath就是解决这个问题的。其函数原形为:

DWORDGetTempPath(DWORDnBufferLength,LPTSTRlpBuffer);

下面的例子示范如何使用:

functionGetTempDirectory:String;

var

TempDir:array[0..255]ofChar;

begin

GetTempPath(255,@TempDir);

Result:=StrPas(TempDir);

end;

备注:临时目录的确定原则:

1,如果有TMP环境变量则临时目录为TMP指定的目录

2,如果没有TMP环境变量而有TEMP环境变量,则为TEMP变量指定的目录

3,如果TMP和TEMP都没有定义,则取当前目录为临时目录

程序不出现在任务栏

一般Windows95运行程序时都会在任务栏上出现按钮,如果你的程序是一个监视程序,那么出现按钮就不是明智之举了。要实现该功能就要在OnCreate事件里利用到API函数SetWindowLong

procedureTForm1.FormCreate(sender:TObject);

begin

SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);

end;

改计算机名

改变计算机在网络中的名字,重新启动后才生效

SetComputerName(''''HelloWorld'''');

控制热启动

要使系统的热启动键(Ctrl+Alt+Del)失效,使用以下语句

SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);

要恢复系统的热启动键(Ctrl+Alt+Del),使用以下语句

SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,0,0);

临时路径

有时需要Windows的临时路径来做备份等工作,那么就要知道路径在哪,下面的程序帮你忙:

varaa:pchar;

begin

GetTempPath(20,aa);file://返回路径名

edit1.text:=aa;

end;

返回程序执行参数

有关Delphi传入应用程式的命令列参数,请参考以下的说明:

用ParamCount函数取得命令参数的个数:

呼叫ParamStr(0),传回执行档的档名(含路径)

呼叫ParamStr(n),传回第n个参数的内容

procedureTForm1.FormCreate(Sender:TObject);

var

sFileName:string;

begin

ifParamCount>0thenbegin(*有执行参数传入*)

sFileName:=ParamStr(1);(*取得参数内容*)

ifFileExists(sFileName)then

Memo1.Lines.LoadFromFile(sFileName)

else

Application.MessageBox(''''找不到指定的档案'''',''''讯息'''',48);

end;

end;

关闭Windows

控制WINDOWS的开关:如关闭WINDOWS,重新启动WINDOWS等,ExitWindowsEx(UINTuFlags,DWORDdwReserved);是实现这一功能的API函数

首先定义常数

const

EWX_FORCE=4;file://关闭所有程序并以其他用户身份登录

EWX_LOGOFF=0;file://重新启动计算机并切换到MS-DOS方式

EWX_REBOOT=2;file://重新启动计算机

EWX_SHUTDOWN=1;//关闭计算机

运行时给How赋值,让他等于EWX_SHUTDOWN或其他,调用以下语句

ExitWindowsEx(How,0);

关闭外部应用程序

如何在Delphi应用程序中,去关闭外部已开启的应用程序?

下面给出一段在Delphi中关闭"计算器"程序为例:

var

HWndCalculator:HWnd;

begin

//findtheexistcalculatorwindow

HWndCalculator:=Winprocs.FindWindow(nil,''''计算器'''');//closetheexistCalculator

ifHWndCalculator<>0then

SendMessage(HWndCalculator,WM_CLOSE,0,0);

end;

得到执行程序的目录

SysUtils单元中有ExtractFileDir与ExtractFilePath两个类似的函数,用哪一个?没有太大的关系。

不过有以下的差别:ExtractFilePath传回值的最後一个字元是反斜杠"/"。

procedureTForm1.Button1Click(Sender:TObject);

begin

ShowMessage(ExtractFileDir(Application.Exename));

//ie:c:\temp

ShowMessage(ExtractFilePath(Application.Exename));

//ie:c:\temp\

end;

相同点:如果执行文件在根目录下(如:C:\SAMPLE.EXE)的话,两者的传回值相同,且最后一个字符都是"/"。

使用GetFileVersionInfo得到版本信息的例子

SamplesUsingGetFileVersionInfo?

回答1:

procedureGetBuildInfo(varV1,V2,V3,V4:Word);

var

VerInfoSize:DWORD;

VerInfo:Pointer;

VerValueSize:DWORD;

VerValue:PVSFixedFileInfo;

Dummy:DWORD;

begin

VerInfoSize:=GetFileVersionInfoSize(PChar(ParamStr(0)),Dummy);

GetMem(VerInfo,VerInfoSize);

GetFileVersionInfo(PChar(ParamStr(0)),0,VerInfoSize,VerInfo);

VerQueryValue(VerInfo,''''\'''',Pointer(VerValue),VerValueSize);

withVerValue^do

begin

V1:=dwFileVersionMSshr16;

V2:=dwFileVersionMSand$FFFF;

V3:=dwFileVersionLSshr16;

V4:=dwFileVersionLSand$FFFF;

end;

FreeMem(VerInfo,VerInfoSize);

end;