システム情報について


ともぞう  2005-06-17 09:02:57  No: 15730  IP: 192.*.*.*

マイコンピュータ→システムのプロパティでは無く
マイコンピュータ→管理→コンピュータの管理(ローカル)のプロパティ
の方の「コンピュータ:」の情報を拾って来ることは可能なのでしょうか?

編集 削除
深夜鈍行  2005-06-20 02:15:23  No: 15731  IP: 192.*.*.*

コンピュータの管理から直接、情報を取得する事は出来ないと思いますが
APIやWMIを使ったコードを書けば可能です。

編集 削除
ともぞう  2005-06-20 08:37:51  No: 15732  IP: 192.*.*.*

>深夜鈍行 様

まだDelphiを触ってから浅いのでAPIやWMIを使った事がないのですが
どのようにしたら良いのでしょうか?

編集 削除
RAN  2005-06-20 10:06:27  No: 15733  IP: 192.*.*.*

コンピュータの管理の情報を全て持ってくるのは、おお事ですね。
具体的には、どんな情報が欲しいのでしょう?
もう少し絞った方が回答がつきやすいと思いますよ。

WMIの使用例。「WMIをつかってIPアドレスを変更してみる」
http://homepage3.nifty.com/isayan/dnwmiw32ipcfg.html

Delphi7だと、Microsoft WMI Scripting V1.2 libraryが
インポートの一覧から見つからないのですが、なぜでしょう?

編集 削除
ともぞう  2005-06-20 10:13:29  No: 15734  IP: 192.*.*.*

>RAN 様

メインで持ってくる情報は
・メーカー名
・コンピュータ名
の2つです。
使いまわし等で他に取れるようなら取りたいとは思っているのですが・・・

上記の項目なんですが
「システムのプロパティ」からの取り方はわかったのですが
OSを入れ直したりしているので
「コンピュータの管理」の方からの取ろうとしていたのです

編集 削除
RAN  2005-06-20 11:02:51  No: 15735  IP: 192.*.*.*

コンピュータ名は、GetComputerNameで取れます。
http://forum.nifty.com/fdelphi/faq/00133.htm

編集 削除
ともぞう  2005-06-20 11:09:47  No: 15736  IP: 192.*.*.*

>RAN 様

例のあげ方がまずかったですね
コンピュータ名 → FMV等の機種名の事です

編集 削除
RAN  2005-06-20 11:17:55  No: 15737  IP: 192.*.*.*

たぶん、WMIのWin32_ComputerSystemのManufacturerとModelだと思います。

編集 削除
RAN  2005-06-20 13:30:09  No: 15738  IP: 192.*.*.*

自分のPCはメーカー製でないので、上手く行っているか分からないのですが
こんな感じで如何でしょう?Delphi2005です。

uses
  ActiveX, WbemScripting_TLB;

procedure TForm1.Button2Click(Sender: TObject);
var
  Locator: ISWbemLocator;
  Service: ISWbemServices;
  ObjSet: ISWbemObjectSet;
  Enum: IEnumVariant;
  Obj: OleVariant;
  Value: Cardinal;
begin
  Locator := CoSWbemLocator.Create;
  Service := Locator.ConnectServer('.', 'root\cimv2', '', '', '', '', 0, nil);
  ObjSet:= Service.ExecQuery('SELECT * FROM Win32_ComputerSystem',
    'WQL', wbemFlagReturnImmediately, nil);
  Enum:= (ObjSet._NewEnum) as IEnumVariant;
  while (Enum.Next(1, Obj, Value) = S_OK) do
  begin
    Obj:= IUnknown(Obj) as SWBemObject;
    Edit1.Text := Obj.Manufacturer;
    Edit2.Text := Obj.Model;
  end;
end;

編集 削除
kkk  2005-06-20 13:48:47  No: 15739  IP: 192.*.*.*

他のやりかたとしてBIOS情報からもメーカーやコンピュータの情報が得られます。
http://crystalmark.info/ のCrystalDMI で上を確認してみてください。
DMI 経由でシステム情報を取得しているようです。
C++でのソースコードが入手できます。
http://crystalmark.info/download/

編集 削除
ともぞう  2005-06-20 14:42:09  No: 15740  IP: 192.*.*.*

>RAN 様
WbemScripting_TLB.dcu が見つかりませんというエラーが返ってきてしまいます・・・

>kkk 様
BIOSですか・・・
C++は触った事がないので、今以上に戸惑いそうな予感が・・・

編集 削除
ともぞう  2005-06-20 14:42:09  No: 15741  IP: 192.*.*.*

>RAN 様
WbemScripting_TLB.dcu が見つかりませんというエラーが返ってきてしまいます・・・

>kkk 様
BIOSですか・・・
C++は触った事がないので、今以上に戸惑いそうな予感が・・・

編集 削除
RAN  2005-06-20 15:03:17  No: 15742  IP: 192.*.*.*

タイプライブラリをインポートして下さい。

Delphi2005なら、メニューのコンポーネント。
コンポーネントのインポートで、タイプライブラリの取り込みを選択。
Microsoft WMI Scripting V1.2 libraryです。

編集 削除
RAN  2005-06-20 15:11:42  No: 15743  IP: 192.*.*.*

Delphi7でもMicrosoft WMI Scripting V1.2 libraryはありました。
メニューのプロジェクト。タイプライブラリの取り込みです。

編集 削除
ん?  2005-06-20 15:31:57  No: 15744  IP: 192.*.*.*

> Delphi7でもMicrosoft WMI Scripting V1.2 libraryはありました。

『Delphi7でも』というより、インストールされている DLLによるのでは?

http://www.catv296.ne.jp/~ken-yamada/devmemo/dev01.html
ここによると、XPは「Microsoft WMI Scripting V1.2 library」ですが、
2000は「Microsoft WMI Scripting V1.1 library」らしいです。

というわけで、必要なものが入っていれば、Delphi 3 とか 4 でも、
タイプライブラリの取り込みができる・・・と読みました。

いかがかな?

編集 削除
RAN  2005-06-20 15:34:16  No: 15745  IP: 192.*.*.*

おっしゃるとおりです。
ActiveX コントロールの取り込みを一生懸命見てました orz

編集 削除
junki  2005-06-20 15:38:01  No: 15746  IP: 192.*.*.*

これなんかどうでしょう。Delphi用ですが。

http://blog.livedoor.jp/junki560/archives/17973852.html

編集 削除
りょうた  2005-06-21 09:28:34  No: 15747  IP: 192.*.*.*

↑の実行しても何も表示されてないんですが・・・?

編集 削除
納豆、おくら  2005-06-21 10:03:36  No: 15748  IP: 192.*.*.*

表示されないって?
何事も諦めず、ネバリが肝心。
ネバレば海路の日和あり。

編集 削除
りょうた  2005-06-21 10:26:05  No: 15749  IP: 192.*.*.*

それって表示に時間がかかるって事ですか?

編集 削除
りょうた  2005-06-22 08:41:10  No: 15750  IP: 192.*.*.*

やはりBiosInfo自体のバージョン情報しか出ません

普通に
解凍→コンパイル→実行
で良いんですよね?

編集 削除
未対応?  2005-06-22 10:07:02  No: 15751  IP: 192.*.*.*

BiosHelp\Demos\bin\フォルダにある BiosHelp.exeを実行しても
BIOS情報が表示されないとしたら、そのマシンに対応してないということかな。

編集 削除
りょうた  2005-06-22 11:28:34  No: 15752  IP: 192.*.*.*

その方法でも表示されませんでした
未対応ですか・・・

編集 削除
 2005-06-22 19:36:16  No: 15753  IP: 192.*.*.*

>Edit1.Text := Obj.Manufacturer;
>Edit2.Text := Obj.Model;

このデータ以外に取れるものってあります?
あとコレをTStringList等でファイルに書き込む事はできますか?

編集 削除
RAN  2005-06-22 20:29:12  No: 15754  IP: 192.*.*.*

> このデータ以外に取れるものってあります?

Win32_ComputerSystemだけでも大量にあります。
http://msdn.microsoft.com/library/en-us/wmisdk/wmi/win32_computersystem.asp

その他も色々とありますので、MSDNを見てください。

編集 削除