• ベストアンサー

PC上のプロセス起動有無を調べたい

JavascriptでPC上のプロセス起動有無を調べたいのです。 たとえば、メモ帳(notepad.exe)が起動していれば"hello"と表示させ 起動していなければ"goodby"と表示させたいのですが、どのように プログラミングすればよいか教えていただけないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.2

WMIを使います。 以下の内容を拡張子「js」というファイルで保存してそのまま実行してみてください。 var WMI = GetObject("winmgmts:\\\\.\\root\\cimv2"); var rs = WMI.ExecQuery("SELECT * FROM Win32_Process WHERE NAME = 'notepad.exe'"); var enumItems = new Enumerator(rs); for (; !enumItems.atEnd(); enumItems.moveNext()) { WScript.echo("hello"); WScript.quit(); } WScript.echo("goodby")

jetsjets
質問者

お礼

サンプルプログラムを作成していただき、本当にありがとうございます。 ご指示通りに実行したところ、意図したとおりに動きました。 これをベースに手を加えていきたいと思います。 このたびは、ありがとうございました。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

Windowsということは、JScriptですよね。VBScriptの方がたくさんサンプルがありますよ。 「WSH プロセス」とかで検索してください。

jetsjets
質問者

お礼

ヒントをいただきありがとうございました。 他の方のプログラム例も参考にすれば、思っていることが実現できそうです。 ありがとうございました。

