.NET で C# を使い、他のソフトウェアを呼び出したい

解決済みの質問

.NET で C# を使い、他のソフトウェアを呼び出したい

.NET で C# を使い、他のソフトウェアを呼び出したいのですが、どうしたら良いのでしょうか。具体的には、gnuplot を呼び出してグラフを作り、それをGUIに表示させたいのです。

アドバイスがありましたら、よろしくお願いします。

投稿日時 - 2006-06-19 02:51:14

連想キーワード:

QNo.2224466

困ってます

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

#1様のやりかたが、.Netでは一般的です。
それで出来ないということですが、"アプリケーションパス"の部分を
DOS窓で叩いてみましたか?
あとは、タスクマネージャでプロセスが立ち上がってるかどうかの
確認も必要です。

また、グラフを作るのはgnuplotの方でやるとして、表示させたいGUIというのは
どこなんでしょう?

投稿日時 - 2006-06-21 10:35:14

お礼

回答ありがとうございます。
DOS窓で叩くということは、パス名の確認をする必要があるという事ですか?パス名はあっているんです。。ただ、一瞬でgnuplotが終了させられてしまうようです。タスクマネージャーでプロセスの確認は、良い方法ですね。今、それをする環境にないのですが、週末にやってみます。
グラフを作るには、gnuplotにコマンドを2回渡す必要があります。一つは、グラフを表示させるコマンド、もう一つはそれを保存させるコマンドです。一回目のコマンドは、#1様のアドバイスで何とかなりそうなのですが、もう一つ目のコマンドはどうやって渡したものでしょうか・・・。もしご存知でしたら、教えて下さい。
表示させたいGUIがどこか、という質問が良く分かりませんでした。そのGUIは、gnuplotを呼び出すGUIです。そしてそこに表示させたいのですが・・・。

投稿日時 - 2006-06-22 08:25:46

ANo.2

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

ANo.3

回答ありがとうございます。再び#2です。

>DOS窓で叩くということは、パス名の確認をする必要があるという事ですか?
そうです。まずは、DOS窓からパスを叩いて、そもそもgnuplotが
呼び出せるのかどうか?の確認が第一だと思います。

>パス名はあっているんです。。
>ただ、一瞬でgnuplotが終了させられてしまうようです。
上記の方法で、まずはこれを確認したいとこですね。

>グラフを作るには、gnuplotにコマンドを2回渡す必要があります。
とのことなので、今回の場合は、ProcessのStaticのStartメソッドではなくて、
実体化したクラスのStartメソッドを使う必要があるかと思います。
ProcessInfo pInfo = new ProcessInfo();
ProcessStartInfo sInfo = new ProcessStartInfo();
Process proc = new Process();
あとは、上2つのクラスを設定し、3つ目のプロパティとして設定してやれば
呼び出したプロセスの保持が出来るのではないかと思います。

投稿日時 - 2006-06-22 12:04:04

補足

問題が解決したので、報告したいと思います!

シンプルに、
 Process.Start("wgnuplot.exe", "command.gp");
と書けば動きました。とても嬉しいです。これが皆さんの参考にもなったら幸いです。

問題解決の手がかりをくれた回答者の方々、本当にありがとうございました。大変助かりました。重ね重ねお礼申し上げます。

投稿日時 - 2006-07-19 03:50:55

お礼

こんにちは。再度の回答ありがとうございます。

>DOS窓からパスを叩いて、そもそもgnuplotが
>呼び出せるのかどうか?の確認が第一だと思います。

はい、gnuplotはDOSからは呼び出せます。一番最初にそれは確認しました。タスクマネージャーで確認すれば、というアドバイスですが,
実際、一瞬でDOS窓のような画面が出て消えてしまう、という状況だったため、確認しようがありませんでした。

現在、もし何も因数をgnuplotに渡さなければ、Process.Startを使ってC#からでも呼び出せるようになりました。みなさんの回答をいただいた後に、環境設定を色々いじって変えためでしょうか。

gnuplotの窓にタイプするコマンドを、C#から渡すにはどうしたら良いのか、もう少し詳しく教えてもらえませんか。前までは2回コマンドを渡す必要がある、と書きましたが、gnuplotのコマンドのファイルを作る事により、一回そのファイルをgnuplot に読ませる必要があるだけになりました。一回読ませるコマンドは、

load 'command.gp'

です。ネット上で、

Process.Start("パス?wgnuplot.ext", "load 'パス?command'.gp");

の様な文法が記載されていたので、やってみたのですが動きませんでした。コンパイルは出来ますが、反応が全くありませんでした。(パスと書いてあるところは、実際のパスを書き込みました。)

回答して下さった文の最後の段落で、

>上2つのクラスを設定し、3つ目のプロパティとして設定してやれば

という文の意味が分かりませんでした。具体的にはどういった事か、もしこの現在私が関わっている問題で、必要があるならば教えて下さい。どういった設定を、上の2つのクラスでするのか?3つ目のプロパティとして設定するとはどういうことで、どうするのか?といった事が、自分でも調べましたが分かりませんでした。

重ね重ねすみません。とても感謝しています。

投稿日時 - 2006-07-01 09:01:58

ANo.1

using System.Diagnostics;
Process.Start("アプリケーションパス");

見当はずれな回答だったらすみませんです。

投稿日時 - 2006-06-19 03:04:01

お礼

早速の回答ありがとうございます。大変助かります。

色々試してみましたが、実行時にぱっとDOSのような画面が見えますが消え、何も起こりません。おそらくgnuplot はどこかで終了させられているんでしょうか。Process.Startのコマンドをメインにおいてみたりしましたが、同じでした。

また何かアドバイスがありましたら、よろしくお願いします。

投稿日時 - 2006-06-19 04:10:46

あわせてチェックしたい
  • C言語からgnuplot呼び出し ...
  • c#でGUIプログラム ...
  • gnuplotについて質問です。 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら