- PR -

教えてください

1
投稿者投稿内容
初心者ダヨ
会議室デビュー日: 2009/02/03
投稿数: 3
投稿日時: 2009-02-03 22:11
VB.net2005の開発をしているものです。

metaFrameの環境で、ファイル保存ダイアログの表示の仕方で困っています。

現在ダイアログ表示はされますが、metaの環境なのでサーバー側の
フォルダが見えてしまいます。
クライアント側のフォルダを表示させるにはどのような手法を
用いればよろしいでしょうか?

ご教示お願いします。
VB6での動作確認は済んでいます。

VB6ではAPIのGetSaveFileNamePreviewを使用しています。

.netでは
System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop
を使用しています。
これでは、サーバ側のフォルダを見てしまいます。
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2009-02-03 23:08
ログインしたユーザーのメタフレーム内のデスクトップがカレントになるの
はメタフレームの動作としては正しいのでは?

言っている意味はわかります。要するに、メタフレームクライアントを利用
しているユーザーのマシンのデスクトップがファイル選択ダイアログのカレ
ントフォルダにしたいんでしょ?

無理なんじゃないの?

お題はメタフレームとファイル操作とかもう少し気を使って書いた方がいいですね。



ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2009-02-04 07:06
私もメタフレーム環境では無理ではないかと思います。

メタフレーム環境を使った事はありませんが、例えばメタフレーム環境でエクセルを使った場合、名前を付けて保存をする際の表示されるダイアログはクライアントフォルダが表示されるのでしょうか?
もしそれもサーバー上のフォルダが表示されるならば難しいでしょうね。

ダイアログを表示せずに接続クライアントへ保存データをファイル転送等で渡して上げるとか…
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-04 08:06
引用:

VB6での動作確認は済んでいます。

VB6ではAPIのGetSaveFileNamePreviewを使用しています。


が気になるのですが、
サーバー上に配置されてるVB6アプリのGetSaveFileNamePreviewを呼びだすと
クライアントのフォルダが初期表示されるのですか?


GetSaveFileNamePreviewと
System.Environment.GetFolderPath(Environment.SpecialFolder.Desktopでは
対にならないと思いますので、
(MFCだとCFileDialog::GetFolderPathでダイアログでますけど、
System.Environment.GetFolderPathって列挙体が示すパス取るだけですよね?)
SaveFileDialogクラスを試してみては?

# クライアント側のフォルダが表示されるかどうかはわかりませんが



初心者ダヨ
会議室デビュー日: 2009/02/03
投稿数: 3
投稿日時: 2009-02-04 09:16
みなさん御解答のほどありがとうございます。

ぴあちゃんさん:すいません。今度からは気を付けます。

デューンさん:一応SaveFileDialogは使っていますが、
やっぱりクライアント側のフォルダは表示されないみたいです。

Dim sFd As SaveFileDialog

Try
  sFd = New SaveFileDialog()

sFd.InitialDirectory = System.Environment.GetFolderPath _
(Environment.SpecialFolder.Desktop)
If sFd.ShowDialog() = Windows.Forms.DialogResult.No Then
Exit Sub
End If
Finally

End Try

ソースは一応こんな感じです。

やっぱり皆さんのおしゃるように無理なんでしょうか。。。。。。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-02-04 09:29
やっぱりだめですか。

VB6の話が出てきていたのが非常に気になっていて
VB6だとクライアント側のフォルダが表示されるんですか?

そうであれば方法があるのかもしれないなぁと思っている次第です。
(最終的に呼ばれているものは同じだと思いますので)。


ちなみにInitialDirectoryを指定しないとどうでしょう。

# VB6だとRuntimeはクライアントのものがつかわれて、
# .NETだとサーバーのFrameworkなんてことはないと思うんですが

初心者ダヨ
会議室デビュー日: 2009/02/03
投稿数: 3
投稿日時: 2009-02-04 12:58
はい。VB6ではAPIを使うとできるのですが。。
私もVB6でできるなら方法があると思うのですが、
調べてみてもわからなかったので、相談してみました。

>ちなみにInitialDirectoryを指定しないとどうでしょう。
指定しなくてもダメみたいです。
やはりサーバ側のファルダを見てしまいます。

すいません、お忙しい所でお返事をもらいまして。
とりあえず、もう一度調べてみます。
1

スキルアップ/キャリアアップ(JOB@IT)