C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: フォームアプリでコンソールを操作する方法


(過去ログ 144 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■84310 / inTopicNo.1)  フォームアプリでコンソールを操作する方法
  
□投稿者/ だんご (3回)-(2017/06/13(Tue) 23:39:23)

分類:[.NET 全般] 

2017/06/13(Tue) 23:40:09 編集(投稿者)

VBでフォームアプリケーションを作成し、そこから自前でコンソールを起動したのちConsole.WriteLineなどで入出力操作を行いたいのですが、方法が分かりません。

Processを使いcmdなど外部アプリを操作することは可能ですが、自在にコンソールを操作する方法が思いつきません。
調べてもコンソールアプリの説明だったり、前述のProcessの話しか出てきませんでした。
Console.SetOutを使えば上手く行けそうな気がするのですがそこらで詰まっています…。

よろしくお願いいたします。

引用返信 編集キー/
■84311 / inTopicNo.2)  Re[1]: フォームアプリでコンソールを操作する方法
□投稿者/ Hongliang (549回)-(2017/06/14(Wed) 00:47:38)
.NET Framework標準ライブラリの範囲内だけでは実現できません。
Windows APIのAllocConsole関数をDeclareまたはDllImportして使用する必要があります。
AllocConsoleさえ呼び出せば、あとは問題なくConsoleクラスで操作できるでしょう。
引用返信 編集キー/
■84326 / inTopicNo.3)  Re[2]: フォームアプリでコンソールを操作する方法
□投稿者/ だんご (4回)-(2017/06/14(Wed) 14:55:37)
No84311 (Hongliang さん) に返信
> .NET Framework標準ライブラリの範囲内だけでは実現できません。
> Windows APIのAllocConsole関数をDeclareまたはDllImportして使用する必要があります。
> AllocConsoleさえ呼び出せば、あとは問題なくConsoleクラスで操作できるでしょう。

ありがとうございます。
WinAPIで難なくできました。

ただGetStdHandle(STD_OUTPUT_HANDLE)だけはハンドルが無効とされたのでCreateFileで開きました。

ありがとうございました。
解決済み
引用返信 編集キー/
■84327 / inTopicNo.4)  Re[3]: フォームアプリでコンソールを操作する方法
□投稿者/ Hongliang (552回)-(2017/06/14(Wed) 15:04:41)
あれ、何かAllocConsoleだけでは問題があるConsoleクラスの処理がありましたか?
引用返信 編集キー/
■84348 / inTopicNo.5)  Re[4]: フォームアプリでコンソールを操作する方法
□投稿者/ だんご (5回)-(2017/06/17(Sat) 18:04:14)
No84327 (Hongliang さん) に返信
> あれ、何かAllocConsoleだけでは問題があるConsoleクラスの処理がありましたか?


出力する際に「ハンドルが無効」と出ましたので、ハンドルを取得する方法をCreateFileに変えたところ無事開けました。


AllocConsole()

hStdOutput = CreateFileA("CONOUT$", GENERIC_WRITE, FILE_SHARE_WRITE, 0&, OPEN_EXISTING, 0, 0) ' GetStdHandle(STD_ERROR_HANDLE)

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -