源代码:
----------------------------------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
p rivate
{ P rivate declarations }
public
constructor Create(AOwner: TComponent); override;
{ Public declarations }
end;
var
Form1: TForm1;
function GetOS:string;
implementation
{$R *.dfm}
{$APPTYPE CONSOLE}
{ TForm1 }
function GetOS:string;
var
OS:TOSVersionInfo;
begin
ZeroMemory(@OS,SizeOf(OS));
OS.dwOSVersionInfoSize:=SizeOf(OS);
GetVersionEx(OS);
//Result:=osUnknown;
if OS.dwPlatformId=VER_PLATFORM_WIN32_NT then
begin
case OS.dwMajorVersion of
3: Result:='osNT3';
4: Result:='osNT4';
5: begin
if OS.dwMinorVersion>=1 then
Result:='osXP'
else
Result:='os2K';
end;
end;
end
else
begin
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=0)then
begin
Result:='os95';
if(Trim(OS.szCSDVersion)='B') then
Result:='os95OSR2';
end
else
if (OS.dwMajorVersion=4) and (OS.dwMinorVersion=10) then
begin
Result:='os98';
if(Trim(OS.szCSDVersion)='A') then
Result:='os98SE';
end
else
if(OS.dwMajorVersion=4) and (OS.dwMinorVersion=90) then
Result:='osME';
end;
end;
constructor TForm1.Create(AOwner: TComponent);
var
m:Cardinal;
n,e:string;
p:Pointer;
k:string;
k1:pchar;
verInfo:_OSVERSIONINFO;
verStr:string;
sys:string;
pid:DWORD;
begin
inherited;
Memo1.Clear;
Memo1.Lines.Add('实例句柄Hinstance:'+IntToStr(HInstance));
m:=GetModuleHandle(nil);
Memo1.Lines.Add('模块句柄ModuleHandle:'+IntToStr(m)+' //参数为NULL');
//取模块的基地址
m:=GetModuleHandle('Project1.exe');
Memo1.Lines.Add('模块基地址: '+inttohex(m,2)+' //参数为可执行文件名字');
SetLength(n,255);
GetModuleFileName(m,PChar(n),255);
Memo1.Lines.Add(n);
//取指向进程的完整命令行
p:=GetCommandLine();
n:=PChar(p);
Memo1.Lines.Add('[取进程的完整命令行] '+n);
SetEnvironmentVariable(PChar('blue8'),'this is a test');
e:=GetEnvironmentVariable('blue8');
Memo1.Lines.Add('[自定义的环境变量blue8值:] '+e); //自定义的环境变量
e:=GetEnvironmentVariable('windir'); //取系统的环境变量
Memo1.Lines.Add('[取系统的环境变量windir:] '+e);
Memo1.Lines.Add('[取进程当前默认目录:] '+GetCurrentDir()); //取进程当前默认目录
SetCurrentDirectory(PChar('C:\cfpreview\cfpreview')); //设置当前目录
SetLength(k,256);
GetCurrentDirectory(sizeof(k),PChar(k));
//Memo1.Lines.Add(IntToStr(length(k)));
Memo1.Lines.Add('[GetCurrentDirectory] '+k);
SetLength(k,MAX_PATH);
GetFullPathName(PChar('c:'),MAX_PATH,PChar(k),k1);
Memo1.Lines.Add('[GetFullPathName] '+k); //取得C驱当前目录
//下面取系统版本号,使用 GetVersionEx函数
verInfo.dwOSVersionInfoSize:=SizeOf(verInfo);
GetVersionEx(verinfo);
verStr:= IntToStr(verInfo.dwMajorVersion);
verStr:=verStr+'.'+ IntToStr(verInfo.dwMinorVersion)+
'.'+IntToStr(verInfo.dwBuildNumber);
Memo1.Lines.Add('[系统版本号] '+verStr);
//分析系统类型
case verInfo.dwPlatformId of
VER_PLATFORM_WIN32s : sys:='win32s';
VER_PLATFORM_WIN32_WINDOWS: sys:='Windows 95/Windows 98';
VER_PLATFORM_WIN32_NT: sys:='Windows NT/Windows 2000';
//VER_PLATFORM_WIN32_CEHH: sys:='Windows CE';
end;
Memo1.Lines.Add('[操作系统类型:] '+sys);
Memo1.Lines.Add(verInfo.szCSDVersion); //Service Pack 2
Memo1.Lines.Add(GetOS()); //调用getos自定义函数
//取本窗口创建者ID号
GetWindowThreadProcessId(Handle,pid);
Memo1.Lines.Add('窗口创建者ID号:'+inttostr(pid));
//取当前进程ID
Memo1.Lines.Add('当前进程ID:'+IntToStr(GetCurrentProcessId()));
Memo1.Lines.Add('当前进程伪句柄:'+IntToStr(GetCurrentProcess));
//取当前线程ID
Memo1.Lines.Add('当前线程ID:'+IntToStr(GetCurrentThreadId()));
Memo1.Lines.Add('当前线程伪句柄:'+IntToStr(GetCurrentThread));
end;
end.
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.10734295845032 seconds