アプリ版:「スタンプのみでお礼する」機能のリリースについて

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では作成されていません。
どうか回答お願い致します。

A 回答 (4件)

今作成しているプログラム(exe)で、GetCommandLineArgs を使って渡された引数を起動されたプログラムから利用できます。



>引き値を取り出すexeを指定しているのではないのでしょうか?
コマンドラインには、起動されたプログラム自体のファイル名が含まれます。

>引き値を取り出すexeの指定はどこで行っているのでしょうか?
強いて言うなら、そのプログラムを起動しようとしたプログラムでしょう。起動されるプログラムはそれ自体なので、考える必要はないと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

自分の中でどこかで指定を行っていると勘違いしていました。
とてもわかりやすい説明ありがとうございます。

お礼日時:2006/07/11 09:40

何か勘違いをされているようですね。



(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を認識する必要もなくどこから呼ばれたかは関係なく与えられた引数にしたがって処理されるということです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

既存のプログラムを作成した方と話して無事解決しました。皆さんありがとうございました。

お礼日時:2006/07/11 18:29

???



引き値を取り出すexe、引き値を受け取るexeとは何でしょう。
コマンドライン引数はexeを起動する際に、起動側のexeに渡す引数ですよね。呼ぶ側と呼ばれる側のプライベートなやり取りですので、他のexeが認識できるものではないと思いますが・・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>コマンドライン引数は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

は呼ぶ側と呼ばれる側をどこで指定しているのでしょうか?

お礼日時:2006/07/10 18:10

コマンドライン引数を使っているなら、データを送る側が送り先のプログラムを起動している事になるので、そちらのコードを調べる必要があるのでは。



引数(「引き値」よりはこっちのほうが一般的と思うので。)の渡し方は紳士協定みたいなものですから、必ずしもコマンドライン引数を使うとは限りません(RPCだったり、Windowsメッセージだったり色々あります)。

そのデータを送るプログラムを書いている作者と、インタフェース仕様について意識あわせ、あるいはドキュメントを作成してみては。

この回答への補足

既にできているexeはDelphiで作成されています。
コマンドボタンを押すとテキストボックスの中の値を引数として出力していることは分かっています。

補足日時:2006/07/10 17:06
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
既に作成されているexeの場所は分かっています。
コマンドラインを使用した場合は引数をとってくるexeは指定できないのでしょうか?

お礼日時:2006/07/10 16:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています