COMの呼び出しサンプル(Ver8.91対応版)
目次COMの呼び出し− サンプル
COMオブジェクトの呼び出しサンプルです。

●プログラム起動
//WSH(VBS)
//	Set objShell = WScript.CreateObject("WScript.Shell")
//	objShell.Run "notepad.exe"

#objShell = createobject("WScript.Shell");
callmethod #objShell, "Run", "notepad.exe";
endmacro;

●FileSystemObjectを使ったファイルの書き込み
$file="C:\\Folder\\File.txt";
$savetext="保存テキスト";
#objFso=createobject("Scripting.FileSystemObject");
#objFile=member(#objFso,"OpenTextFile",$file,2,1);
member #objFile,"WriteLine",$savetext;
member #objFile,"Close";
endmacro;

●FileSystemObjectを使ったファイルの読込み
$file="C:\\Folder\\File.txt";
#objFso=createobject("Scripting.FileSystemObject");
#objFile=member(#objFso,"OpenTextFile",$file);
$strLine=member(#objFile,"ReadLine");
member #objFile,"Close";
message $strLine;
endmacro;

●FileSystemObjectを使ったファイルの列挙
$dir="C:\\Folder";
newfile;
insert $dir+"\n";
#objFSO = createobject("Scripting.FileSystemObject");
#objFolder = callmethod_returnobj(#objFSO,"GetFolder",$dir);
#objFiles = getpropobj(#objFolder,"Files");
#c = getpropnum(#objFiles,"Count");
insert "ファイル数="+str(#c)+"\n";
while(1){
  #objFile = getcollection(#objFiles);
  if(#objFile==0)break;
  insert getpropstr(#objFile,"Name")+"\n";
  releaseobject #objFile;
}
releaseobject #objFiles;
releaseobject #objFolder;
releaseobject #objFSO;
endmacro;
参考:memberを使う方法もあります。

●FileSystemObjectを使ったファイルやドライブの情報取得
#objFSO = createobject("Scripting.FileSystemObject");
$strPath = "C:\\Folder\\File.txt";
message $strPath + "\n"
  + member( #objFSO, "GetDriveName", $strPath ) + "\n"
  + member( #objFSO, "GetFileName", $strPath ) + "\n"
  + member( #objFSO, "GetBaseName", $strPath ) + "\n"
  + member( #objFSO, "GetExtensionName", $strPath ) + "\n"
  + member( #objFSO, "GetParentFolderName", $strPath );
releaseobject #objFSO;
endmacro;

●エクセルのセル内容取得
//WSH(VBS)
//	Set objExcel = WScript.GetObject("c:\folder\test.xls")
//	WScript.Echo objExcel.Sheets("Sheet1").Cells(1,1)

#objXls = getobject("C:\\folder\\test.xls");
#objSheet = member(#objXls, "Sheets", "Sheet1" );
#objCells = member( #objSheet, "Cells" );
#objCell = member(#objCells,"Item", 1,1);
message member( #objCell );	//デフォルトのプロパティ
endmacro;

●Webページの内容を挿入
#obj = createobject("InternetExplorer.Application");
setpropnum #obj,"Visible",1;
callmethod #obj, "Navigate", "http://hide.maruo.co.jp/";
while(1){
	if( getpropnum(#obj,"Busy") == 0 ) break;
	sleep 100;
}
//#obj.Document.body.innerText
$a=getpropstr(getpropobj(getpropobj(#obj,"Document"),"body"),"innerText");
insert $a;
releaseobject #obj;
endmacro;

●ディスク容量一覧
//WSH(VBS)
//	Set DiskSet = GetObject("winmgmts:").InstancesOf ("Win32_LogicalDisk")
//	for each Disk in DiskSet
//		WScript.Echo Disk.FreeSpace
//	next

insert "\nディスク容量一覧\n";
#objWMI = getobject("winmgmts:");
#objDisks = member( #objWMI, "InstancesOf", "Win32_LogicalDisk");
while( 1 ) {
	#objDisk = getcollection( #objDisks );
	if( #objDisk == 0 ) break;
	insert member( member( #objDisk, "Properties_", "Name" ) ) + 
			member( member( #objDisk, "Properties_", "FreeSpace" ) ) + "\n";
}
#objDisk = getcollection( #objDisks, 3 );
releaseobject(#objWMI);
endmacro;