tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルデスクトップのフォルダパスの取得方法
記事No4030
投稿日: 2006/07/28(Fri) 13:24
投稿者エイジ
いつも参考にさせていただいています。
WindowsXp pro ,vb.net 2003で開発しています。

以前、vb6で当サイトの
「APIを使っての特殊フォルダのパス名の取得」を参考しまして
デスクトップのパス名を取得しておりました。
開発環境がvb.net 2003に変わりまして、同じようにデスクトップ
のパス名を取得しようと、同じように当サイトのVB.NET Tips一覧 他の
「システムの特別なフォルダへのディレクトリ パスを取得」を参考しまして
同じように取得してみました。

VB6の時は、「All User」と「UserName」の場合の2種類のデスクトップの
パスが取得できていました。
しかし、今回は、「UserName」のデスクトップしか取得できません。
「All User」のデスクトップのパスの取得に方法を教えていただけないでしょうか?

今回試したコードは以下の通りです。両方とも「UserName」のデスクトップの
パスが取得されました。
        DeskTopFolder1 = System.Environment.GetFolderPath _
                              (Environment.SpecialFolder.DesktopDirectory)
        DeskTopFolder1 = System.Environment.GetFolderPath _
                              (Environment.SpecialFolder.Desktop)
よろしくお願いします。

[ツリー表示へ]
タイトルRe: デスクトップのフォルダパスの取得方法
記事No4031
投稿日: 2006/07/28(Fri) 15:42
投稿者花ちゃん
何か訳があるのでしょうかね? VB2005 のMy.Computer.FileSystem.SpecialDirectories でも
取得できないようですね。

.NET でも Win32 API もWshShellオブジェクトも使用できるので VB6.0 のコードを使って
取得する事もできますが。
http://hanatyan.sakura.ne.jp/vbhlp/special.htm
http://hanatyan.sakura.ne.jp/vbhlp/specialapi.htm

Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) Handles Button1.Click
   Debug.WriteLine(CreateObject("Wscript.Shell").SpecialFolders("AllUsersDesktop"))
End Sub

[ツリー表示へ]
タイトルRe^2: デスクトップのフォルダパスの取得方法
記事No4032
投稿日: 2006/07/28(Fri) 17:14
投稿者エイジ
花ちゃんさん返信ありがとうございます。
     http://hanatyan.sakura.ne.jp/vbhlp/special.htm
こちらの方法は探し方が悪いのか見つけることが出来ませんでした。
下記のようなコードで文字型の変数DeskTopFolderに取得できるようになりました。
ありがとうございました。これからもよろしくお願いします。

        Dim objWsh As Object
        'オブジェクト変数 objWsh に Wscript.Shell への参照を設定します
        objWsh = CreateObject("Wscript.Shell")
        '特殊フォルダのパス名を取得
        DeskTopFolder = objWsh.SpecialFolders("AllUsersDesktop")
        objWsh = Nothing

[ツリー表示へ]