別のPGに値をわたすには

解決


ビギナー  2005-02-07 02:37:23  No: 88279

http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200502/05020001.txt
で質問した内容とかぶるのですがよく理解できなかったのでまた質問しまsた。

ログイン画面のPGでログイン後,別のPGに移るのですがそのPGのフォームでログイン時のIDを表示したいのです。
そのため,ログインした時の値を別のPG上に渡したいのですが,どうしたらいいでしょうか。PGの移動はShell関数で行っています。

先の質問のCommand関数を調査してテストしてみたけど上手くいきませんでした。私のコードが間違っているだけかもしれませんが・・


。。。  2005-02-07 03:28:34  No: 88280

>上手くいきませんでした
これだけで済ませるのはそろそろやめにしませんか?
何をもって上手くいかないと判断したとか、何がどう上手くいかないのか
具体的に書いて下さい。
Command関数で起動オプションが取得できなかったとか。

>私のコードが間違っているだけかもしれませんが・
そう思うなら、なおさら質問の意図がわからなくなります。
コードも示さずに間違っているかどうかも分かるわけないでしょう。


結局  2005-02-07 04:00:08  No: 88281

魔界の弁士さんが回答しているのに、全く無視していますが、
開発環境は、VB6でいいのですか?


いな  2005-02-07 04:10:08  No: 88282

うまくいかないのは、起動元、起動先のどちら?

いきなりたくさんのことをやろうとしても駄目です。
起動先は、Command関数で受け渡された値を取得できているのか?
起動元は、起動先のプログラムにログイン時のIDを渡せているのか?

>私のコードが間違っているだけかもしれませんが
環境設定不備等でないのであれば、コードが間違ってます。


じゃんぬねっと  URL  2005-02-07 18:17:40  No: 88283

コマンドライン引数について、調べてみるだけじゃないのでしょうか...
Command$() 関数がわからないのでしょうか?
Shell() 関数がわからないのでしょうか?


ビギナー  2005-02-08 23:39:15  No: 88284

環境はVB6.0(SP6)を使用してます。

コードは簡単に書くと
呼び出し元
Shell **.exe,パラメータ1,パラメータ2

呼び出し先
str = command()
temp = split(str,",")

みたいなかんじで記述してます。


じゃんぬねっと  URL  2005-02-08 23:58:16  No: 88285

> Shell **.exe,パラメータ1,パラメータ2

カンマ区切りなのは、まずいのでは?

質問元を再度御覧ください。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200502/05020001.txt


いな  2005-02-09 00:27:22  No: 88286

余り、カンマ区切りでは渡さないけど、
最悪ダブルクオートで囲むかね。


魔界の仮面弁士  2005-02-09 00:44:11  No: 88287

> Shell **.exe,パラメータ1,パラメータ2
イメージで書かずに、実際のコードを貼りましょう。(^^;

で。他の方も書かれていますが、カンマ区切りはまずいです。
カンマを含んだ "TEST,P1.exe" というファイル名もありえますからね。

この場合は、
  Shell "C:\Project1.exe aaa bbb"
のように、空白で区切って指定します。カンマを使うにしても、
  Shell "C:\Project1.exe aaa,bbb"
のように、パラメータ内にて使うようにします。

パラメータが文字列変数になっているなら、&演算子で連結して
  Dim Path As String
  Path = exeファイルのフルパス
  Path = Path & " " & パラメータ1 & "," & パラメータ2
  Shell Path
のような感じになりますね。


ビギナー  2005-02-09 02:41:08  No: 88288

標準モジュールでパブリック変数A,Bを設定して
それをパラメータのところに記述しているのですが
これもマズいのでしょうか。


ビギナー  2005-02-09 02:47:44  No: 88289

呼び出し元
Chk = Shell("***.EXE " & A & "," & B  , vbNormalFocus)
If Chk = 0 Then
   MsgBox "プログラムの起動に失敗しました。"
End If

呼び出し先
Str = command()
Tmp = split(str,",")

のような感じで試したところ上手くいきました。
ありがとうございました。


いな  2005-02-09 02:50:09  No: 88290

解決時には、チェックを・・・。


ビギナー  2005-02-09 03:19:53  No: 88291

Shell("***.EXE " & text1.text & "," & text2.text  , vbNormalFocus)

とするとパラメータの取得に失敗しました・・
というメッセージが出てきました。

パラメータで宣言するものとかって決まっているのでしょうか。

>解決時には、チェックを・・・。
どうも,すいませんでした。
その時はできた喜びで忘れていました。反省してます。


いな  2005-02-09 06:21:13  No: 88292

だ・か・ら、カンマはまずいので、こうじゃない?

Shell("***.EXE " & text1.text & " " & text2.text  , vbNormalFocus)
                                ~~~


ビギナー  2005-02-09 18:25:17  No: 88293

解決できました。
どうも,ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加