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

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

?? summary.pas

?? 一個很不錯的系統信息控件
?? PAS
字號:
unit Summary;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ExtCtrls, StdCtrls, ComCtrls;

type
  Twnd_msi_Summary = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    DataPanel: TPanel;
    OverviewIcon: TImage;
    lMachine: TLabel;
    Panel2: TPanel;
    lCount: TLabel;
    bSave: TButton;
    sd: TSaveDialog;
    pc: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    Panel3: TPanel;
    HWList: TListView;
    Panel4: TPanel;
    SWList: TListView;
    Panel5: TPanel;
    OSList: TListView;
    TabSheet4: TTabSheet;
    Panel6: TPanel;
    NetList: TListView;
    procedure FormCreate(Sender: TObject);
    procedure bSaveClick(Sender: TObject);
    procedure HWListCompare(Sender: TObject; Item1, Item2: TListItem;
      Data: Integer; var Compare: Integer);
    procedure HWListColumnClick(Sender: TObject; Column: TListColumn);
    procedure HWListAdvancedCustomDrawSubItem(Sender: TCustomListView;
      Item: TListItem; SubItem: Integer; State: TCustomDrawState;
      Stage: TCustomDrawStage; var DefaultDraw: Boolean);
    procedure HWListAdvancedCustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
      var DefaultDraw: Boolean);
  private
  public
    procedure ExportCSV(AList: TListView; AFilename: string);
    procedure RefreshData;
  end;

procedure ShowSummaryReport;

var
  wnd_msi_Summary: Twnd_msi_Summary;

implementation

uses Main, Viewer, MSI_CPU, MiTeC_WinIOCTL, MiTeC_CtrlRtns, MSI_Network;

{$R *.dfm}

procedure ShowSummaryReport;
begin
  with Twnd_msi_Summary.Create(Application.Mainform) do
    try
      Screen.Cursor:=crHourglass;
      try
        RefreshData;
      finally
        Screen.Cursor:=crDefault;
      end;
      ShowModal;
    finally
      Free;
    end;
end;

{ Twnd_msi_Summary }

procedure Twnd_msi_Summary.bSaveClick(Sender: TObject);
begin
  case pc.ActivePage.PageIndex of
    0: sd.FileName:='HW.csv';
    1: sd.FileName:='SW.csv';
    2: sd.FileName:='OS.csv';
    3: sd.FileName:='Network.csv';
  end;
  if not sd.Execute then
    Exit;
  case pc.ActivePage.PageIndex of
    0: ExportCSV(HWList,sd.FileName);
    1: ExportCSV(SWList,sd.FileName);
    2: ExportCSV(OSList,sd.FileName);
    3: ExportCSV(NetList,sd.FileName);
  end;
end;

procedure Twnd_msi_Summary.ExportCSV;
var
  i,j: Integer;
  s,f: string;
  sl: TStringList;
begin
  sl:=TStringList.Create;
  try
    s:='';
    for i:=0 to AList.Columns.Count-1 do
      s:=s+AList.Column[i].Caption+';';
    Setlength(s,Length(s)-1);
    sl.Add(s);
    for j:=0 to AList.Items.Count-1 do begin
      s:='';
      for i:=0 to AList.Columns.Count-1 do begin
        if i=0 then
          f:=AList.Items[j].Caption
        else
          f:=AList.Items[j].SubItems[i-1];
        {if AList.Column[i].Alignment<>taRightJustify then
          f:='"'+f+'"';}
        s:=s+f+';'
      end;
      Setlength(s,Length(s)-1);
      sl.Add(s);
    end;
    sl.SaveToFile(AFilename);
  finally
    sl.Free;
  end;
end;

procedure Twnd_msi_Summary.FormCreate(Sender: TObject);
begin
  pc.ActivePage:=Tabsheet1;

  {$IFDEF D7PLUS}
  DataPanel.ParentBackground:=False;
  {$ENDIF}
end;

procedure Twnd_msi_Summary.HWListAdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
begin
  if ListView_SortColumn=0 then
    Sender.Canvas.Brush.Color:=clInfoBk
  else
    Sender.Canvas.Brush.Color:=clWhite
end;

