DELPHI的一些開發技巧和方法(二)

作者 : toofree

標題 : DELPHI的一些開發技巧和方法(二)

關鍵字: DELPHI 開發技巧

分類 : 開發技巧

密級 : 參賽

(評分:★ , 回複: 3, 閱讀: 1185)

11、向其他應用程序發送模擬鍵:

var

h: Thandle;

begin

h := FindWindow(nil, '應用程序標題');

PostMessage(h, WM_KEYDOWN, VK_F9, 0);//發送F9鍵

end

12、判斷當前網絡連接方式:

(判斷結果爲MODEM、局域網或是代理服務器方式)

uses wininet;

Function ConnectionKind :boolean;

var flags: dword;

begin

Result := InternetGetConnectedState(@flags, 0);

if Result then

begin

if (flags and INTERNET_CONNECTION_MODEM) = INTERNET_CONNECTION_MODEM then

begin

showmessage('Modem');

end;

if (flags and INTERNET_CONNECTION_LAN) = INTERNET_CONNECTION_LAN then

begin

showmessage('LAN');

end;

if (flags and INTERNET_CONNECTION_PROXY) = INTERNET_CONNECTION_PROXY then

begin

showmessage('Proxy');

end;

if (flags and INTERNET_CONNECTION_MODEM_BUSY)=INTERNET_CONNECTION_MODEM_BUSY then

begin

showmessage('Modem Busy');

end;

end;

end;

13、取機器BIOS信息:

with Memo1.Lines do

begin

Add('MainBoardBiosName:'+^I+string(Pchar(Ptr($FE061))));

Add('MainBoardBiosCopyRight:'+^I+string(Pchar(Ptr($FE091))));

Add('MainBoardBiosDate:'+^I+string(Pchar(Ptr($FFFF5))));

Add('MainBoardBiosSerialNo:'+^I+string(Pchar(Ptr($FEC71))));

end;

14、解析服務器IP地址:

uses winsock

function IPAddrToName(IPAddr : String): String;

var

SockAddrIn: TSockAddrIn;

HostEnt: PHostEnt;

WSAData: TWSAData;

begin

WSAStartup($101, WSAData);

SockAddrIn.sin_addr.s_addr:= inet_addr(Pchar(IPAddr));

HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);

if HostEnt<>nil then result:=StrPas(Hostent^.h_name) else result:='';

end;

15、清空一個目錄:

function EmptyDirectory(TheDirectory :String ; Recursive : Boolean) :

Boolean;

var

SearchRec : TSearchRec;

Res : Integer;

begin

Result := False;

TheDirectory := NormalDir(TheDirectory);

Res := FindFirst(TheDirectory + '*.*', faAnyFile, SearchRec);

try

while Res = 0 do

begin

if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then

begin

if ((SearchRec.Attr and faDirectory) > 0) and Recursive

then begin

EmptyDirectory(TheDirectory + SearchRec.Name, True);

RemoveDirectory(Pchar(TheDirectory + SearchRec.Name));

end

else begin

DeleteFile(Pchar(TheDirectory + SearchRec.Name))

end;

end;

Res := FindNext(SearchRec);

end;

Result := True;

finally

FindClose(SearchRec.FindHandle);

end;

end;

16、計算目錄的大小:

function GetDirectorySize(const Adirectory: string): Integer;

var

Dir: TSearchRec;

Ret: integer;

Path: string;

begin

Result := 0;

Path := ExtractFilePath(Adirectory);

Ret := Sysutils.FindFirst(Adirectory, faAnyFile, Dir);

if Ret <> NO_ERROR then exit;

try

while ret=NO_ERROR do

begin

inc(Result, Dir.Size);

if (Dir.Attr in [faDirectory]) and (Dir.Name[1] <> '.') then

Inc(Result, GetDirectorySize(Path + Dir.Name + '\*.*'));

Ret := Sysutils.FindNext(Dir);

end;

finally

Sysutils.FindClose(Dir);

end;

end;

17、獲得硬盤序列號:

var SerialNum : pdword; a, b : dword; Buffer : array [0..255] of char;

begin

