tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルUnicode(機種依存文字)含むパスのフォルダを開く方法
記事No16080
投稿日: 2015/02/23(Mon) 12:21
投稿者マサタロウ
ShellExecute関数でUnicode(機種依存文字)を含まないパスの
フォルダを開く事が出来ます。
VBレスキュー(花ちゃん)‐旧のVB6.0用のメニュー
<指定のフォルダーをエクスプローラーで表示>を参考にしました。
http://hanatyan.sakura.ne.jp/vbhlp/Explore.htm


<ファイルパスの機種依存文字を取得する方法について - マサタロウ 14/11/28-11:50 No.16027>
http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?no=16027&reno=no&oya=16027&mode=msgview&page=0
を参考にして、ShellExecute関数のwide版を宣言し、
関数からShellExecuteWを実行しています。

'標準モジュール。
Public Declare Function ShellExecuteW Lib "shell32" (ByVal hWnd As Long, _
       ByVal lpszOp As Long, ByVal lpszFile As Long, ByVal lpszParams As Long, _
       ByVal lpszDir As Long, ByVal FsShowCmd As Long) As Long


'ShellExecuteWを実行する標準モジュール。
   Dim S As Long      '宣言セクション。
   Dim Ret As Variant '宣言セクション。


'フォルダパスの取得。
'main.OPENFolPT = コモンダイアログでのファイルパス。
'main.FExistence = コモンダイアログでのファイル名。
'Left関数の"-1"は右端の"\"を削除する。
   Dim OpenFolder As String
       OpenFolder = Left(main.OPENFolPT, Len(main.OPENFolPT) - Len(main.FExistence) - 1)

       S = ShellAppli(OpenFolder, "Explore")

'ShellExecuteWを実行する関数。
   Function ShellAppli(ByVal OpenPath As String, ByVal iprPoint As String) As Long

       Ret = ShellExecuteW(main.hWnd, StrPtr(iprPoint), StrPtr(OpenPath), vbNullString, _
                        vbNullString, SW_RESTORE)

   End Function


コード実行後、On Error ステートメントで確認すると、
型が一致しない"エラー番号13"となります。

Unicode(機種依存文字)含むパスのフォルダを開けないのは、
コードの間違いかAPI関数が違うか確認したいです。

[ツリー表示へ]
タイトルRe: Unicode(機種依存文字)含むパスのフォルダを開く方法
記事No16081
投稿日: 2015/02/24(Tue) 11:37
投稿者マサタロウ
> <ファイルパスの機種依存文字を取得する方法について - マサタロウ 14/11/28-11:50 No.16027>
> http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi?no=16027&reno=no&oya=16027&mode=msgview&page=0
> を参考にして、ShellExecute関数のwide版を宣言し、
> 関数からShellExecuteWを実行しています。

以下のページのコードで確認したら、API関数を使用しなくても
Unicode(機種依存文字)含むパスのフォルダを開く事が出来ました。
http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_30591_0.html

掲示板のルールに引っかかっている様です。
気をつけます・・・。

[ツリー表示へ]