procedure Twnd_msi_Summary.HWListAdvancedCustomDrawSubItem(
  Sender: TCustomListView; Item: TListItem; SubItem: Integer;
  State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
begin
  if ListView_SortColumn=SubItem then
    Sender.Canvas.Brush.Color:=clInfoBk
  else
    Sender.Canvas.Brush.Color:=clWhite
end;

procedure Twnd_msi_Summary.HWListColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  TListView(Sender).SortType:=stNone;
  if Column.Index<>ListView_SortColumn then begin
    ListView_SortColumn:=Column.Index;
    ListView_SortDescending:=False;
  end else
    ListView_SortDescending:=not ListView_SortDescending;
  TListView(Sender).SortType:=stText;
end;

procedure Twnd_msi_Summary.HWListCompare(Sender: TObject; Item1, Item2: TListItem;
  Data: Integer; var Compare: Integer);
begin
  Compare:=ListView_CustomSort(Item1,Item2,ListView_SortColumn);
  if ListView_SortDescending then
    Compare:=-Compare;
end;

procedure Twnd_msi_Summary.RefreshData;
var
  i,j: Integer;
  s1,s2,osn: string;
  t,c,cn,dn,tn: Integer;
  l: TListItem;
begin
  with wnd_msi_Main do begin
    lCount.Caption:=Format('Count: %d',[MDIChildCount]);
    for i:=0 to MDIChildCount-1 do begin
      with Tmdi_msi_Viewer(MDIChildren[i]) do begin
        with HWList.Items.Add, MSIC do begin
          Caption:=Machine.MachineName;
          SubItems.Add(IntToStr(CPU.CPUPhysicalCount));;
          SubItems.Add(cVendorNames[CPU.Vendor].Prefix);
          SubItems.Add(CPU.CPUName);
          SubItems.Add(IntToStr(CPU.Frequency));
          t:=0;
          for j:=0 to Machine.SMBIOS.MemoryModuleCount-1 do
            t:=t+Machine.SMBIOS.MemoryModule[j].Size;
          if t=0 then begin
            for j:=0 to Machine.SMBIOS.MemoryDeviceCount-1 do
              t:=t+Machine.SMBIOS.MemoryDevice[j].Size;
          end;
          if t=0 then
            t:=Memory.PhysicalTotal shr 20;
          SubItems.Add(IntToStr(t));
          t:=0;
          c:=0;
          cn:=0;
          dn:=0;
          tn:=0;
          for j:=0 to Storage.PhysicalCount-1 do begin
            if not Storage.Physical[j].Removable and (Storage.Physical[j].DeviceType=FILE_DEVICE_DISK) then begin
              Inc(c);
              t:=t+Storage.Physical[j].Size shr 30;
            end;
            if Storage.Physical[j].DeviceType=FILE_DEVICE_CD_ROM then
              Inc(cn);
            if Storage.Physical[j].DeviceType=FILE_DEVICE_DVD then
              Inc(dn);
            if Storage.Physical[j].DeviceType=FILE_DEVICE_TAPE then
              Inc(tn);
          end;
          SubItems.Add(IntToStr(c));
          SubItems.Add(IntToStr(t));
          SubItems.Add(IntToStr(cn));
          SubItems.Add(IntToStr(dn));
          SubItems.Add(IntToStr(tn));
          SubItems.Add(Trim(Format('%s %s',[Trim(Machine.SMBIOS.SystemManufacturer),
                                     Trim(Machine.SMBIOS.SystemModel)])));
          SubItems.Add(Trim(Format('%s %s',[Trim(Machine.SMBIOS.MainBoardManufacturer),
                                     Trim(Machine.SMBIOS.MainBoardModel)])));

          SubItems.Add(Display.Adapter);
          SubItems.Add('');
          for j:=0 to Network.TCPIP.AdapterCount-1 do
            if Pos('0.0.0.0',Network.TCPIP.Adapter[j].IPAddress.CommaText)=0 then
              SubItems[SubItems.Count-1]:=Network.TCPIP.Adapter[j].Name;
          try
            SubItems.Add(Media.Devices[Media.SoundCardIndex]);
          except
            SubItems.Add('');
          end;
          if LiveData then
            osn:=Format('%s %d.%d.%d %s',[OS.OSName,
                                          OS.MajorVersion,
                                          OS.Minorversion,
                                          OS.BuildNumber,
                                          OS.OSEdition])
          else begin
            {$IFDEF SIS}
            osn:=StorageInfo.OS;
           {$ENDIF}
          end;
          SubItems.Add(osn);
          SubItems.Add(OS.ProductKey);
        end;
        with SWList, MSIC do begin
          for j:=0 to Software.Count-1 do begin
            l:=FindCaption(0,Software.InstallEntry[j].Name,False,True,True);
            if Assigned(l) then begin
              l.SubItems[0]:=IntToStr(StrToInt(l.SubItems[0])+1);
              l.SubItems[1]:=l.SubItems[1]+','+Machine.MachineName;
            end else
              with Items.Add do begin
                Caption:=Software.InstallEntry[j].Name;
                SubItems.Add('1');
                SubItems.Add(Machine.MachineName);
              end;
          end;
        end;
        with OSList, MSIC do begin
          l:=FindCaption(0,osn,False,True,True);
          if Assigned(l) then begin
            l.SubItems[0]:=IntToStr(StrToInt(l.SubItems[0])+1);
            l.SubItems[1]:=l.SubItems[1]+','+Machine.MachineName;
          end else
            with Items.Add do begin
              Caption:=osn;
              SubItems.Add('1');
              SubItems.Add(Machine.MachineName);
            end;
        end;
        with NetList.Items.Add, MSIC do begin
          Caption:=Machine.MachineName;
          s1:='';
          s2:='';
          for j:=0 to Network.TCPIP.AdapterCount-1 do 
            if Pos('0.0.0.0',Network.TCPIP.Adapter[j].IPAddress.CommaText)=0 then begin
              s1:=s1+Network.TCPIP.Adapter[j].IPAddress.CommaText+',';
              s2:=s2+Network.TCPIP.Adapter[j].Address+',';
            end;
          SetLength(s1,Length(s1)-1);
          SetLength(s2,Length(s2)-1);
          SubItems.Add(s1);
          SubItems.Add(s2);
        end;
      end;
    end;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美影视一区二区三区| 1区2区3区国产精品| 91精品国产综合久久久蜜臀粉嫩 | 韩国三级在线一区| 视频一区二区欧美| 亚洲不卡一区二区三区| 亚洲午夜激情网站| 亚洲成人免费观看| 免费看欧美美女黄的网站| 蜜桃av噜噜一区| 精品在线免费视频| 国产精品综合视频| 国产aⅴ综合色| 91丨porny丨户外露出| 91麻豆福利精品推荐| 欧洲生活片亚洲生活在线观看| 日本久久电影网| 欧美三级电影在线观看| 这里只有精品电影| 精品久久久久久久久久久久久久久| 精品久久久久久久人人人人传媒| 国产欧美中文在线| 中文字幕一区二区三区四区| 一区二区三区**美女毛片| 五月综合激情婷婷六月色窝| 捆绑紧缚一区二区三区视频 | 精品视频123区在线观看| 欧美狂野另类xxxxoooo| 日韩一卡二卡三卡| 国产喂奶挤奶一区二区三区| 亚洲天堂网中文字| 日韩精品福利网| 国产精品中文欧美| 色综合天天综合色综合av| 欧美性生交片4| 日韩欧美国产精品一区| 亚洲国产精品成人综合| 亚洲精品网站在线观看| 日本三级亚洲精品| 国产一区二区免费视频| 91老师片黄在线观看| 91精品久久久久久久99蜜桃| 国产欧美久久久精品影院| 亚洲综合免费观看高清完整版在线| 日韩电影在线一区二区| 国产91色综合久久免费分享| 91福利视频网站| 亚洲精品在线一区二区| 亚洲色图在线看| 久草中文综合在线| 91碰在线视频| 精品久久久久久久久久久久久久久久久 | 久久精品视频免费| 亚洲资源中文字幕| 国产乱一区二区| 欧美日韩亚洲不卡| 亚洲精品一区二区三区福利| 国产欧美一区二区三区鸳鸯浴 | 亚洲精品国产无套在线观| 蜜臀av性久久久久av蜜臀妖精 | 精品成人一区二区三区| 亚洲美女一区二区三区| 奇米色一区二区三区四区| 成人国产亚洲欧美成人综合网| 欧美老女人第四色| 中文字幕在线不卡视频| 麻豆精品久久精品色综合| 色久综合一二码| 国产日韩欧美制服另类| 亚洲成人av福利| 99久久99精品久久久久久| 精品成人免费观看| 午夜精品影院在线观看| 99久久99久久精品国产片果冻 | 国产真实精品久久二三区| 在线观看免费视频综合| 国产精品色呦呦| 狠狠色丁香久久婷婷综合_中| 欧美三级中文字幕| 亚洲伦理在线精品| 成人在线综合网站| 欧美精品一区二区久久婷婷| 亚洲成人福利片| 色哟哟欧美精品| 中文字幕亚洲欧美在线不卡| 国产酒店精品激情| 日韩免费视频线观看| 午夜国产精品一区| 欧美日韩专区在线| 亚洲人精品一区| proumb性欧美在线观看| 国产欧美日韩精品在线| 国产在线一区二区| 精品免费国产一区二区三区四区| 亚洲成人久久影院| 欧美日本韩国一区二区三区视频| 亚洲人成网站在线| 成人三级在线视频| 国产蜜臀97一区二区三区 | 久久嫩草精品久久久精品| 久久精品国产久精国产| 91精品国产综合久久福利| 午夜伦欧美伦电影理论片| 7777精品伊人久久久大香线蕉最新版 | 中文字幕在线视频一区| 成人午夜精品一区二区三区| 国产日韩视频一区二区三区| 国产传媒日韩欧美成人| 国产欧美日韩三级| 成人综合日日夜夜| 国产精品国产三级国产普通话蜜臀| 国产成人精品亚洲午夜麻豆| 国产午夜精品久久久久久免费视| 国产成人亚洲精品青草天美 | 国产在线精品免费| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 天堂一区二区在线| 欧美一级久久久| 精品一区二区三区在线观看| 日韩欧美一区二区免费| 国产一区二区三区观看| 中文字幕制服丝袜一区二区三区| 色一情一伦一子一伦一区| 亚洲第一福利视频在线| 8v天堂国产在线一区二区| 精品无码三级在线观看视频| 久久免费视频一区| 97aⅴ精品视频一二三区| 亚洲自拍偷拍av| 日韩精品一区二区三区三区免费| 国产一区二区三区观看| 亚洲欧洲一区二区在线播放| 欧美性色综合网| 蜜臀精品一区二区三区在线观看| 久久久综合激的五月天| 99精品国产视频| 午夜在线电影亚洲一区| 久久综合精品国产一区二区三区| 成人免费高清视频在线观看| 亚洲电影第三页| 久久久综合激的五月天| 色婷婷综合在线| 老司机精品视频在线| 国产精品久久久久久妇女6080| 欧美亚洲国产一区二区三区va| 免费高清在线一区| 国产精品国产三级国产aⅴ入口| 欧美在线一区二区| 国内欧美视频一区二区| 亚洲男同性视频| 日韩亚洲电影在线| 99久久精品免费| 日本免费新一区视频| 国产精品理论在线观看| 91精品综合久久久久久| 成人性生交大片免费看中文网站| 亚洲电影第三页| 中文字幕欧美国产| 欧美美女直播网站| 成人精品国产免费网站| 婷婷国产在线综合| 国产精品污污网站在线观看| 6080日韩午夜伦伦午夜伦| 丁香六月久久综合狠狠色| 日本伊人色综合网| 国产精品久久久久久久裸模| 在线播放视频一区| aaa亚洲精品| 久久99精品久久久久久动态图 | 亚洲午夜久久久久久久久久久 | 亚洲午夜av在线| 久久久久国产成人精品亚洲午夜| 欧美亚男人的天堂| 99re这里都是精品| 日本成人在线看| 亚洲一区二区影院| 中文字幕在线观看不卡| 久久久久久日产精品| 91精品国产综合久久久久久久 | 欧美日韩一区二区三区四区五区| 国产福利精品一区| 经典三级视频一区| 日韩精品国产精品| 亚洲电影一区二区三区| 亚洲精选一二三| 国产精品国产三级国产普通话99| xf在线a精品一区二区视频网站| 欧美伦理电影网| 91久久人澡人人添人人爽欧美| 国产美女在线观看一区| 久久成人久久鬼色| 日本午夜精品一区二区三区电影| 亚洲国产人成综合网站| 亚洲精品网站在线观看| 成人免费在线播放视频| 亚洲国产精品成人综合| 国产片一区二区| 国产日韩三级在线| 久久久www成人免费无遮挡大片| 欧美不卡一区二区三区|