2011-09-09 14 views
0

Microsoft JScriptを使用してウィンドウの有効/無効のステータスを照会することはできますか?Microsoft JScriptを使用してウィンドウの有効/無効ステータスを照会することはできますか?

私はこの作業コード

#include <windows.h> 
#include <iostream> 
#include <string> 

BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam) 
{ 
    wchar_t text[80]; 
    if (::GetWindowText(hwnd, text, 80)) { 
     if (std::wstring(text).find(L"MyApp") != std::wstring::npos) { 
     std::wcout << ::IsWindowEnabled(hwnd) << L"\t" << text << L"\n"; 
     } 
    } 
    return TRUE; 
} 

int main(int, char**) 
{ 
    while(true){ 
     ::EnumWindows(EnumWindowsProc, 0); 
     ::Sleep(1000); 
    } 
    return 0; 
} 

を持っていると私は、JScriptのスクリプトに変換したい(とcscript.exeを通してそれを実行している)でしょう。

多分WMIでそれを行う方法はありますか?

ありがとうございます。

答えて

1

JScript/WSHもWMIもこの機能を持っていません(WSHのGUI対話機能はSendKeysAppActivateに限定され、WMIはGUIではまったく機能しません)。

ただし、WSH以外のサードパーティのコンポーネントやスクリプト環境を使用しても、コードをコンパイルすることをお勧めします。

たとえば、AutoItスクリプトでは、WinGetState機能を使用してウィンドウの有効/無効状態をチェックできます。この関数をJScriptからAutoIt ActiveX/COMコントロールを介して呼び出すこともできます。

// Note: this code is untested 
var oAutoIt = new ActiveXObject("AutoItX3.Control"); 
var state = oAutoIt.WinGetState("MyApp"); 
var isEnabled = state & 4; 
関連する問題