delphi取进程相关信息  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi取进程相关信息


源代码:
----------------------------------------------------------------------

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