ワード・エクセル開いているかな? [JavaScript]
前回の「ウィンドウを検索する」でアプリケーションのclass nameを知ることができました。
(ワードやエクセルならネットで検索すれば出てきますが、、)
このclass nameをもとに、ウインドウのタイトルバーの文字列を取得して表示します。
UTF-8、拡張子は.HTAで以下のテキストを保存。
(ワードやエクセルならネットで検索すれば出てきますが、、)
このclass nameをもとに、ウインドウのタイトルバーの文字列を取得して表示します。
UTF-8、拡張子は.HTAで以下のテキストを保存。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ワード・エクセル開いているかな?</title>
<script>
var excel = new ActiveXObject('Excel.Application'); // Excelオブジェクト生成
function officeInfo( className ) {
var resultHtml = ''; // ↓指定したクラス名の1つめのウィンドウのハンドルを取得
var hWnd = excel.ExecuteExcel4Macro( 'CALL("user32", "FindWindowA", "JCJ", "' + className + '", 0)' );
if( hWnd ) { // 取得できたら(0でなければ)、、
do { // ↓ウィンドウが表示状態ならば、ウィンドウハンドルからウィンドウ名を取得
if( excel.ExecuteExcel4Macro( 'CALL("user32", "IsWindowVisible", "JJ", ' + hWnd + ')' ) ) {
resultHtml += '<p>' + excel.ExecuteExcel4Macro( 'CALL("user32", "GetWindowTextA", "2JFJ", ' + hWnd +', 0, 64)' );
} // ↓デスクトップを親ウィンドウとし(0)、現在(hWnd)の次の子ウィンドウを検索
hWnd = excel.ExecuteExcel4Macro( 'CALL("user32", "FindWindowExA", "JJJCJ", 0, ' + hWnd + ', "' +className + '", 0)' );
} while( hWnd );
}
if( !resultHtml ) resultHtml = '<p>Not found (' + className + ')';
document.getElementById('result').innerHTML = resultHtml;
}
</script>
</head>
<body>
<h1>ワード・エクセル開いているかな?</h1>
<p>
<form>
<input type="button" value="Word" onclick="officeInfo('OpusApp')" >
<input type="button" value="Excel" onclick="officeInfo('XLMAIN')" >
<input type="button" value="PowerPoint" onclick="officeInfo('PPTFrameClass')" >
<input type="button" value="Access" onclick="officeInfo('OMain')" >
<input type="reset" value="clear" onclick="document.getElementById('result').innerHTML=''" >
</form>
<p><div id="result"></div>
</body>
</html>
タグ:HTA