亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? viewer.pas

?? 一個很不錯的系統信息控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{$INCLUDE MITEC_DEF.INC}

unit Viewer;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ExtCtrls, ComCtrls, ImgList, MSI_GUI, Buttons, StdCtrls,
  MSI_CPUUsage, MSI_Common, MSI_Memory;

type
  TCategory = (msicMachine, msicCPU, msicCPUCache, msicCPUFS, msicCPUFSStd1,
               msicCPUFSStd2,msicCPUFSExt1,msicCPUFSExt2,msicCPUFSAPM, msicMemory,
               msicMotherboard, msicBus, msicVideo,msicMonitor, msicAudio,
               msicNetwork,msicPrinter, msicDevice,  msicSMBIOS, msicUSB,
               msicWinStorage, msicPhysDrive, msicLogDrive, msicNetDrive, msicRemovableDrive, msicOtherDrive,
               msicASPI, msicSMBIOSMemoryModule, msicSMBIOSMemoryDevice, msicSMBIOSProcessor,
               msicSMBIOSMemCtrl,msicSMBIOSSystemSlot, msicSMBIOSCache,
               msicSMBIOSPort, msicSMBIOSChassis,msicSMBIOSBIOS, msicSMBIOSSystem,
               msicSMBIOSMainboard, msicSMBIOSOnBoardDevice, msicSMBIOSTemperatureProbe,
               msicOther);

  Tmdi_msi_Viewer = class(TForm)
    sb: TStatusBar;
    List: TListView;
    Splitter1: TSplitter;
    MainMenu: TMainMenu;
    TreeImages: TImageList;
    View1: TMenuItem;
    mmOverview: TMenuItem;
    N3: TMenuItem;
    mmFullExpand: TMenuItem;
    mmFullCollapse: TMenuItem;
    MSIC: TMiTeC_SystemInfo;
    Tree: TTreeView;
    DataPanel: TPanel;
    OverviewIcon: TImage;
    lMachine: TLabel;
    lOS: TLabel;
    Bevel2: TBevel;
    lVersion: TLabel;
    lDate: TLabel;
    N1: TMenuItem;
    mmTO: TMenuItem;
    procedure mmTOClick(Sender: TObject);
    procedure OverviewIconDblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure mmOverviewClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TreeDeletion(Sender: TObject; Node: TTreeNode);
    procedure TreeChange(Sender: TObject; Node: TTreeNode);
    procedure cmExit(Sender: TObject);
    procedure ListAdvancedCustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
      var DefaultDraw: Boolean);
    procedure ListAdvancedCustomDrawSubItem(Sender: TCustomListView;
      Item: TListItem; SubItem: Integer; State: TCustomDrawState;
      Stage: TCustomDrawStage; var DefaultDraw: Boolean);
    procedure TreeGetImageIndex(Sender: TObject; Node: TTreeNode);
    procedure mmFullExpandClick(Sender: TObject);
    procedure mmFullCollapseClick(Sender: TObject);
    procedure ListDblClick(Sender: TObject);
  private
    function GetTreePath(ANode: TTreeNode): string;
    procedure CreateTree;
    procedure CreateCPUTree(ARoot: TTreeNode);
    procedure CreateMemoryTree(ARoot: TTreeNode);
    procedure CreateMotherboardTree(ARoot: TTreeNode);
    procedure CreateBusTree(ARoot: TTreeNode);
    procedure CreateVideoTree(ARoot: TTreeNode);
    procedure CreateMonitorTree(ARoot: TTreeNode);
    procedure CreateStorageTree(ARoot: TTreeNode);
    procedure CreateAudioTree(ARoot: TTreeNode);
    procedure CreateNetworkTree(ARoot: TTreeNode);
    procedure CreatePortsTree(ARoot: TTreeNode);
    procedure CreateUSBTree(ARoot: TTreeNode);
    procedure CreatePrintersTree(ARoot: TTreeNode);

    procedure DisplayMachineInfo;
    procedure DisplayCPUInfo;
    procedure DisplayCPUDetail(AIndex: Integer);
    procedure DisplayCPUCache(AIndex: Integer);
    procedure DisplayCPUFS(AIndex: Integer);
    procedure DisplayCPUFSStd1(AIndex: Integer);
    procedure DisplayCPUFSStd2(AIndex: Integer);
    procedure DisplayCPUFSExt1(AIndex: Integer);
    procedure DisplayCPUFSExt2(AIndex: Integer);
    procedure DisplayCPUFSAPM(AIndex: Integer);
    procedure DisplayMemoryInfo;
    procedure DisplaySMBIOSInfo;
    procedure DisplaySMBIOSSystemInfo;
    procedure DisplaySMBIOSChassisInfo;
    procedure DisplaySMBIOSMainboardInfo;
    procedure DisplaySMBIOSBIOSInfo;
    procedure DisplaySMBIOSMemCtrlInfo;
    procedure DisplaySMBIOSMemoryModuleDetail(AIndex: Integer);
    procedure DisplaySMBIOSMemoryDeviceDetail(AIndex: Integer);
    procedure DisplaySMBIOSProcessorDetail(AIndex: Integer);
    procedure DisplaySMBIOSCacheDetail(AIndex: Integer);
    procedure DisplaySMBIOSSystemSlotDetail(AIndex: Integer);
    procedure DisplaySMBIOSPortDetail(AIndex: Integer);
    procedure DisplaySMBIOSOnBoardDeviceDetail(AIndex: Integer);
    procedure DisplaySMBIOSTempProbeDetail(AIndex: Integer);
    procedure DisplayMotherboardInfo;
    procedure DisplayDeviceInfo;
    procedure DisplayDeviceDetail(AIndex: Integer);
    procedure DisplayVideoDetail;
    procedure DisplayMonitorDetail(AIndex: Integer);
    procedure DisplayPhysDriveDetail(AIndex: Integer);
    procedure DisplayLogDriveDetail(AIndex: Integer);
    procedure DisplayOtherDriveDetail(AIndex: Integer);
    procedure DisplayWinStorageDetail(AIndex: Integer);
    procedure DisplayASPIDetail(AIndex: Integer);
    procedure DisplayAudioDetail;
    procedure DisplayNetworkInfo;
    procedure DisplayNetworkDetail(AIndex: Integer);
    procedure DisplayUSBDetail(AIndex: Integer);
    procedure DisplayUSBSummary;
    procedure DisplayPrinterDetail(AIndex: Integer);
    procedure DisplayNodeInfo;
  public
    procedure RefreshData;

    procedure OpenFile(AFilename: string);
    procedure OpenLocal;
    procedure SetControls;
  end;