if GetVolumeInformation('c:\', Buffer, SizeOf(Buffer), SerialNum, a, b, nil, 0) then Label1.Caption := IntToStr(SerialNum^);

end;

18、目錄完全刪除:

procedure Tform1.DeleteDirectory(strDir:String);

var

sr: TSearchRec;

FileAttrs: Integer;

strfilename:string;

strPth:string;

begin

strpth:=Getcurrentdir();

FileAttrs := faAnyFile;

if FindFirst(strpth+'\'+strdir+'\*.*', FileAttrs, sr) = 0 then

begin

if (sr.Attr and FileAttrs) = sr.Attr then

begin

strfilename:=sr.Name;

if fileexists(strpth+'\'+strdir+'\'+strfilename) then

deletefile(strpth+'\'+strdir+'\'+strfilename);

end;

while FindNext(sr) = 0 do

begin

if (sr.Attr and FileAttrs) = sr.Attr then

begin

strfilename:=sr.name;

if fileexists(strpth+'\'+strdir+'\'+strfilename) then

deletefile(strpth+'\'+strdir+'\'+strfilename);

end;

end;

FindClose(sr);

removedir(strpth+'\'+strdir);

end;

end;

19、TFileStream的操作:

//從文件流當前位置讀count字節到緩沖區BUFFER

function read(var buffer;count:longint):longint;override;

//將緩沖區BUFFER讀到文件流中

function write(const buffer;count:longint):longint;override;

//設置文件流當前讀寫指針爲OFFSET

function seek(offset:longint;origin:word):longint;override;

origin={soFromBeginning,soFromCurrent,soFromEnd}

//從另一文件流中當前位置複制COUNT到當前文件流當前位置

function copyfrom(source:Tstream;count:longint):longint;

//讀指定文件到文件流

var myFStream:TFileStream;

begin

myFStream:=TFileStream.create(OpenDialog1.filename,fmOpenRead);

end;

20、獲得CPU序列號:

function GetCpuId:longint;assembler;register;

var

temp:longint;

begin

asm

PUSH EBX

PUSH EDI

MOV EDI,EAX

MOV EAX,1

DW $A20F

MOV TEMP,EDX

POP EDI

POP EBX

end;

result:=temp;

end;

procedure TForm1.Button1Click(Sender: Tobject);

begin

label1.Caption:=IntToHex(GetCpuId,8);

end;

2003-5-30 10:47:00

DELPHI基礎開發技巧
◇網絡鄰居複制文件uses shellapi;copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);◇産生鼠標拖動效果通過MouseMove事件、DragOver事件、EndDrag事件實現,例如在PANEL上的LABE...查看完整版>>DELPHI基礎開發技巧
 
開發技巧:JAVA編程中字符串分割的兩種方法
方法1:采用String的split,驗證代碼如下:import Java.util.Arrays;public class TestSplit { public static void main(String[] args) { String orignString = new String("5,8,7,4,3,9,1"); String[] testString ...查看完整版>>開發技巧:JAVA編程中字符串分割的兩種方法
 
使用X458時的一些方法&技巧!!~
1:圖片支持的格式有:BMP,JPG,GIF三種!~~~且大小要在128X128內(並小于32K:)鈴聲支持的格式有:.mmf,.mid兩種!~~~其中“.mmf”的可以通過數據線配合EasyGPRS軟件下載;“.mid”的只能通過手機上GPRS獲得(並一...查看完整版>>使用X458時的一些方法&技巧!!~
 
Delphi開發經驗技巧寶典(含光盤)|報價¥71.20|圖書,計算機與互聯網,程序設計,Delphi語言,高級編程,明日科技
目錄:圖書,計算機與互聯網,程序設計,Delphi語言,高級編程,品牌:明日科技基本信息·出版社:人民郵電出版社·頁碼:753 頁碼·出版日:2007年·ISBN:9787115166807·條碼:9787115166807·版次:2007年11月第1版·...查看完整版>>Delphi開發經驗技巧寶典(含光盤)|報價¥71.20|圖書,計算機與互聯網,程序設計,Delphi語言,高級編程,明日科技
 
DELPHI開發技巧
先人的DELPHI基礎開發技巧◇網絡鄰居複制文件uses shellapi;copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);◇産生鼠標拖動效果通過MouseMove事件、DragOver事件、EndDrag事件...查看完整版>>DELPHI開發技巧
 
DELPHI基礎開發技巧(不看後悔!)
DELPHI基礎開發技巧◇網絡鄰居複制文件uses shellapi;copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);◇産生鼠標拖動效果通過MouseMove事件、DragOver事件、EndDrag事件實現,例...查看完整版>>DELPHI基礎開發技巧(不看後悔!)
 
先人的DELPHI基礎開發技巧
◇網絡鄰居複制文件uses shellapi;copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);◇産生鼠標拖動效果通過MouseMove事件、DragOver事件、EndDrag事件實現,例如在PANEL上的LAB...查看完整版>>先人的DELPHI基礎開發技巧
 
網友分享:初學Java開發編程一些小技巧
學JAVA時間也不短了,可總沒有一點自己原創的東西,今天就以寫IDE開發工具的使用技巧作爲我原創的開始吧,希望大家能喜歡這篇文章,也希望鄙文能對廣大初學JAVA的朋友有一點幫助!在使用JCRETOR過程中,自己摸索出了...查看完整版>>網友分享:初學Java開發編程一些小技巧
 
Asp.net &C#開發中的一些注意事項及小技巧
1、構造函數不能帶返回值類型,因爲構造函數返回就是對象本身。2、將字符串轉換成日期類型,用DateTime.Parese()或DateTime. ParseExact ()函數。3、if(!Page.IsPostback){}使用該函數,使網頁僅在第一次加載時運行函...查看完整版>>Asp.net &C#開發中的一些注意事項及小技巧
 
 
回到王朝網路首頁