別プログラムへの変数受け渡し への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 ytyt  (社会人)
投稿日時
2021/11/17 12:09:41
SEとして働いているものです。VBは独学での勉強で初心者です。
質問の仕方が分かりずらいかもしれませんがご容赦ください。
VisualBasic2012を使いプログラムを書いています。
ログイン と メインメニュー というVisualBasic2012で作成したものが別々で存在しており
ログインのボタン1のClickイベントでメインメニューを起動、起動した際にログインで持っている変数をメインメニューに渡す。という処理がしたいです。
現在、ログインのボタン1のClickイベントには
Dim p as System.dialognostics = System.dialognostics.Process.Start(メインメニューのexeのパス)
というプログラムを記入しており、正常にメインメニューを起動させることが出来ています。
ただ、変数の渡し方がわからず困っています。
質問の仕方が分かりずらいかもしれませんがご容赦ください。
VisualBasic2012を使いプログラムを書いています。
ログイン と メインメニュー というVisualBasic2012で作成したものが別々で存在しており
ログインのボタン1のClickイベントでメインメニューを起動、起動した際にログインで持っている変数をメインメニューに渡す。という処理がしたいです。
現在、ログインのボタン1のClickイベントには
Dim p as System.dialognostics = System.dialognostics.Process.Start(メインメニューのexeのパス)
というプログラムを記入しており、正常にメインメニューを起動させることが出来ています。
ただ、変数の渡し方がわからず困っています。
いくつかやりかたはありそうです。たとえば、このような感じです。
ログイン側(呼び出す側)
メインメニュー側(呼び出される側)
>Dim p as System.dialognostics = System.dialognostics.Process.Start(メインメニューのexeのパス)
既にできている部分を正確に書いていただけると助かります。
たとえ、それが動かないプログラムであっても、回答者が書いていないことをあれこれ推測したり、補って検証する時間が節約できて回答に集中できます。
あと、exeにする形式だと、エンドユーザーがメインメニューの方を直接起動できてしまいますし、悪意のあるユーザーの場合、メインメニューと同じ名前のexeを仕込んでおいて、渡されてきたパラメーターを記録してしまうことでログイン情報を取得できたり、都合が悪いこともあります。最近はあまり見かけない設計のように思います。
他の設計候補としては次のようなものがあるように思います。
①1つのexeに全機能を集約する。これだと画面間の連携が普通の関数呼び出しのようにできます。
②エントリイーポイントとなる小さなexeを用意して、他の機能はライブラリとして提供する。これだと機能ごとにファイルを小分けできてさらに、画面間の連携を普通の関数呼び出しのようにできます。
③Webアプリケーションにする。これだと配布の手間がありません。
Windowsフォームアプリケーションの場合、クリックワンスを使って配布の手間を軽減するという手もあります。(が、Chromeでも使えたかどうか??私はクリックワンスは敬遠しています。)