計(jì)算機(jī)畢業(yè)論文:Delphi常用應(yīng)用函數(shù)
時(shí)間:2022-11-17 10:28:00
導(dǎo)語(yǔ):計(jì)算機(jī)畢業(yè)論文:Delphi常用應(yīng)用函數(shù)一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢(xún)客服老師,歡迎參考。
得到WINDOWS的SYSTEM路徑:
方法:
var
MySysPath:PCHAR;
begin
GetMem(MySysPath,255);
GetSystemDirectory(MySysPath,255);
end;
注:MySysPath為SYSTEM路徑
得到程序的路徑
ExtractFileDir(Application.Exename);
察看文件是否存在
FileExists(FileName:String):Boolean;
改變文件擴(kuò)展名
ChangeFileExt(FileName:String)
得到文件的擴(kuò)展名
ExtractFileExt(FileName:String):String;
如何取得Windows的臨時(shí)文件目錄?
適合版本:delphi3,2.0,1.0
Windows95&NT都指定了放置臨時(shí)文件的目錄,然而,用戶(hù)能改變臨時(shí)目錄的位置而不使用缺省的目錄。這篇文章的目的是告訴你如何得到Windows95&NT當(dāng)前的臨時(shí)目錄位置。這個(gè)WindowsAPI函數(shù)GetTempPath就是解決這個(gè)問(wèn)題的。其函數(shù)原形為:
DWORDGetTempPath(DWORDnBufferLength,LPTSTRlpBuffer);
下面的例子示范如何使用:
functionGetTempDirectory:String;
var
TempDir:array[0..255]ofChar;
begin
GetTempPath(255,@TempDir);
Result:=StrPas(TempDir);
end;
備注:臨時(shí)目錄的確定原則:
1,如果有TMP環(huán)境變量則臨時(shí)目錄為T(mén)MP指定的目錄
2,如果沒(méi)有TMP環(huán)境變量而有TEMP環(huán)境變量,則為T(mén)EMP變量指定的目錄
3,如果TMP和TEMP都沒(méi)有定義,則取當(dāng)前目錄為臨時(shí)目錄
程序不出現(xiàn)在任務(wù)欄
一般Windows95運(yùn)行程序時(shí)都會(huì)在任務(wù)欄上出現(xiàn)按鈕,如果你的程序是一個(gè)監(jiān)視程序,那么出現(xiàn)按鈕就不是明智之舉了。要實(shí)現(xiàn)該功能就要在OnCreate事件里利用到API函數(shù)SetWindowLong
procedureTForm1.FormCreate(sender:TObject);
begin
SetWindowLong(Application,Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
改計(jì)算機(jī)名
改變計(jì)算機(jī)在網(wǎng)絡(luò)中的名字,重新啟動(dòng)后才生效
SetComputerName(''''HelloWorld'''');
控制熱啟動(dòng)
要使系統(tǒng)的熱啟動(dòng)鍵(Ctrl+Alt+Del)失效,使用以下語(yǔ)句
SystemParametersInfo(SPI_SCREENSAVERRUNNING,1,0,0);
要恢復(fù)系統(tǒng)的熱啟動(dòng)鍵(Ctrl+Alt+Del),使用以下語(yǔ)句
SystemParametersInfo(SPI_SCREENSAVERRUNNING,0,0,0);
臨時(shí)路徑
有時(shí)需要Windows的臨時(shí)路徑來(lái)做備份等工作,那么就要知道路徑在哪,下面的程序幫你忙:
varaa:pchar;
begin
GetTempPath(20,aa);file://返回路徑名
edit1.text:=aa;
end;
返回程序執(zhí)行參數(shù)
有關(guān)Delphi傳入應(yīng)用程式的命令列參數(shù),請(qǐng)參考以下的說(shuō)明:
用ParamCount函數(shù)取得命令參數(shù)的個(gè)數(shù):
呼叫ParamStr(0),傳回執(zhí)行檔的檔名(含路徑)
呼叫ParamStr(n),傳回第n個(gè)參數(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的開(kāi)關(guān):如關(guān)閉WINDOWS,重新啟動(dòng)WINDOWS等,ExitWindowsEx(UINTuFlags,DWORDdwReserved);是實(shí)現(xiàn)這一功能的API函數(shù)
首先定義常數(shù)
const
EWX_FORCE=4;file://關(guān)閉所有程序并以其他用戶(hù)身份登錄
EWX_LOGOFF=0;file://重新啟動(dòng)計(jì)算機(jī)并切換到MS-DOS方式
EWX_REBOOT=2;file://重新啟動(dòng)計(jì)算機(jī)
EWX_SHUTDOWN=1;//關(guān)閉計(jì)算機(jī)
運(yùn)行時(shí)給How賦值,讓他等于EWX_SHUTDOWN或其他,調(diào)用以下語(yǔ)句
ExitWindowsEx(How,0);
關(guān)閉外部應(yīng)用程序
如何在Delphi應(yīng)用程序中,去關(guān)閉外部已開(kāi)啟的應(yīng)用程序?
下面給出一段在Delphi中關(guān)閉"計(jì)算器"程序?yàn)槔?/p>
var
HWndCalculator:HWnd;
begin
//findtheexistcalculatorwindow
HWndCalculator:=Winprocs.FindWindow(nil,''''計(jì)算器'''');//closetheexistCalculator
ifHWndCalculator<>0then
SendMessage(HWndCalculator,WM_CLOSE,0,0);
end;
得到執(zhí)行程序的目錄
SysUtils單元中有ExtractFileDir與ExtractFilePath兩個(gè)類(lèi)似的函數(shù),用哪一個(gè)?沒(méi)有太大的關(guān)系。
不過(guò)有以下的差別:ExtractFilePath傳回值的最後一個(gè)字元是反斜杠"/"。
procedureTForm1.Button1Click(Sender:TObject);
begin
ShowMessage(ExtractFileDir(Application.Exename));
//ie:c:\temp
ShowMessage(ExtractFilePath(Application.Exename));
//ie:c:\temp\
end;
相同點(diǎn):如果執(zhí)行文件在根目錄下(如:C:\SAMPLE.EXE)的話(huà),兩者的傳回值相同,且最后一個(gè)字符都是"/"。
使用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;
熱門(mén)標(biāo)簽
計(jì)算機(jī)畢業(yè)論文 計(jì)算機(jī)論文 計(jì)算機(jī)技術(shù)論文 計(jì)算機(jī)教育論文 計(jì)算機(jī)專(zhuān)業(yè)論文 計(jì)算機(jī)專(zhuān)業(yè)畢業(yè)論文 計(jì)算機(jī)教學(xué)論文 計(jì)算機(jī)基礎(chǔ)論文 計(jì)算機(jī)應(yīng)用論文 計(jì)算化學(xué)論文 心理培訓(xùn) 人文科學(xué)概論