• ベストアンサー

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

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

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

  • ベストアンサー
  • yotchan2
  • ベストアンサー率61% (8/13)
回答No.2

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

komomomo
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • yotchan2
  • ベストアンサー率61% (8/13)
回答No.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つ目のプロパティとして設定してやれば 呼び出したプロセスの保持が出来るのではないかと思います。

komomomo
質問者

お礼

こんにちは。再度の回答ありがとうございます。 >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つ目のプロパティとして設定するとはどういうことで、どうするのか?といった事が、自分でも調べましたが分かりませんでした。 重ね重ねすみません。とても感謝しています。

komomomo
質問者

補足

問題が解決したので、報告したいと思います! シンプルに、  Process.Start("wgnuplot.exe", "command.gp"); と書けば動きました。とても嬉しいです。これが皆さんの参考にもなったら幸いです。 問題解決の手がかりをくれた回答者の方々、本当にありがとうございました。大変助かりました。重ね重ねお礼申し上げます。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

using System.Diagnostics; Process.Start("アプリケーションパス"); 見当はずれな回答だったらすみませんです。

komomomo
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Maximaとgnuplotについて

    Maximaの計算結果をgnuplotでグラフ表示する場合に、 [plot format,gnuplot]をつけ、 ホーム・ディレクトリに maxout.gnuplot というファイルが生成されて、 gnuplot上で  load 'maxout.gnuplot' with lines などと入力しグラフ表示しても expecting end of line というエラーが出てきてグラフ表示されません。 maxout.gnuplot というファイルはMaximaのどのフォルダに出来なくてはいけないのでしょうか? 実際には、c:\Users\自分の名前 のフォルダにファイルが出来てしまいます。 ファイルの置き場所が適切ではないからグラフ表示しないのでしょうか? もしそうでしたら、どこに置けばいいんでしょうか? あとgnuplotを別途、Maximaとは別にダウンロードしたんですが、 Maximaのbinフォルダにもwgnuplotがあるんですね。 wgnuplotはgnuplotと同じと考えていいんですかね? 同じならgnuplotをダウンロードしなくてもよかったかな。。。

  • Rubyで動的なグラフのGUIを作りたいのですが

    RubyでTkライブラリを使用してGUIを作ろうと考えています。 作りたいGUIの内容ですが ・serialPortからのデータをグラフ化したい   例)aruduinoのなどからUART通信でデータを受け取りそのデータをグラフ化したい ・心電図みたいに動的なグラフにしたい ・一つのデータではなく複数のデータを表示したい(線の色を変えるなどして) ・エクセルなどにその結果を保存し、あとで閲覧したい 以上のようなことをしたいと思っています。 RubyもGUIも初心者なのでわからないことだらけで困っております。 できればグラフを動的に表示できる所だけでも教えていただけると助かります。 開発環境 エディタ Vim Ruby -ver 2.0.0p451 gemRuby導入済み ライブラリ  graph gnuplot rails serialport msgpack などを導入しています。

  • matlabとgunplotがうまくリンクしてくれません(泣)

    今日の昼過ぎからフリーでダウンロードしたmatlabを今(もう23時!?)までいじくりまわしています!筋金入りの初心者です。ある初心者向けサイトの解説を頼りに簡単なグラフを書く作業を行いました。 ↓具体的にはこういうレッスンです。ここから・・・↓  例)y=x^2のグラフをx=0~20の範囲(2刻み)でプロットさせたい。  コマンドはたった3行でOKです。 >>x=[0:2:20]; >>y=x^2; >>mgplot(1,x,y); 実行すると…(※実際にはgnuplotで描かれたグラフが載ってます) ちなみにこのグラフを表示させているソフトはgnuplotといってMaTXとは別のソフトです。 MaTXからgnuplotを呼び出してグラフを描かせているわけですね。 ↑レッスンここまで↑ いそいそとgnuplot(Version.4)をフリーダウンロードし、上記の手順で MaTXからgnuplotを呼び出そうとするのですが上手くいきません。 mgplot(1,x,y);syntax errorとなります。 3行目を>>gnuplot(1,x,y);にしてみると、 gnuplot(),Undeclared function or underfined variable と表示されます。 どなたか解決策をお願い致します!

  • CやJava等の言語の具体的なソフトウェアの作り方

    こんばんは。 現在独学でJavaを勉強中なのですが、どの本も言語の仕様を学ぶだけで終わってしまいます。 PHPやJavaScriptは既にある程度は習得しており、プログラムの基礎は出来ていると思いますので、実際にソフトウェアを制作しながら学んでいきたいのです。 CやJavaで具体的なソフトウェア(例えば時計とかランチャーとかゲームの様なWindowsアプリ)を制作しながら学べるような本はありますか? それに準ずるような内容の本や、また他の言語のそういった本も教えていただけると嬉しいです。 よろしくお願いします。

  • C&gnuplotでデータ処理・グラフ作成保存

    私の希望する作業は下記の通りです。 (1)linux上のCにより、時間変動データを取り込み、加工する。 (2)Cからgnuplotを制御し、加工後のデータをグラフ化する。 (3)グラフのデータを保存する。 Cを実行することにより、データ加工、グラフ化・保存を一気に実行したいのです。 (1)のデータの加工についてはできています。

  • C言語 3次元グラフ

    今、スペクトラムアナライザという計測機器をC言語を用いてデータを取得し、CSVファイルに書き込みました。その後、CSVファイルを開き、エクセルで3Dグラフ(等高線を用いました)にしようとしたのですが系列が255個までという制限がありました。私の取得したデータは461ポイントあるのでグラフを2分割しなければなりません。 CSVファイルの中身の一例としては 周波数,8000,9000,10000・・・ 11:00,-60E01,-61E01,-61E01・・・ 11:01,-62E01,-61E01,-60E01・・・ ・ ・ ・ ちょっと見づらいですが、1行目が周波数で1列目が取得した時間で2行目以降は周波数における電力です。プログラムとしてはデータを取得するコマンドを1秒ごとに送り、1行ごとにCSVファイルに書き込みをしています。 前置きが長くなりましたが、これを3Dグラフにするには何を学習しなければならないでしょうか?友達はWindowsプログラミングで書けばいいよと教えてくれたので、猫でも分かるWindowsプログラミングを買ってきたのですが中々難しそうで最初から挫折しそうです。後、いろいろ調べているとgnuplotという単語が良く出てくるのですが、 1)gnuplotで3次元グラフは作成できますか? 2)仮にgnuplotで3次元グラフが描けるなら、Windowsプログラミングとgnuplotではどちらを学習したほうがいいでしょうか? 参考書やお勧めのURLがあったらお願いします。

  • maximaでgnuplotへの移行

    maximaを使っていて、gnuplotでグラフ化する方法を検索すると、’別のターミナルから gnuplot を起動して’とあるのですが、具体的にどのようにすればよいのかわかりません。 詳しい方ご教示お願いします。

  • cygwinのgnuplot

    cygwinでgnuplotをX11で表示させるときにいつも startx gnuplot として起動してるのですがX11を通す必要をあまり感じません。詳しく言うと、グラフを表示するときにX11は必要かもしれませんが、X11でgnuplotを起動する意味が無いということです。 cygwinで set terminal x11 とやると、anable to open display `` X11 aborted と表示されるのでX11を通してこのやり方にしています。 どなたかアドバイスをお願いします。

  • C言語について教えてください

    skypとかlinuxはC言語で作られてるって聴くんですけど CってDOS画面上でしか操作できないのにGUIとかに対応させる事ができるんですか? Cと他の言語を組み合わせてGUIを完成させているんですか? どうか、教えてくださいまた参考になるサイトがあるなら教えてください お願いします。

  • GNUPLOTでの表示グラフを縮小してもきれいに表示できる方法を教えてください

    質問タイトルのとおりなのですが、GNUPLOTでの表示グラフを縮小してもきれいに表示できる方法を教えてください 例えば、GNUPLOTで作成したグラフをワードなどに貼り付ける場合、あとで縮小すると文字も小さいし見にくいのです。 そこで、もともと縮小した図を貼り付けたいのですが、作成したグラフをウインドウごと大きさを変えるとやはり見にくくなってしまいました。解りますでしょうか? 補足はしますので、どなたかご教授くださいませ。