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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? viewer.pas

?? 一個很不錯的系統(tǒng)信息控件
?? 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一区二区三区免费野_久草精品视频
国产酒店精品激情| 亚洲视频香蕉人妖| 精品综合久久久久久8888| 91精品在线免费观看| 亚洲高清免费在线| 日韩三级伦理片妻子的秘密按摩| 日韩精品一二三| 26uuu亚洲综合色欧美| 国产黄色91视频| 亚洲欧美日韩国产一区二区三区| 欧美亚洲综合一区| 久久精品噜噜噜成人av农村| 欧美精品一区二区三区四区 | 国产欧美中文在线| 99久久综合国产精品| 亚洲一二三专区| 精品剧情v国产在线观看在线| 国产成人精品三级麻豆| 亚洲精品一二三区| 欧美成人在线直播| 91影院在线观看| 免费看黄色91| 18欧美亚洲精品| 欧美高清激情brazzers| 国产福利一区二区三区| 亚洲成av人片一区二区三区| 精品国产91亚洲一区二区三区婷婷| 成人小视频免费观看| 午夜精品久久久久久久久| 中文字幕精品—区二区四季| 欧美日韩在线播放一区| 国产福利一区二区三区视频在线 | 中文字幕永久在线不卡| 欧美精品色综合| 国产v综合v亚洲欧| 亚洲超碰精品一区二区| 国产欧美一区二区精品久导航 | 国产成人一区在线| 亚洲国产sm捆绑调教视频| 久久精品一区二区| 欧美日本高清视频在线观看| 丁香天五香天堂综合| 日韩影院精彩在线| 亚洲欧美日韩电影| 国产精品日日摸夜夜摸av| 日韩三级精品电影久久久| 在线免费观看日韩欧美| 成人黄色在线网站| 美女在线一区二区| 亚洲午夜久久久久久久久电影院| 亚洲国产成人在线| 久久这里只精品最新地址| 欧美猛男gaygay网站| 91香蕉视频污在线| 国产91在线观看| 久久国产乱子精品免费女| 亚洲国产精品精华液网站| 最近中文字幕一区二区三区| 2020国产精品久久精品美国| 欧美日韩一区二区三区四区| 91首页免费视频| 粉嫩在线一区二区三区视频| 精品影院一区二区久久久| 日韩国产在线观看一区| 亚洲午夜久久久| 一区二区三区欧美视频| 国产精品人人做人人爽人人添| 久久久久国产精品麻豆 | 国产欧美日韩激情| 久久香蕉国产线看观看99| 欧美一区二区三区婷婷月色| 欧美影视一区二区三区| 91久久国产最好的精华液| 99综合电影在线视频| 成人一区二区视频| 成人性视频免费网站| 不卡影院免费观看| 99精品国产一区二区三区不卡 | 欧美影视一区二区三区| 色av成人天堂桃色av| 色婷婷国产精品综合在线观看| 91同城在线观看| 色综合 综合色| 在线观看日韩毛片| 制服.丝袜.亚洲.中文.综合| 欧美一区二视频| 日韩免费高清av| 久久久天堂av| 国产精品美女久久久久aⅴ国产馆| 欧美激情一区二区| 亚洲男人电影天堂| 亚洲图片欧美一区| 麻豆精品国产91久久久久久| 国产永久精品大片wwwapp| 丁香五精品蜜臀久久久久99网站| av中文字幕一区| 欧美日韩精品一区二区三区四区 | 国产精品一区二区黑丝| 成人丝袜高跟foot| 在线一区二区视频| 欧美一卡2卡三卡4卡5免费| 久久嫩草精品久久久精品一| 国产精品女主播在线观看| 亚洲激情图片小说视频| 蜜臀久久99精品久久久久久9| 国产一区二区三区黄视频| 色综合久久66| 日韩女优电影在线观看| 国产精品乱人伦一区二区| 亚洲午夜久久久久久久久电影网| 久久国产综合精品| 99视频在线精品| 欧美一区二区三区精品| 日本一区二区三区久久久久久久久不| 亚洲精品久久久蜜桃| 久久精品国产99国产| 91免费观看国产| 精品成人一区二区三区| 亚洲精品视频免费看| 激情小说亚洲一区| 91视频国产观看| 精品国产伦一区二区三区免费 | 国产精品福利一区| 日本人妖一区二区| 色综合天天综合| 欧美精品一区男女天堂| 亚洲午夜激情网站| 懂色av噜噜一区二区三区av| 欧美三级一区二区| 国产精品免费网站在线观看| 爽好多水快深点欧美视频| www.成人在线| 久久综合资源网| 天天亚洲美女在线视频| 9i看片成人免费高清| 亚洲精品在线三区| 三级在线观看一区二区| 99精品黄色片免费大全| 国产婷婷一区二区| 青青草成人在线观看| 日本高清成人免费播放| 国产精品无人区| 国产在线精品免费| 欧美一区二视频| 五月婷婷久久丁香| 91麻豆精品视频| 国产日韩一级二级三级| 欧美aaaaaa午夜精品| 在线不卡欧美精品一区二区三区| 综合网在线视频| 国产·精品毛片| 久久午夜色播影院免费高清| 蜜桃精品视频在线| 欧美精品日韩精品| 亚洲一区在线播放| 色婷婷久久久久swag精品 | 26uuu精品一区二区三区四区在线| 亚洲最大的成人av| 色婷婷激情综合| 玉足女爽爽91| 欧美性一二三区| 亚洲一区二区五区| 欧美亚洲自拍偷拍| 亚洲第一狼人社区| 欧美精品第一页| 亚洲v中文字幕| 日韩一区二区三免费高清| 天天影视涩香欲综合网| 欧美一二三四在线| 韩国成人精品a∨在线观看| 精品卡一卡二卡三卡四在线| 狠狠色狠狠色合久久伊人| 久久伊人中文字幕| 国产精品99久久久久久有的能看| 欧美精品一区二区三区久久久| 国产尤物一区二区在线| 欧美国产日韩精品免费观看| 成人av午夜影院| 一个色妞综合视频在线观看| 欧美午夜一区二区三区| 日韩国产精品久久| 欧美精品一区二区三区久久久| 高清视频一区二区| 亚洲天堂成人网| 欧美美女黄视频| 国产综合色产在线精品| 国产精品二三区| 在线日韩av片| 麻豆精品一区二区av白丝在线| 久久久久国产成人精品亚洲午夜| 成人永久免费视频| 亚洲国产日日夜夜| 精品国产污污免费网站入口| 成人精品小蝌蚪| 亚洲电影视频在线| 久久一区二区三区四区| 99精品视频一区二区| 视频在线观看一区| 久久精品男人的天堂| 日本精品一级二级|