- ベストアンサー
WMIを使って、あるプログラムで作成されたクラス名を取得できないでしょうか
VBScriptとWMIを使って、あるクラス名を持つクラスが作成されたことを検知するイベントを作成したいと考えています。 Win32_Processクラスでインスタンスが作成されたときに検知などはできるのですが、どうしてもそこからクラス名を取得したり、作成されたサブクラス名を取得することができません。違うクラスを使ったほうが良いでしょうか。 何か良い方法があれば教えていただけないでしょうか。また、マニュアルで表記されているようであれば、その箇所を教えて頂けると助かります。宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
- bob_n
- ベストアンサー率35% (610/1732)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
関連するQ&A
- クラスのインスタンス名をクラス内で取得できますか?
クラスのインスタンス名をクラス内で取得できますか? 今VC++6.0を使っています。例として下記のクラスのコンストラクタで CTest::CTest() { TRACE("%s",typeid(this).name()); } としておいて、 別なクラスで CTest testInst; を生成すると デバッグエリアに 「class CTest *」 と表示することはできました。 これが出来るのなら、インスタンス名 testInst をCTestクラスの内部から 取得することは出来ないのかと思ったのですが、 取得することは可能なのでしょうか?
- ベストアンサー
- C・C++・C#
- 起動しているアプリケーション一覧を取得したい
VBScript等にて、起動しているアプリケーション一覧(タスクマネージャのアプリケーションタグに表示されている)を取得したい 環境は、XPです。 よろしくお願いします。 ※WMIのWin32_Processには、見当たりませんでした
- ベストアンサー
- Windows系OS
- VBSからbat実行(WMI)して戻り値を取得する
WSH初心者です。 WSH(remote.vbs)からWMI使用で別サーバのA.batを実行しているのですが、 A.batの戻り値はどのように取得すれば良いのでしょうか? -■remote.vbs(一部抜粋)------------------------------------------ ' #WMI に接続 Wim32_Process クラスを取り出す Set clsProcess = GetObject("winmgmts:{impersonationLevel=impersonate}" & "!" & リモート先PC & "Win32_Process") ' #プロセスの作成 lngResult = clsProcess.Create(A.bat, null, null, processId) -------------------------------------------------------------- -■A.bat------------------------------------------ exit /B %RetCode% ------------------------------------------------- A.batで返している%RetCode%の値をremote.vbs側で取得したいのです。 どなたかご存じでしたらご教授の程よろしくお願い致します。
- ベストアンサー
- Visual Basic
- クラスでスレッド作成
VC++2008Express WIN32APIでRS232Cの通信用クラスを作成しています。 RS232Cの受信用スレッドを作成して 1ポートの受信処理をするようにはできます。 ですが ポート追加するたびにクラスをインスタンス化して受信用スレッドを 作成したいのですが、スレッド作成するには使用する変数などを staticにしないといけないため、クラスを複数インスタンス化できません。 どのような手法でクラスから複数スレッドを作成することができるのでしょうか? 分かりにくい説明ですが、参考になるものなどありましたら、 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 一番深度が深いインスタンス名の取得
actionscript3.0で作成しております。 一番深度が深いインスタンス名を取得したいのですが、どのようにすれば よいのでしょうか?
- ベストアンサー
- Flash
- Windowsのコンピューター名等を取得するプログラム
お世話になります。 IPアドレスのみがわかっているリモートのWindowsマシン(対象はWin98以上、できればWin95も)の情報を取得する方法を探しています。 ●取得したい情報 ・コンピュータ名 ・Windowsの種類(98や2000、XP) ・Windowsにログインしているユーザー名 これらの情報を取得するためにはどの言語(C,VB,VBScript,JScript他なんでも可)でどんな手順(触りの部分でもかまいません)を使えば実現できるでしょうか? コマンドを実行して出力の内容を整形するというようなことでもOKです。その場合どんなコマンドを使えばよいか示して頂ければと思います。 例えばコンピューター名だったら”nbtstat- A IPアドレス”の結果から取得するなど。 ※リモートのWindowsには何も追加インストールをしない仕組みが良いです。
- ベストアンサー
- その他(プログラミング・開発)
- クラス内のメンバ関数から他クラスのメンバ関数を利用
PHP 5.3.8で、 MySQLデータベースに関する処理をする Database クラスと、ファイルのアップロード処理をする FileUpload クラスがあったとして、ファイルのアップロードが完了したら、そのファイル名をデータベースに書き込む処理をしたいと思っています。 思いつく方法としては、FileUpload クラスの関数内で逐一Databaseクラスをインスタンス化するか、予めインスタンス化したものをグローバル変数として利用するか、Databaseに対するサブクラスとしてFileUploadをextendsするなどがあるとは思いますが、どういうやり方をすれば綺麗にまとまるのか教えて下さい。 あまりクラスに関する知識がないので一般的にどうするかがよくわかっていない状態です。
- ベストアンサー
- PHP
- WMIでのプロセスの起動・終了監視について
WMIでのプロセスの起動・終了監視について ●環境 Microsoft VC++ 6.0 Windows XP Pro ●質問 http://mrxray.on.coocan.jp/Delphi/plSamples/902_WMI_ProcessCreateTerminate.htm の「04_プロセス(アプリケーション)の起動と終了を監視」を参考に、VCに置き換えて作成したのですが途中で詰まってしまいました。 get_Classによる取得までできて、プロセスの作成・終了までは分かるようになったのですが そのプロセスの情報が取得できません(プロセスIDや名前など)、参考にしたページ(Delphi)ではTargetInstanceから取得できるようなのですが、VCではそのプロパティ(?)が見つからず情報を取得出来ませんでした どうすれば、プロセスの情報を取得出来るのでしょうか? よろしくお願いします。 ●ソース _COM_SMARTPTR_TYPEDEF(ISWbemEventSource, __uuidof(ISWbemEventSource)); _COM_SMARTPTR_TYPEDEF(ISWbemObject, __uuidof(ISWbemObject)); _COM_SMARTPTR_TYPEDEF(ISWbemObjectPath, __uuidof(ISWbemObjectPath)); ISWbemEventSourcePtr SWbemEventSourcePtr; hResult = SWbemServices->ExecNotificationQuery(_bstr_t(L"SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_Process'"), _bstr_t(L"WQL"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &SWbemEventSourcePtr); while(TRUE) { ISWbemObjectPtr SWbemObjectPtr; hResult = SWbemEventSourcePtr->NextEvent(-1, &SWbemObjectPtr); CString ccc; { ISWbemObjectPathPtr SWbemObjectPathPtr; hResult = SWbemObjectPtr->get_Path_(&SWbemObjectPathPtr); CComBSTR ClassString; hResult = SWbemObjectPathPtr->get_Class(&ClassString); ccc = ClassString; } ■■■ここでプロセスに関する情報を取得したい■■■ if(ccc == "__InstanceCreationEvent"){ // プロセス作成 } else if(ccc == "__InstanceDeletionEvent"){ // プロセス終了 } }
- ベストアンサー
- C・C++・C#
- Dimensionクラスの使い方
Javaを始めたばかりの者です。 参考書を読みながら進めていて下記のソースコードで Dimensionクラスを使用している箇所で行き詰まりました。 使われていたのは、以下のコード --------------------------------------------------------------------------------------------------------------------- import java.awt.*; import javax.swing.*; import java.util.*; class xxx{ static public void main(String[] argv){ /*標準入力からmsgに文字列を入力*/ String msg = scan.next(); /*JLabelクラス型のオブジェクト型変数を作成し、インスタンスを生成*/ JLabel label = new JLabel(msg); /*JLabelのインスタンスのコンストラクタに入力されたmsgのサイズを取得*/ Dimension dim = label.getPreferredSize(); ・・・etc } } ---------------------------------------------------------------------------------------------------------------------- 自分が今まで使ってきたクラスは下記のような感じで使っていましたが、ここではnewしていない。 これは、どういうことなんでしょうか? クラス名 dim = new クラス名(); インスタンス作成 = コンストラクタの呼び出し。 new演算子はクラスのコンストラクタを呼び出している理解ですが Dimension dim = label.getPreferredSize(); 上記のコードではDimentionクラスのインスタンスは作られていないということだと思います。 ということは、 ここでは何をしているのでしょうか? どなたか、教えて下さい。
- ベストアンサー
- Java
- XPEmbeddedによるWMI利用について
WMIを利用したソフトをVBで作っていますが、XPEmbeddedにて実行すると 「ActiveXコンポーネントを作成できませんでした」 ( ActiveX component Can't create object) とエラーがでます。 //////エラー箇所///// Set Locator = New WbemScripting.SWbemLocator ・・・VB6で開発した場合 Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator") ・・・VBSで実行した場合 wbemtest.exeでWMIテスターによる各種情報取得はできるのは確認しました。 XPEmbeddedでWMIを利用する際は、他に何かしなければいけないのでしょうか? 対処法があれば教えて頂ければ幸いです。
- 締切済み
- その他(Windows)
お礼
ありがとうございます。早速調べてみます。ご協力ありがとうございました。