var
  mdi_msi_Viewer: Tmdi_msi_Viewer;

resourcestring
  {$I MSI_Resources.inc}

implementation

uses Main, MSI_CPU, MSI_SMBIOS, MSI_Devices, MSI_USB, MiTeC_USB, MiTeC_CtrlRtns,
  MiTeC_Datetime, MiTeC_Routines, MiTeC_NTDDK, MSI_Network,
  Clipbrd, MSI_Splash, MiTeC_WinIOCTL, MiTeC_StrUtils, EODlg;

{$R *.dfm}

procedure Tmdi_msi_Viewer.RefreshData;
begin
  Screen.Cursor:=crHourglass;
  ShowSplash;
  DataPanel.Visible:=not MSIC.LiveData;
  try
    if MSIC.LiveData then
      MSIC.RefreshData
    {$IFDEF SIS}
    else begin
      MSIC.LoadFromStorage(MSIC.StorageFileName);

      lMachine.Caption:=MSIC.StorageInfo.Machine;
      lOS.Caption:=Format('%s / %s',[MSIC.StorageInfo.OS,
                                              MSIC.StorageInfo.Security
                                             ]);
      lVersion.Caption:=Format('Version: %s',[MSIC.StorageInfo.Version]);
      lDate.Caption:=Format('Created: %s',[DateTimeToStr(MSIC.StorageInfo.Timestamp)]);
    end;
    {$ENDIF}
  finally
    CreateTree;
    HideSplash;
    Screen.Cursor:=crDefault;
  end;
end;

procedure Tmdi_msi_Viewer.CreateTree;
var
  Root: TTreeNode;
  pi: PInteger;
begin
  with Tree, Items do begin
    BeginUpdate;
    try
      Clear;

      new(pi);
      pi^:=256*BYTE(msicMachine);
      if MSIC.Machine.Computer='' then
        Root:=AddObject(nil,rsComputer,pi)
      else
        Root:=AddObject(nil,MSIC.Machine.Computer,pi);

      CreateCPUTree(Root);
      CreateMemoryTree(Root);
      CreateMotherboardTree(Root);
      CreateBusTree(Root);
      CreateVideoTree(Root);
      CreateMonitorTree(Root);
      CreateStorageTree(Root);
      CreateUSBTree(Root);
      CreateAudioTree(Root);
      CreateNetworkTree(Root);
      CreatePortsTree(Root);
      CreatePrintersTree(Root);
    finally
      EndUpdate;
      Root.Expand(False);
      Tree.Selected:=Tree.Items.GetFirstNode;
      Tree.OnChange(Tree,Tree.Selected);
    end;
  end;
end;

procedure Tmdi_msi_Viewer.CreateUSBTree(ARoot: TTreeNode);
var
  r,n2: TTreeNode;
  pi: PInteger;
  i: Integer;
  s: string;

function FindUSBNode(ARoot: TTreeNode; AIndex: Integer): TTreeNode;
var
  n: TTreeNode;
begin
  Result:=nil;
  n:=ARoot;
  while Assigned(n) do begin
    if Assigned(n.Data) and (Lo(PInteger(n.Data)^)-1=AIndex) then begin
      Result:=n;
      Break;
    end;
    n:=n.GetNext;
  end;
  if not Assigned(Result) then
    Result:=ARoot;
end;

begin
  if MSIC.USB.USBNodeCount>0 then
    with Tree.Items do
      with MSIC.USB do begin
        new(pi);
        pi^:=256*BYTE(msicUSB);
        n2:=AddChildObject(ARoot,rsUSB,pi);
        for i:=0 to USBNodeCount-1 do
          with USBNodes[i] do begin
            s:='';
            case USBClass of
              usbHostController: s:=s+Format('%s %d',[ClassNames[integer(USBClass)],USBDevice.Port]);
              usbHub: s:=s+ClassNames[integer(USBClass)];
              else begin
                if USBDevice.ConnectionStatus=1 then begin
                  if USBClass=usbExternalHub then
                    s:=s+Format('Port[%d]: %s',[USBDevice.Port,ClassNames[integer(USBClass)]])
                  else
                    s:=s+Format('Port[%d]: %s',[USBDevice.Port,ClassNames[integer(USBClass)]]);
                end else begin
                  s:=s+Format('Port[%d]: %s',[USBDevice.Port,ConnectionStates[USBDevice.ConnectionStatus]]);
                end;
              end;
          end;
        r:=FindUSBNode(n2,ParentIndex);
        new(pi);
        if (USBClass in [usbReserved..usbStorage,usbVendorSpec,usbUnknown,usbError]) then
          pi^:=(i+1)+256*Byte(msicUSB)
        else
          pi^:=(i+1)+256*Byte(msicOther);
        Tree.Items.AddChildObject(r,s,pi);
      end;
    end;
end;

procedure Tmdi_msi_Viewer.TreeDeletion(Sender: TObject; Node: TTreeNode);
begin
  if Assigned(Node) and Assigned(Node.Data) then
    Dispose(PInteger(Node.Data));
end;

procedure Tmdi_msi_Viewer.CreateMotherboardTree(ARoot: TTreeNode);
var
  n1,n2,n3: TTreeNode;
  pi: PInteger;
  i: Integer;
begin
  with Tree, Items do begin
    new(pi);
    pi^:=256*BYTE(msicMotherboard);
    n1:=AddChildObject(ARoot,rsMotherboard,pi);
    new(pi);
    pi^:=256*BYTE(msicDevice);
    n2:=AddChildObject(n1,Format('%s %s',[rsACPI,rsDevices]),pi);
    with MSIC.Devices do
      for i:=0 to DeviceCount-1 do   
        if (Pos('ACPI\',Devices[i].HardwareID)=1) then begin
          new(pi);
          pi^:=(i+1)+256*BYTE(msicDevice);
          AddChildObject(n2,Devices[i].Name,pi);
        end;
    new(pi);
    pi^:=256*BYTE(msicSMBIOS);
    n2:=AddChildObject(n1,rsSMBIOS,pi);
    new(pi);
    pi^:=256*BYTE(msicSMBIOSBIOS);
    AddChildObject(n2,rsBIOS,pi);
    new(pi);
    pi^:=256*BYTE(msicSMBIOSSystem);
    AddChildObject(n2,rsSystem,pi);
    new(pi);
    pi^:=256*BYTE(msicSMBIOSMainboard);
    AddChildObject(n2,rsMainboard,pi);
    new(pi);
    pi^:=256*BYTE(msicSMBIOSChassis);
    AddChildObject(n2,rsChassis,pi);
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,rsProcessor,pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to ProcessorCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*BYTE(msicSMBIOSProcessor);
        AddChildObject(n3,Format('%s',[Processor[i].Manufacturer]),pi);
      end;
    new(pi);
    pi^:=256*BYTE(msicSMBIOSMemCtrl);
    AddChildObject(n2,Format('%s %s',[rsMemory,rsController]),pi);
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,Format('%s %s',[rsMemory,rsModules]),pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to MemoryModuleCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*BYTE(msicSMBIOSMemoryModule);
        AddChildObject(n3,Format('%s',[MemoryModule[i].Socket]),pi);
      end;
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,Format('%s %s',[rsMemory,rsDevices]),pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to MemoryDeviceCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*BYTE(msicSMBIOSMemoryDevice);
        AddChildObject(n3,Format('%s',[MemoryDevice[i].DeviceLocator]),pi);
      end;
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,rsCache,pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to CacheCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*BYTE(msicSMBIOSCache);
        AddChildObject(n3,Format('%s',[Cache[i].Designation]),pi);
      end;
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,rsPortConnectors,pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to PortCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*BYTE(msicSMBIOSPort);
        AddChildObject(n3,Format('%s',[PortTypes[Port[i].Typ]]),pi);
      end;
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,Format('%s %s',[rsSystem,rsSlots]),pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to SystemSlotCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*Byte(msicSMBIOSSystemSlot);
        AddChildObject(n3,Format('%s',[SlotTypes[SystemSlot[i].Typ]]),pi);
      end;
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,Format('%s %s',[rsOnBoard,rsDevices]),pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to OnBoardDeviceCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*Byte(msicSMBIOSOnBoardDevice);
        AddChildObject(n3,Format('%s',[OnBoardDevice[i].DeviceName]),pi);
      end;
    new(pi);
    pi^:=256*BYTE(msicOther);
    n3:=AddChildObject(n2,Format('%s %s',[rsTemperature,rsProbe]),pi);
    with MSIC.Machine.SMBIOS do
      for i:=0 to TemperatureProbeCount-1 do begin
        new(pi);
        pi^:=(i+1)+256*Byte(msicSMBIOSTemperatureProbe);
        AddChildObject(n3,Format('%s',[TemperatureProbe[i].Description]),pi);
      end;
  end;
end;

procedure Tmdi_msi_Viewer.CreateCPUTree(ARoot: TTreeNode);
var
  n1,n2,n3: TTreeNode;
  pi: PInteger;
  i,c: Integer;
  s: string;
begin
  with Tree, Items do begin
    new(pi);
    pi^:=256*Byte(msicCPU);
    n1:=AddChildObject(ARoot,rsCentralProcessor,pi);
    with MSIC.CPU do begin
      c:=CPUCount;
      for i:=0 to c-1 do begin
        CPUIndex:=i;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲摸摸操操av| 国产网站一区二区| 日韩欧美中文字幕制服| 精品国产青草久久久久福利| 国产婷婷色一区二区三区| 一区二区在线电影| 国产一区二区三区在线观看免费| 成人看片黄a免费看在线| 欧美绝品在线观看成人午夜影视| 精品久久久久久久久久久久久久久| 亚洲人成网站色在线观看| 久久精品av麻豆的观看方式| 色8久久人人97超碰香蕉987| 精品理论电影在线| 亚洲午夜久久久久| av午夜一区麻豆| 欧美一级搡bbbb搡bbbb| 亚洲欧美另类图片小说| 国产精品综合一区二区| 欧美美女黄视频| 亚洲卡通动漫在线| 成人午夜av影视| 久久夜色精品国产欧美乱极品| 亚洲动漫第一页| 高清成人在线观看| 日韩精品在线一区二区| 亚洲国产wwwccc36天堂| 成人av在线网| 国产无一区二区| 久久se精品一区二区| 欧美精品一级二级| 一区二区高清视频在线观看| 国产精品456| 欧美精品一区二区三区蜜桃| 日本免费新一区视频| 欧美主播一区二区三区美女| 成人欧美一区二区三区| 成人一级片网址| 久久精品欧美日韩精品| 国内精品久久久久影院色| 欧美一区二区福利在线| 亚洲h动漫在线| 欧美视频在线观看一区二区| 一区二区欧美在线观看| 91久久精品国产91性色tv| 亚洲欧美偷拍另类a∨色屁股| 日本少妇一区二区| 91麻豆精品91久久久久同性| 亚洲国产wwwccc36天堂| 这里只有精品99re| 免费日韩伦理电影| 欧美日本视频在线| 日本不卡视频在线观看| 日韩欧美一级片| 另类专区欧美蜜桃臀第一页| 日韩精品一区二区三区三区免费| 久久99在线观看| 56国语精品自产拍在线观看| 五月婷婷激情综合| 91精品国产欧美一区二区成人| 五月激情综合色| 日韩美女视频在线| 国产成人综合在线观看| 一区在线观看视频| 欧美亚洲高清一区二区三区不卡| 一区二区在线观看免费| 欧美老年两性高潮| 亚洲国产你懂的| 欧美一区二区三区四区在线观看| 极品少妇一区二区| 国产精品久久久久久久久免费樱桃 | 亚洲黄色性网站| 欧美视频一区二区| 久久精品久久99精品久久| 国产欧美一区二区精品性色超碰| 91老司机福利 在线| 亚洲影院久久精品| 欧美精品一区二区高清在线观看| 白白色 亚洲乱淫| 亚洲成人av一区二区三区| 欧美一区二区二区| 99久久精品一区二区| 青青草国产精品97视觉盛宴| 国产精品美女久久久久av爽李琼| 欧美日韩一区精品| 国产老女人精品毛片久久| 综合色天天鬼久久鬼色| 日韩欧美国产成人一区二区| 99riav一区二区三区| 日韩电影免费一区| 国产精品久久久久影院老司 | 国产一区二区三区免费在线观看| 精品奇米国产一区二区三区| 99免费精品在线| 久久精品久久99精品久久| 国产精品久久久久久久久晋中 | 欧美成人一区二区三区| 欧美中文字幕不卡| 色老汉av一区二区三区| 成人激情免费网站| 国产99久久久精品| 精品一区二区免费视频| 精品一区二区三区免费| 久久国产尿小便嘘嘘| 老司机精品视频在线| 久久97超碰国产精品超碰| 日一区二区三区| 免费成人在线影院| 极品少妇一区二区三区精品视频| 精品一区二区三区香蕉蜜桃| 免费成人在线影院| 激情小说亚洲一区| 国产乱子伦一区二区三区国色天香| 久久er精品视频| 极品少妇xxxx偷拍精品少妇| 久久99精品视频| 国产成都精品91一区二区三| 成人三级在线视频| av电影在线观看不卡| 色av一区二区| 欧美美女一区二区| 精品久久一区二区| 国产蜜臀av在线一区二区三区| 国产精品视频线看| 亚洲一区二区综合| 日本女人一区二区三区| 国产在线播放一区三区四| 丰满白嫩尤物一区二区| 91视频免费观看| 在线不卡免费欧美| 欧美精品一区二区三区高清aⅴ| 日本一区二区免费在线| 樱桃国产成人精品视频| 午夜视频在线观看一区二区三区| 看电影不卡的网站| 成人99免费视频| 欧美日韩在线三区| 日韩精品中文字幕在线一区| 国产精品女上位| 亚洲大片在线观看| 国产成人aaaa| 欧美日韩精品一区二区| 久久嫩草精品久久久精品一| 亚洲日本乱码在线观看| 日本在线不卡视频| 成人av在线网| 91精品国产一区二区人妖| 国产人成亚洲第一网站在线播放| 尤物视频一区二区| 国产一区二区剧情av在线| 91黄色免费观看| 久久网站最新地址| 亚洲国产精品自拍| 国产成+人+日韩+欧美+亚洲| 欧美日韩中文字幕一区| 久久久蜜臀国产一区二区| 曰韩精品一区二区| 国产一区二区三区黄视频| 欧美性猛片xxxx免费看久爱| 国产日产欧美一区| 免费久久精品视频| 91精品1区2区| 国产精品不卡在线观看| 青青草伊人久久| 欧美三级视频在线观看| 国产精品乱码人人做人人爱| 麻豆成人久久精品二区三区小说| 色女孩综合影院| 国产精品久久久久影院老司| 麻豆91在线看| 欧美精品九九99久久| 亚洲欧美另类小说| caoporm超碰国产精品| 国产亚洲精品精华液| 久久9热精品视频| 欧美精品第一页| 亚洲福利视频导航| 色婷婷综合中文久久一本| 国产三级精品三级| 国产美女精品在线| 欧美成人精品二区三区99精品| 亚洲成人免费视频| 欧美三级蜜桃2在线观看| 亚洲另类中文字| 色婷婷av一区二区三区gif| 成人免费在线视频| jizz一区二区| 国产精品全国免费观看高清| 国产传媒日韩欧美成人| 国产校园另类小说区| 国产大片一区二区| 亚洲国产精品传媒在线观看| 国产裸体歌舞团一区二区| 久久综合精品国产一区二区三区| 久久99国产精品久久| 精品电影一区二区三区| 国内精品国产成人| 欧美激情在线免费观看| 成人黄色小视频| 亚洲精品国产视频|