2016-05-20 2 views
3

Windowsのコマンドラインを使用してファイルを開くようにアクティブなプロセスに指示したいのですが、Windows(7+)の組み込み機能(たとえばpowershellまたはvbscript)を使用するソリューションも機能します。私は開いているメモ帳のインスタンスを持っていると知っていればウィンドウコマンドライン:アクティブなプロセスで開いているファイルですか?

例えば、そのprocessidを1234で、のような何かを行うことができるように素晴らしいことだ:

notepad.exe "myfile.txt" /pid=1234

をし、メモ帳開こうとしています既存のプロセスのウィンドウにファイルを作成します。

これは可能ですか?

+0

VBSの 'wshshell.appactivate 1234'と' wshshell.sendkeys "%FO"& "filename.ext" 'を使うことができる、外部コントロールを持たないプログラム(IE、Word、Autocadなどとは異なります)これは物事を行うためのフレークな方法です。 –

答えて

0

これには自動ホットキーを使用する必要があります。これはpowershellでも可能ですが、特殊なツールではもっと複雑です。 AHKでは、開いているファイル(通常のショートカットはCtrl + O)をシミュレートすると、AHKはダイアログを認識してファイル名を挿入し、最後にENTERを入力します。これは標準化されたアプリケーションの数を処理しますが、場合によっては特殊なアプリケーションを処理する必要があります。

0

ファイルを開くすべてのアプリケーションで機能する一般的な方法として、これは不可能です。プログラムは、(COMインターフェイスのような)いくつかのインターフェイスを公開するか、または特定のWindowsメッセージまたはネットワークトラフィックを聴く必要があります。コントローラは、呼び出すメソッドや、目的の動作をトリガするために送信するメッセージを正確に把握する必要があります。

プロセスを実行していない場合でも、最初のcomnand行の引数は、開く必要があるファイルの名前として解釈されるとは限りません。しかし、GUIの前の時代には、ユーザがこれを長い間期待していた他の方法はありませんでした。したがって、これは基本的な動作とみなされ、ドキュメント指向のアプリケーションであればそれをサポートします。これはあなたのシナリオでは当てはまりませんが、それはいくつかの問題も提起します。複数のドキュメントUIを使用すると、うまくいく可能性があります。単一のドキュメントUIを使用して...おそらく良い考えではありません。現在の文書を破棄すべきか?に追加?ユーザーが「はい」を保存するのを許可する、いいえを保存する、またはキャンセルする

関連する問題