
VB.net 2003を使用しています。
テキストボックス2つとコマンドボタンが1つある画面(exe)があります。コマンドボタンを押すと引き値を今作成しているプログラム(exe)に送るプログラムがあるのですが、引き値の受け取り方法がわかりません。
検索などで調べたところコマンドラインなどを使用すればよいことがわかったのですが、使用方法がよくわかりません。
http://dobon.net/vb/dotnet/programing/commandlin …
上記のサイトを参考に見ているのですが、System.Environment.CommandLineで引き値を取り出すexeを指定しているのではないのでしょうか?メッセージボックスなどで値を調べたところ引き値を受け取るexe(このコードが書いてあるexe)が指定されているみたいなのですが、引き値を取り出すexeの指定はどこで行っているのでしょうか?
ちなみにテキストボックス2つとコマンドボタンが1つある画面(exe)は他の人が作成しており、VBでは作成されていません。
どうか回答お願い致します。
No.3ベストアンサー
- 回答日時:
今作成しているプログラム(exe)で、GetCommandLineArgs を使って渡された引数を起動されたプログラムから利用できます。
>引き値を取り出すexeを指定しているのではないのでしょうか?
コマンドラインには、起動されたプログラム自体のファイル名が含まれます。
>引き値を取り出すexeの指定はどこで行っているのでしょうか?
強いて言うなら、そのプログラムを起動しようとしたプログラムでしょう。起動されるプログラムはそれ自体なので、考える必要はないと思います。
回答ありがとうございます。
自分の中でどこかで指定を行っていると勘違いしていました。
とてもわかりやすい説明ありがとうございます。
No.4
- 回答日時:
何か勘違いをされているようですね。
(1)a.exe
sub main()
shell "b.exe hello"
end sub
(2)b.exe
sub main
Dim cmds() As String
cmds = System.Environment.GetCommandLineArgs()
Dim cmd As String
For Each cmd In cmds
Console.WriteLine(cmd)
Next
end sub
ここでa.exeを実行するとコンソールに
"a.exe"
"hello"
と表示されます。
つまり外部モジュールを起動するshell関数実行時にb.exe内の空間に引数が強制的に渡されるということです。ですからb.exeからa.exeを認識する必要もなくどこから呼ばれたかは関係なく与えられた引数にしたがって処理されるということです。
No.2
- 回答日時:
???
引き値を取り出すexe、引き値を受け取るexeとは何でしょう。
コマンドライン引数はexeを起動する際に、起動側のexeに渡す引数ですよね。呼ぶ側と呼ばれる側のプライベートなやり取りですので、他のexeが認識できるものではないと思いますが・・・
回答ありがとうございます。
>コマンドライン引数はexeを起動する際に、起動側のexeに渡す引数ですよね。呼ぶ側と呼ばれる側のプライベートなやり取りですので、他のexeが認識できるものではないと思いますが・・
それは知りませんでした。ということは
URL内の
'コマンドライン引数の表示
Console.WriteLine(System.Environment.CommandLine)
'コマンドラインを配列で取得する
Dim cmds() As String
cmds = System.Environment.GetCommandLineArgs()
Dim cmd As String
For Each cmd In cmds
Console.WriteLine(cmd)
Next
'出力例
'"C:\VB TEST\VB.exe" "C:\VB TEST\1.bmp" "C:\VB TEST\2.bmp" "C:\VB TEST\3.bmp"
'C:\VB TEST\VB.exe
'C:\VB TEST\1.bmp
'C:\VB TEST\2.bmp
'C:\VB TEST\3.bmp
は呼ぶ側と呼ばれる側をどこで指定しているのでしょうか?
No.1
- 回答日時:
コマンドライン引数を使っているなら、データを送る側が送り先のプログラムを起動している事になるので、そちらのコードを調べる必要があるのでは。
引数(「引き値」よりはこっちのほうが一般的と思うので。)の渡し方は紳士協定みたいなものですから、必ずしもコマンドライン引数を使うとは限りません(RPCだったり、Windowsメッセージだったり色々あります)。
そのデータを送るプログラムを書いている作者と、インタフェース仕様について意識あわせ、あるいはドキュメントを作成してみては。
この回答への補足
既にできているexeはDelphiで作成されています。
コマンドボタンを押すとテキストボックスの中の値を引数として出力していることは分かっています。
回答ありがとうございます。
既に作成されているexeの場所は分かっています。
コマンドラインを使用した場合は引数をとってくるexeは指定できないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでDOSコマンドの複数実行
-
EXCELをバッチコマンドで...
-
ExcelVBAにてアプリをタスクマ...
-
コマンドプロンプト画面で動作...
-
バッチファイル 特定ウインドウ...
-
C#でMediaPlayerを立ち上げた後
-
複数の処理の終了を待ちたい
-
BASP21 で 外部プログラムが実...
-
ASPからのEXEファイル起動
-
VB.NETでコマンドプロンプトの操作
-
バッチへ値を返す
-
eclipseのエラーに関する質問で...
-
xampp1.7.4のApacheが起動しない
-
RUNASコマンドを使って、自動的...
-
VBAからキャッシュを削除する方...
-
コマンドプロンプトの「%1」と...
-
大量のフォルダからひとつのフ...
-
コマンドプロンプトのエラーに...
-
バッチでテキストファイルから...
-
エクセルのVBAについて とある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 特定ウインドウ...
-
EXCELをバッチコマンドで...
-
ExcelVBAにてアプリをタスクマ...
-
UWSCについて
-
batファイルで立ち上げたaplを...
-
VB.NETでDOSコマンドの複数実行
-
c#でコマンドプロンプトを実行...
-
Shiftキーを押しながら起動
-
バッチへ値を返す
-
gccがコマンドプロンプト上で使...
-
CreateProcessの制御について
-
64bitのwindowsサーバーで32bit...
-
stable diffusionのインストー...
-
プログラムを実行すると、なぜ...
-
VB.NETでコマンドプロンプトの操作
-
Visual basic6.0からショートカ...
-
バッチファイルからftpを実行時...
-
ASPからのEXEファイル起動
-
パスの件
-
VBSでコマンドプロンプトのカレ...
おすすめ情報