関連するQ&A

  • 常駐し他のプロセスの起動を取得する方法

    test.exeというプログラムを作ります。 実行すると特定のプロセスの起動を待ちます。 特定のプロセスをnotepad.exeとします。 メモ帳(notepad.exe)が起動されたらtest.exeは何かします。 例えばMessageBox()とかで何か表示します。 どうやればいいのでしょうか? ・特定のプロセスが起動するまで待つ ・起動を検知する というところを教えてください。 VC++です。MFC,ATLなどは使いません。 特にウインドウなどはいらないので数行でできてしまうのであれば winmain()からお願いします。

  • 起動中のプロセスについて

    OSを起動するといくつもプロセスが起動しますが、 その中でいくつか、知らないプロセスが起動しています。 CSRSS.EXE LSASS.EXE SMSS.EXE loadqm.exe 上記のプロセスはなんでしょうか? また、ウィルスと関係がありますか? 宜しくお願いします。

  • PC起動時に特定のプロセスが起動しないようにしたい

    PCにはそこまで詳しくない者です。 近年、パソコンがウィンウィンうなりっぱなしなので、タスクマネージャでいくらか調べてみた所、 iexplore.exeというプロセスが2つ起動していて、それらひとつひとつがCPU使用率約50%分となっており、合計でCPUを100%分占めていたことが分かりました。 それらふたつを「プロセスの終了」してもパソコンの動作に何の不具合もないため、パソコン起動時に毎回タスクマネージャを開いてプロセスの終了をしているのですが、億劫で仕方ありません。 かといって、「ファイル名を指定して実行」→「msconfig」→「スタートアップ」を見ても、iexplore.exeは見つからないので、どうすることもできません。(「全てのプログラム」→「スタートアップ」も同様です。) どうすれば、これらのプロセスを起動させないようにすることができますか。 (ここから先は、回答はして頂かなくても構いません。) また、以下は、CPU使用率ではなくメモリ使用率が高めのプロセスで、かつ「プロセスの終了」をしてもパソコンの動作に支障が見られないものですが、これらもスタートアップから外す術はないのでしょうか。 wuauclt.exe SfCtlCom.exe AppleMobileDeviceService.exe IMJPCMNT.EXE xfdire.exe UfSeAgnt.exe spoolsv.exe. Tmproxy.exe msiexec.exe nvsvc32.exe

  • 起動しているプロセスの確認

    2005の.netです。   If notepadが起動していたら Then ・・・ Else ・・・ End If というのを作りたいのですが、 タスクマネージャのプロセスから確認するというのでしょうか、 直接、起動しているかの確認をさせたいのですが、 教えてもらえないでしょうか。

  • VC++にて_spawnlpでプロセス起動

    Microsoft VisualC++にて_spawnlpを使用してのプロセス起動について質問です。 環境 OS:WindowsXP MS-Visual C++ 6.0 ----------------------------------------------------------------- int i; char cTask[10][50]; //起動するexeのパス&ファイル名 if(i=0; i<10; i++) { /* プロセス起動 */ ret = _spawnlp(_P_NOWAIT,cTask[pno],cTask[pno],NULL); } ----------------------------------------------------------------- 上記プログラムでcTaskに登録されているEXEを起動させています。 cTaskに登録されているEXEは、どれもVC++にてコンソールアプリケーションとして作成しています。 ですので、エクスプローラにて単体で各EXEを起動させると、10個のコンソールが表示されます。 ですが、上記プログラムにてcTaskに登録されているEXEを起動させると、画面上には1個のコンソールしか表示されません。 タスクマネージャで確認すると、全てのEXEは起動していますので、画面上のコンソールが1個に纏められてしまいます。 各EXE毎に10個のコンソールを表示させるようにしたいのですが、どのようにすればよいのでしょうか? 上記プログラムもVC++のコンソールアプリケーションとして作成しました。

  • IE8 の起動で、プロセス (iexplore.exe) が必ず二つ起動するのは正常ですか?

    IE8 を起動すると、プロセス (iexplore.exe) が必ず二つ起動してしまいます。これは正常でしょうか?(IE7 までは、IE7 をひとつ起動すると、プロセス (iexplore.exe) もひとつだけだったように思います)。 インターネット・オプション(詳細設定タブ)の「自動クラッシュ回復機能を有効にする」が関係しているのかと思い、チェックをはずしてみましたが、効果がありませんでした。 IE7 よりも動作も重く感じます。 IE8 においてプロセス (iexplore.exe) が必ず二つ起動してしまうことは正常でしょうか?。 このふたつのプロセスをひとつにすることはできないのでしょうか?。

  • C#で別プロセスを起動

    C#で開発をしています。 デバックモードで別プロセスを起動したいのですが可能でしょうか? System.Diagnostics.Process.Startを使うと別のexeを起動することは できるようですが、デバックモードで呼び出すにはどうしたらいいのでしょうか? 教えてください。 よろしくお願いします。

  • プロセス監視

    VisualBasic6.0でWindows2000上で動くプロセス監視プログラムを開発しています。 監視対象a.exe(仮)を起動させた際に取得したPIDを元に起動状態の監視を行っているのですが、ひとつ気がかりとなっていることがあります。 a.exe(仮)エラー停止直後に、他のプロセスb.exeが起動した際に、a.exe(仮)に割り振られていたPIDがb.exeのプロセスに割り当てられ、プロセス監視プログラムがa.exe(仮)の停止を検知できないという可能性はないでしょうか? WindowsでPID割当ての仕組みにお詳しい方、教えてください。 宜しくお願いします。 尚、a.exe(仮)は起動引数付でマルチ起動させるためプロセス名で起動状態を監視することは出来ません。

  • firefox プロセスが起動して消える

    当方、Windows 7、firefoxのバージョンは覚えてませんが、最新をいれたばかりでした。 昨日、誤ってPCを起動してしまい、眠かったのでついうっかり「起動中」の文字が出ているときに電源長押しで終了してしまいました。 そのせいか、firefoxが立ち上がりません。 ただ、firefoxのバージョンを昨日新しくしたばかりでもありましたので、理由がどちらか判別つきません。 現状は以下の通りです。 1、firefoxのショートカットをダブルクリックすると、プロセスが一瞬だけ起動し、すぐに消えてしまう。 2、firefoxヘルプ サイトで検索して、プロファイルの管理とやらをみてみようとしたが   ” firefox.exe - ProfileManager” を実行すると   ちっちゃい窓が出てくるが、タイトルバーに「Firefox - ユ...」しか表示できないくらい小さい。   そして、窓の中は空白でタイトルバーと同じ高さしかない。(添付画像) 3、Shiftと同時起動でsafeモードになるのかなと思ってみましたが、   同様に、プロセスが一瞬出てくるだけです。 4、他のユーザーでログインしても同様でした。 とりあえず、パニックになっていて、あと何をどうしたらいいのかが分かりません。 これをこう確認したら等、アドバイスいただけると助かります。 よろしくお願いいたします。

  • processコンポーネントの使用方法

    VB.NET2003/1.1FrameWork 現在MSDNライブラリ(プロセスが応答しているかどうかを確認する)を実際に動作させてみようと思っていますが、波線が2箇所にでて困っています。 ご存知の型がいればご教授下さい。 http://msdn2.microsoft.com/ja-jp/library/aykwfbdh(VS.80).aspx 手順:破線部は「」でくくりました 1、フォームにButton1を作成 2、processコンポーネントをForm1に貼付け(process1) 3、Button1_Click(...) ~ 内に以下を記述 Dim myProcesses() As 「process」 myProcesses = 「Process.GetProcessesByName」("notepad.exe") If myProcesses(0).Responding Then myProcesses(0).CloseMainWindow() Else myProcesses(0).Kill() End If ?? 一つ目が"型が必要です。" 二つ目が"'Process.GetProcessesByName'は'プロセス'のメンバーではありません" process を System.Diagnostics.process に変えると波線はでなくなりますが、違うような気がするのです。 メモ帳(notepad.exe)を起動している状態で本プログラムを実行すればmyProcesses(0)に値が入ると想像しているのですが、length=0となり「インデックスが配列の境界外です」とエラーになります。 根本的な事で申し訳ありませんが、よろしくお願いいたします。

専門家に質問してみよう