掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WshのスクリプトをDelphiで使うには (ID:2306)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
もしかしたら出来るかもしれません。 objComputer = GetObject("winmgmts:{impersonationLevel=impersonate}") にあたるDelphiコードは、 Locator := CreateOleObject('WbemScripting.SWbemLocator'); Service := Locator.ConnectServer(); になります。 "!//コンピュータ名"がつくのなら、ConnectServerの引数に渡せばできそうです。 # 引数に関しては調べ切れませんでした 試しにドライブ一覧を出すスクリプトを、Delphiでコーディングする例を出そうと思ったのですが、一覧する部分(For each Disk in DiskSetの部分)がわかりませんでした。 一応、途中までのソースです。 procedure TForm1.Button1Click(Sender: TObject); var Locator: OleVariant; Service: OleVariant; DiskSet: OleVariant; Disk: OleVariant; i: integer; Count: Integer; e: Variant; begin Locator := CreateOleObject('WbemScripting.SWbemLocator'); Service := Locator.ConnectServer(); DiskSet := Service.ExecQuery('Select * From Win32_LogicalDisk Where DriveType=3'); Memo1.Lines.Add(IntToStr(VarArrayDimCount(DiskSet))); Count := DiskSet.Count; //e := DiskSet.GetQuery; for i := 1 to Count do begin Disk := DiskSet.Data[i]; // ← ここが間違い Memo1.Lines.Add('Drive ' + Disk.Name + ':'); end; end; 以下は、WSHのソースです。 Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator") Set Service = Locator.ConnectServer() Set DiskSet = Service.ExecQuery("Select * From Win32_LogicalDisk Where DriveType=3") For Each Disk In DiskSet WScript.Echo "Drive " + Disk.Name + ":" Next
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.