C#での質問です。


Aというツールがあるのですが、そのツールはいくつかのテキストボックスに
数値を入れてボタンを押すと計算値を出してくれるというものです。

 ここでBというツールから数値をAというツールに渡して計算させたものを
Bというツールで受け取って表示をさせたいのですが、そういったことは可能でしょうか?

回答の条件
  • 1人2回まで
  • 登録:2008/02/23 07:41:04
  • 終了:2008/03/01 07:45:02

回答(2件)

id:AZUY No.1

AZUY回答回数343ベストアンサー獲得回数122008/02/23 14:29:16

ポイント60pt

こんにちは

A、Bというソフトは、多重起動できないと言う仮定します。

どのタイミングでデータを渡したいのか不明ですが、

Aで計算した時点で、結果をファイルに書き出す。

Bでは、ボタンを押したタイミングで、上記ファイルの内容を

読み取って、画面に反映。


他にも方法はいろいろあるので、可能かどうかというと可能。

id:alan_i_jp No.2

alan_i_jp回答回数104ベストアンサー獲得回数12008/02/29 20:08:17

ポイント10pt

#B/ツールの数値をファイルにする。

#A/ファイル読み込み→計算→ファイルにして上書き

#B/ファイルを読み込み

でどうでしょうか?

  • id:cx20
    C# で、Windows API を駆使すれば、やって出来なくも無い気がしますが、
    外部アプリを制御するのは、色々と面倒な気がします。

    別の案としてWindows 自動化ソフト「UWSC」を使うというのはどうでしょう?
    外部アプリを制御する為の関数等が揃っているので、自動化はしやすいと思います。
    以下は、電卓を呼び出して、結果をファイル出力するサンプルです。

    C# の例ではないので、コメント欄にて。

    // File : ParamTest.uws
    // Usage : UWSC.exe ParamTest.uws <Param>
    // Example : UWSC.exe ParamTest.uws "1+1="
    // : <Result>
    // : 1個のパラメータ引数があります
    // : 1 番目の引数は [1+1=] です。
    // : 電卓で計算式 [1+1=] を実行します。
    // : 計算結果は = [2. ] です。
    Option Explicit

    メイン( PARAM_STR )

    Procedure メイン( argv[] )
      パラメータの内容を確認( argv )
      Dim 計算結果
      計算結果 = 電卓で計算( argv )
      Print "計算結果は = [" + 計算結果 + "] です。"
      Sleep( 1 )
      計算結果をファイル出力(計算結果)
    Fend

    Procedure パラメータの内容を確認( argv[] )
      // パラメータ引数(PARAM_STR)の表示
      Print Length(argv) + "個のパラメータ引数があります"
      Dim i
      For i= 0 To Length(argv) - 1
        Print (i+1) + " 番目の引数は [" + argv[i] + "] です。"
      Next
    Fend

    Function 電卓で計算( argv[] )
      // 電卓起動
      Dim 電卓ID
      電卓ID = GETID("電卓")
      Ifb 電卓ID < 0
        電卓ID = Exec("calc")
      EndIf

      Dim 計算式
      Ifb Length(argv) > 0 Then
        計算式 = argv[0] // パラメータ引数を取得
      Else
        計算式 = "12345+98765="
      EndIf
      Print "電卓で計算式 [" + 計算式 + "] を実行します。"
      
      // 電卓で計算式を実行
      SendStr(電卓ID, 計算式)
      Sleep(1) // 計算処理に時間かかる場合は待機時間を増やしてください
      
      // 計算結果を取得
      Dim 計算結果
      Ifb KindOfOS() >= 13              // XP,Vistaの場合
        計算結果 = GetStr(電卓ID, 1, STR_EDIT)   // エデットボックス
      Else
        計算結果 = GetStr(電卓ID, 1, STR_STATIC)  // スタテックテキスト
      EndIf
      Result = 計算結果
    Fend

    Procedure 計算結果をファイル出力( 計算結果 )
      Dim ファイルID
      ファイルID = FOpen( "計算結果.txt", F_WRITE )
      FPut( ファイルID, 計算結果 )
      FClose( ファイルID )
    Fend

    ■ Windows 自動化ソフト「UWSC」
    http://www.uwsc.info/
  • id:taniguchitomoya
    AとBは別プロセス(別のプログラム)として動作するんですよね?
  • id:quocard
    AとBは別々のプログラムになります。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません