[2519] 私にできるのは…

投稿日 2019/11/14(Thu) 10:26:09
投稿者 アーク info.nds.laboratryあっとまーくgmail.com
参照先

こんにちは。アークです。

二重起動を防止しつつ、既に起動しているプロセスにファイル名等を渡すだけなら一応可能です。
ウィンドウメッセージは送出するよりも受け取り方のが難しそうです。
標準出力を利用する方法はタイミングが難しそうです
環境変数を利用する方法は一度プロセスを再起動しないと反映されないようです。
本当はプロセス間で共通に使える変数が有ると良いのですが…。

取り敢えずクリップボードを利用して実現してみました。
ファイル名は「TestApp.exe」としました。
-----------------------------------------------------------
もしプログラムの起動時設定が「」でないなら
  引数は、プログラムの起動時設定
  第一引数は、引数(1)
そうでないなら
  第一引数は、「」
もし終わり
一覧は、「TestApp」のプロセス一覧
インスタンス数は、一覧の個数

クリップボードをクリアする
「[第一引数]」をクリップボードへコピーする

もしインスタンス数=1なら
  メイン画面を表示する
  待機する
そうでないなら
  一覧を要素にそれぞれ繰り返す
    もし要素のタイトルが「」でないなら
      要素へ切り替える
    もし終わり
  繰り返し終わり
  終了する
もし終わり

メイン画面とは
  ウィンドウを継承する
  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
  終わり
  初期化する手順
  ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
  この実質大きさを{408,125}に変える
  この内容を「メイン画面」に変える
  初期化開始する
  テキスト1というテキストを作る
    その位置と大きさを{12,25,380,19}に変える
    その移動順を3に変える
  ボタン1というボタンを作る
    その位置と大きさを{154,72,85,32}に変える
    その内容を「全て終了」に変える
    その移動順を1に変える
  初期化終了する
終わり
  
  開いた時の手順
    テキスト1の内容を「[第一引数]」に変える
  終わり

  ボタン1がクリックされた時の手順
    一覧を要素にそれぞれ繰り返す
      終了する
    繰り返し終わり
  終わり
  
  引数を更新する時の手順
    ファイルパスは、クリップボードの内容
    もしファイルパスが「」でないなら
      テキスト1の内容をファイルパスに変える
      クリップボードをクリアする
    もし終わり
  終わり

  アクティブ時の手順
    引数を更新する
  終わり
終わり
-----------------------------------------------------------
薦められる方法では有りませんが一応引数の内容を渡せます。

本格的なプロセス間通信を実装するのなら「メモリマップドファイル」を使って、
プロセス間で共通に使える変数を利用するのが良さそうです。
陸さんはCを遣られているので如何でしょうか。


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -