• 締切済み

VB.NET2003 コンソールアプリとウインドウズアプリの各々単独で

VB.NET2003 コンソールアプリとウインドウズアプリの各々単独では動いています。それをボタンークリックで各々を動かしたいのですがうまくいきません。教えてください。

みんなの回答

  • MRT1452
  • ベストアンサー率42% (1392/3296)
回答No.2

こちらは質問内容から、 2つの単体プログラム(exeファイル)があり、それをボタン操作で起動したいという意味に捉えました。 そのため、それらを呼出すためのトップメニューに当たる画面を儲け、そこから、それぞれのexeをShellで呼出すというのが浮かんだので。 もしその形であれば、Shellは 単純に Shell("プログラムパス") で外部プログラムの呼出しができます。 (オプション指定等で、最小化で起動等も可能) Private Sub Button_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Button.Click [前処理] Shell("プログラムパス") [後処理] End Sub ただ、返答頂いた感じでは、ちょっと違うようですね。 しかし、ボタンを設置したから回避できるというような話でも無いかと。 単に一連の処理を直接行うか間接的に行うかの違いなので。 プログラミング時のエラー発生の場合は、単純に記述方法が適切で無いということなので。 不具合部が明確にでているのであれば、何が問題になっているかというのは、その部分にカーソルを合わせれば表示されるので、それを元に解決法を検索掛けてみるとか、色々と調べようがあるかと。 また、VB.Netのグラフィック系(特にペイントイベント)は、ややこしかった気がします。 (描画タイミング等がかなりシビアだったかと。描画の仕方によっては、一時的な描画で、他のウィンドウが上に重なったりすると消えてしまう等上手くいかないことが多い) paintイベント自体FormLoad等と同じで、対象のオブジェクトの描画に変化が有ったときに勝手に始まるイベントだったと思うので。 対象のオブジェクトでrefreshメソッドを実行することで意図的にペイントイベントを発動させることもできますし。 流れ的には コンソールでカラーデータのテキストを出力。  ↓ 出力されたテキストデータを読み込む  ↓ 読み込んだデータを元にカラーをセット  ↓ グラフィックの再描画 という感じになるんじゃないかな。 今回の質問だと、これを単にボタンで分けるか、一連で流すかという話なので。 エラーの根本的解決にはならないかと。 とりあえずは、何が原因でエラーとなっているのか。そこの調査からだと思います。

okuikufu
質問者

お礼

丁寧なご回答を頂きまことに感謝しております。早速 *.exe を Shell で実行したところ WithEvents 云々とメッセージが出ていろいろ調べましたが今の能力では解決できませんでした。意図していることの流れとしては正にご指摘の通りでほかにいろいろ当たってみたところ一応以下のように納得しています。 module    (コンソールの実行) ’まだ設定していませんが Dim f As New Form f.ShowDialog() End module あとフォームでの実行はできています。またご指摘にもありましたが Paint は .NET のウィンドウがかかると消える現象がありますが今は見過ごして、今回の質問・回答期限は一応終えさせて頂きます。 この後の問題として悩んでいるのは「呼び出したフォームを消したい」と f.Dispose() やpplication.Exit 等試みていますがうまくいきません。フォーム右上の ’X’ をクリックして消すとモジュールに戻りプロジェクトは無事に終えますが、なんとかプログラム的に消す方法をご教授頂けないでしょうか。今までのアドバイスを感謝して、引き続きよろしくお願い申しあげます。

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

単にShell等の起動系コマンド発行する画面作れば良いだけでは?

okuikufu
質問者

お礼

 早速のご返事をまことにありがたくぞんじます! が、感覚は分かりますが初心者で具体的方法がまったくわかりません。少し私の目的を説明させてもらいます。まずコンソールアプリでつくったデータをテキストファイルとしてセーブして、それを、 Sub Form1_Paint(.・・・) Handles MyBase.Paint   ・・・   Dim g As Graphics = e.Graphics   ・・・ End Sub で読み出しフォーム上でカラー表示しています。イベントープローシージャ的だとエラーや波線が生じてどうしても実行できません。ご指摘の 「Shell等・起動系コンド・発行」という具体的な書き方が分かりません。お手数ですが、サンプルをお示し頂けないでしょうか。よろしくお願い致します。

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

関連するQ&A

  • VS2010 VB.Netのコンソールアプリについ

    VS2010 Exspress VB.Netのコンソールアプリケーションについて VB.Netのコンソールアプリケーションにて、 実行すると黒い画面が表示します、これを止めるにはどうすれば、良いのでしょうか? ※VB6では、標準EXEより、フォームを無くし、標準モジュールを追加しても黒い画面は、表示されません よろしくお願いします

  • VB.NET版のDoEvents()を探しています

    こんにちわ。yukimura1024です。 VB.NET版のDoEvents()を探しています。 VB6のDoEvents()と同様のものは System.Windows.Forms.Application.DoEvents()です。 と書かれたHPをいくつかみつけたのですが、 実際VB.NETでコードを書き込むと、 「'Windows' は 'System' のメンバではありません。」 と、怒られてしまいます。 これはなぜでしょうか? コンソールアプリなんですがそれだとダメなんでしょうか。 よろしくお願いいたします。

  • VB6でコンソールアプリケーションを作りたい

    タイトルの通りですが、 VB6でコンソールアプリケーションを作るには、どのようにすればよいのでしょうか。VB.NETの場合は、新規プロジェクトを作成するときに、コンソールアプリケーションが選べましたが、VB6の場合は該当するものが見あたりませんでした。ご存じの方おりましたら、教えて下さい。

  • VB.net2003のアプリをVB2010で動かせるようにしたい

    VB.net2003のアプリをVB2010で動かせるようにしたい VB.net2003で作られたアプリですが、windows Vistaや7では動作しないというバグが発生した為、 開発環境を最新のVB2010にして動作するようにしようとしています。 プロジェクトを開くと自動的に変換をかけてくれるのですが、リビルドをかけると 添付のようにエラーが1つ発生して他にもワーニングが山のように出てきます。 vbって基本的にはアッパーコンパチだった思ったのですが、 別バージョンで動かすのはムリなのでしょうか?

  • VB.NET(2005) コンソールアプリ パスワードマスクの設定

    VB.NET(2005)でコンソールアプリケーションを作成しています。 ユーザーにパスワード等を入力してもらいたい場合に、 画面への表示を隠すにはどのようにすればよいでしょうか? テキストボックスコンポーネントの PasswordChar プロパティのような物があればと思ったのですが…。

  • Vb.netでアンドロイドアプリを作成できない?

    Vb.netでアンドロイドアプリを作成できないですか? 晴れてスマホに変えたのですが、 自分でアプリを作ってみたいのですがJavaはできません。 Vb.netなら多少できます。 Vb.netでアンドロイドアプリを作成する事は可能でしょうか

  • コンソールの出力をパイプでダイレクトに受け取りたい(VB)

    標記の件、お聞きします。 他のクライアント(VBアプリ等)からの利用が想定されていないコンソールアプリには、実行結果がコンソール(DOSプロンプト)にしか出力できないものが多いと思います。 このようなプログラムをVBで利用する場合、出力を一度ファイルにリダイレクトしてから、そのファイルをVBで読み込む方法が一般的だと思いますが、ファイルを介することなく、パイプ等を使用して出力を直接VBで受け取ることは可能でしょうか? 私が調べた限りでは方法を見つけられなかったのですが、ご存知の方教えてください。 そもそも、C++、COM(ActiveX)の知識、スキルがあれば、VBから使いやすいインターフェイスを作ることはいくらでも可能な訳で、パイプにこだわる必要はなさそうですが・・・。 仕事でも学校の課題(笑)でもないので、暇なときに気が向いたらコメントを頂けると幸いです。  

  • VB6.0への移行かそれともVB.NETへの移行か

    VB4.0で作成したアプリケーションをVB6.0かVB.NETかどちらかへの移行に迫られています。 仮にVB.NETの場合でも、Windowsアプリとして移行する予定です。 各バージョンを選択する利点や要調査事項等がわかれば教えてください。 ちなみに、WindowsXP上にアプリケーションを乗せる予定です。

  • VBでコンソールアプリの出力を取得したいのですが

    ネット上で入手したコマンドプロンプト上で使うアプリをGUIで操作できるようにしたく出力を取得したいのですが出来ません。 ネットで出力の取得方法を調べて下記のようにしているのですがどうやっても取得できません・・・ (ipconfig や dir 等は問題なく取得できたのですが・・・) VBは2008です Dim p As New Process() p.StartInfo.FileName = "cmd.exe" ' 実行するファイル p.StartInfo.Arguments = "aaa.exe" ' 目的のアプリ p.StartInfo.CreateNoWindow = True ' コンソールを開かない p.StartInfo.UseShellExecute = False ' シェル機能を使用しない p.StartInfo.RedirectStandardOutput = True ' 標準出力をリダイレクト p.Start() ' アプリの実行開始 Dim output As String = p.StandardOutput.ReadToEnd() ' 標準出力の読み取り output = output.Replace(vbCr + vbCrLf, vbLf) ' 改行コードの修正 TextBox1.Text = output ' [出力]ウィンドウに出力 試しに自分で文字を表示するだけのコンソールアプリを作成して試したのですがそれは取得できました。 目的のアプリが特殊なのでしょうか? ソースがあったので見てみたのですがC言語だった為詳しくわからなかったのですが、出力は「Console.WriteLine」ではなく「fputs」を使用して出力していました・・・これが原因なのでしょうか? どうにかして、出力を取得する方法はないものでしょうか? よろしくお願いします。

  • PERLとVB.NETの置き換えが分かるようなテキストかHPはありますか?

    perlでギリギリ、掲示板や簡単なテキスト解析をするアプリを作るくらいの知識は付いたのですが、Windows環境の為、VB.NETで作りたく思っています。 PERLからVB.NETに乗り換えるのに適しているHPや本はありますでしょうか? また、VB.NETでコンソールアプリを作ったのですが、 print("abc 123test") としても宣言してない?ようでコンパイルエラーが出てしまいます。 VB.NETというのは、perlのように宣言も適当で、簡単には使えないのでしょうか?

専門家に質問してみよう