計算機畢業(yè)論文:Delphi常用應(yīng)用函數(shù)

時間:2022-11-17 10:28:00

導(dǎo)語:計算機畢業(yè)論文:Delphi常用應(yīng)用函數(shù)一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

計算機畢業(yè)論文:Delphi常用應(yīng)用函數(shù)

得到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函數(shù)GetTempPath就是解決這個問題的。其函數(shù)原形為:

DWORDGetTempPath(DWORDnBufferLength,LPTSTRlpBuffer);

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

functionGetTempDirectory:String;

var

TempDir:array[0..255]ofChar;

begin

GetTempPath(255,@TempDir);

Result:=StrPas(TempDir);

end;

備注:臨時目錄的確定原則:

1,如果有TMP環(huán)境變量則臨時目錄為TMP指定的目錄

2,如果沒有TMP環(huán)境變量而有TEMP環(huán)境變量,則為TEMP變量指定的目錄

3,如果TMP和TEMP都沒有定義,則取當前目錄為臨時目錄

程序不出現(xiàn)在任務(wù)欄

一般Windows95運行程序時都會在任務(wù)欄上出現(xiàn)按鈕,如果你的程序是一個監(jiān)視程序,那么出現(xiàn)按鈕就不是明智之舉了。要實現(xiàn)該功能就要在OnCreate事件里利用到API函數(shù)SetWindowLong

procedureTForm1.FormCreate(sender:TObject);

begin

SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);

end;

改計算機名

改變計算機在網(wǎng)絡(luò)中的名字,重新啟動后才生效

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

控制熱啟動

要使系統(tǒng)的熱啟動鍵(Ctrl+Alt+Del)失效,使用以下語句

SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);

要恢復(fù)系統(tǒng)的熱啟動鍵(Ctrl+Alt+Del),使用以下語句

SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,0,0);

臨時路徑

有時需要Windows的臨時路徑來做備份等工作,那么就要知道路徑在哪,下面的程序幫你忙:

varaa:pchar;

begin

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

edit1.text:=aa;

end;

返回程序執(zhí)行參數(shù)

有關(guān)Delphi傳入應(yīng)用程式的命令列參數(shù),請參考以下的說明:

用ParamCount函數(shù)取得命令參數(shù)的個數(shù):

呼叫ParamStr(0),傳回執(zhí)行檔的檔名(含路徑)

呼叫ParamStr(n),傳回第n個參數(shù)的內(nèi)容

procedureTForm1.FormCreate(Sender:TObject);

var

sFileName:string;

begin

ifParamCount>0thenbegin(*有執(zhí)行參數(shù)傳入*)

sFileName:=ParamStr(1);(*取得參數(shù)內(nèi)容*)

ifFileExists(sFileName)then

Memo1.Lines.LoadFromFile(sFileName)

else

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

end;

end;

關(guān)閉Windows

控制WINDOWS的開關(guān):如關(guān)閉WINDOWS,重新啟動WINDOWS等,ExitWindowsEx(UINTuFlags,DWORDdwReserved);是實現(xiàn)這一功能的API函數(shù)

首先定義常數(shù)

const

EWX_FORCE=4;file://關(guān)閉所有程序并以其他用戶身份登錄

EWX_LOGOFF=0;file://重新啟動計算機并切換到MS-DOS方式

EWX_REBOOT=2;file://重新啟動計算機

EWX_SHUTDOWN=1;//關(guān)閉計算機

運行時給How賦值,讓他等于EWX_SHUTDOWN或其他,調(diào)用以下語句

ExitWindowsEx(How,0);

關(guān)閉外部應(yīng)用程序

如何在Delphi應(yīng)用程序中,去關(guān)閉外部已開啟的應(yīng)用程序?

下面給出一段在Delphi中關(guān)閉"計算器"程序為例:

var

HWndCalculator:HWnd;

begin

//findtheexistcalculatorwindow

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

ifHWndCalculator<>0then

SendMessage(HWndCalculator,WM_CLOSE,0,0);

end;

得到執(zhí)行程序的目錄

SysUtils單元中有ExtractFileDir與ExtractFilePath兩個類似的函數(shù),用哪一個?沒有太大的關(guān)系。

不過有以下的差別:ExtractFilePath傳回值的最後一個字元是反斜杠"/"。

procedureTForm1.Button1Click(Sender:TObject);

begin

ShowMessage(ExtractFileDir(Application.Exename));

//ie:c:\temp

ShowMessage(ExtractFilePath(Application.Exename));

//ie:c:\temp\

end;

相同點:如果執(zhí)行文件在根目錄下(如: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;