投稿者 魔界の仮面弁士  (社会人) 投稿日時 2020/4/18 19:30:42
う~ん……Web アプリケーションの設計が根本から間違っていますよ。


まず、Page_Load に書いた処理というのは、サーバー側で実行される部分です。
なので現状のコードだと、exe はブラウザーを開いているパソコン側ではなく、
インターネット上のサーバー上に配置しておかなければならないわけです。

今は一つの端末上で実行しているのでしょうから、サーバー側とクライアント側の違いを
体感しにくいかも知れませんが、この違いは重要です。

Web サーバー側の画面に ReoGrid なアプリが表示されたところで、
ブラウザーを開いている利用者それぞれのパソコン画面に ReoGrid が
表示されるわけではないのです。


では、利用者側の画面に、exe の画面を開くにはどうすればよいのか…というと、
これもまた、基本的には不可能です。

Web アプリケーションの場合、基本的には外部 exe の呼び出しはできないように設計されています。

もしもサーバー側が、勝手に PC 上の任意のファイルを無許可で呼び出せたとしたら、
重大なセキュリティホールになってしまいますので。(ユーザー側で許可すれば別ですが)

制限付きで良いなら一応の回避策として、レジストリに登録された URI スキームから、
クライアント上のアプリケーションを呼び出すことは可能です。思っている物とは違うかもしれませんけど。

<a href="microsoft-edge:http://www.google.com/">Edge で Google を開く</a>
<a href="ms-excel:https://file-examples.com/wp-content/uploads/2017/02/file_example_XLSX_10.xlsx">サーバー上のファイルをクライアントの Excel で開く</a>


https://docs.microsoft.com/ja-jp/windows/uwp/launch-resume/reserved-uri-scheme-names
https://qiita.com/mkawa/items/86ee7af358abde49d22d
https://ja.stackoverflow.com/questions/27343/


あるいは、作成したデスクトップ アプリケーションを ClickOnce として「発行」し、
Web サイト上にそれらを置いておけば、Web ページ上に *.application へのリンクを
用意しておくことでそれをユーザーがクリックしたときにアプリケーションを起動させることができます。

どちらにしても、ユーザー側の操作を起点として実行されるものであり、
サーバー側(VB 側のコード) によって呼び出せるものではありません。