tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルエクスプローラを操作したい
記事No13838
投稿日: 2009/07/13(Mon) 02:15
投稿者シス
今まで XP+IE7 環境でSHDocVw.ShellBrowserWindowを使って
エクスプローラを操作していたのですが、

VistaになってからSHDocVw.ShellBrowserWindowが使えなくなりました。
Set obj = New SHDocVw.ShellBrowserWindow
とやると「New キーワードの使用法が不正です。」というエラーになります。

現在の環境は Vista+IE8 なのですが、
どのようにすればエクスプローラを操作できるようになりますでしょうか?
参照設定するものが変わったのか、もうこのような使い方は出来なくなったのでしょうか?

今はShell32.dllとieframe.dllを参照しています。
shdocvw.dllは参照しようとしてもできません。選択しても一覧に表示されません

よろしくお願い致します

[ツリー表示へ]
タイトルRe: エクスプローラを操作したい
記事No13839
投稿日: 2009/07/13(Mon) 07:41
投稿者オショウ
> 今はShell32.dllとieframe.dllを参照しています。
> shdocvw.dllは参照しようとしてもできません。選択しても一覧に表示されません

  VB6を管理者権限で起動したら、参照で一覧に表示されました。

以上。参考まで・・・

[ツリー表示へ]
タイトルRe^2: エクスプローラを操作したい
記事No13840
投稿日: 2009/07/13(Mon) 11:54
投稿者シス
お返事ありがとうございます。

shdocvw.dllがMicrosoft Internet Controlsという名前で表示されたのでしょうか?
IE8でしょうか?私の環境では管理者権限でも表示されませんでした

regsvr32 などをしてもエントリポイントが見つからないなどというエラーがでました。
解決方法はありませんでしょうか?
よろしくお願い致します。

[ツリー表示へ]
タイトルRe^3: エクスプローラを操作したい
記事No13841
投稿日: 2009/07/13(Mon) 12:14
投稿者オショウ
> shdocvw.dllがMicrosoft Internet Controlsという名前で表示されたのでしょうか?
> IE8でしょうか?私の環境では管理者権限でも表示されませんでした

  うっかり・・・

  IE8入れたらVisualStudio2008でトラブルが出るとのことで
  現在は解決策が発表されてますが、IE8は導入してませんで
  した。

  まだ、IE8は入れたくないので・・・

  どなたかヘルプ!・・・

以上。

[ツリー表示へ]
タイトルRe^3: エクスプローラを操作したい
記事No13842
投稿日: 2009/07/13(Mon) 12:56
投稿者オショウ
> shdocvw.dllがMicrosoft Internet Controlsという名前で表示されたのでしょうか?
> IE8でしょうか?私の環境では管理者権限でも表示されませんでした

  IE8 が導入されている環境として・・・
  Win7 RC版がありましたので、VB6入れて確認してみました。

  管理者権限でVB6起動し、参照設定でみたところ・・・

  Microsoft Internet Controls がありました
  中身は、IEFRAME.DLL です。

  チェックを入れて・・・
  ちゃんと動作しました。

※ VISTAでないので、すいません・・・

以上。参考まで

[ツリー表示へ]
タイトルRe^4: エクスプローラを操作したい
記事No13843
投稿日: 2009/07/13(Mon) 13:00
投稿者オショウ
誤り訂正・・・

ShellBrowserWindowは、IEFRAME.DLLには無いです。

実験したのは、ShellWindowsでした・・・

取り急ぎ・・・

[ツリー表示へ]
タイトルRe: エクスプローラを操作したい
記事No13845
投稿日: 2009/07/13(Mon) 15:49
投稿者魔界の仮面弁士
> 現在の環境は Vista+IE8 なのですが、

確認したいのですが、今、手元にあるのは XP32 + IE8 のみ…。
今夜にでも Vista64 + IE8 環境で確認してみます。


で。レイトバインドでも良いのであれば、
 Set ie = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
 'Set ie = New SHDocVw.ShellBrowserWindow
で生成できないでしょうか。
IE7 以降では Shell が分離された関係で、エクスプローラの操作には、
 Set ie = CreateObject("InternetExplorer.Application")
 'Set ie = New InternetExplorer.Application
の代わりに、この構文を使う必要があったはず。


As Object で都合が悪いなら、As IWebBrowser2 あたりで受けられるかも。

Dim exp As IWebBrowser2
Set exp = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")

'-- 以下おまけ
exp.Navigate "C:\Program Files"
exp.Visible = True

'As Object で受けないと、CurrentViewMode が使えない…。
Dim fv As Object    'Shell32.ShellFolderView
Set fv = exp.Document

Const FVM_THUMBNAIL As Long = 5
fv.CurrentViewMode = FVM_THUMBNAIL

[ツリー表示へ]
タイトルRe^2: エクスプローラを操作したい
記事No13846
投稿日: 2009/07/13(Mon) 21:41
投稿者シス
オショウ様、魔界の仮面弁士様。お返事ありがとうございます

Set ie = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
こちらでやりたい感じにできました!
本当にありがとうございます。

皆さんXP好きですか?
Win7 pro以上のXPモード期待です。

[ツリー表示へ]
タイトルRe^3: エクスプローラを操作したい
記事No13848
投稿日: 2009/07/14(Tue) 01:01
投稿者魔界の仮面弁士
> Set ie = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
> こちらでやりたい感じにできました!

良かったですね。
でも、うちの環境(Vista Biz 64bit with SP1  +  IE8) では動作しませんでした…。(T_T)


'C:\Windows\SysWOW64\ieframe.dll
Dim ie As SHDocVw.ShellBrowserWindow

'コンパイル エラー
'New キーワードの使用法が不正です。
'Set ie = New SHDocVw.ShellBrowserWindow

'実行時エラー429:
'ActiveX コンポーネントはオブジェクトを作成できません。
Set ie = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
'Dim o As Object
'Set o = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")


> 皆さんXP好きですか?
Office XP は好きですが、Office 2007 は未だに苦手です。
Windows は 6.x 系よりも 5.x 系の方が好みです。

# TabletPC だと、6.x 系の方が便利な事も多いのだけれども。

[ツリー表示へ]
タイトルRe^4: エクスプローラを操作したい
記事No13850
投稿日: 2009/07/14(Tue) 13:13
投稿者魔界の仮面弁士
> > Set ie = GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
> > こちらでやりたい感じにできました!
> 良かったですね。
> でも、うちの環境(Vista Biz 64bit with SP1  +  IE8) では動作しませんでした…。(T_T)

別の環境で試してみました。VB6 の無いPCだったので、Excel 2007 VBA での検証です。

Vista Home Basic 32bit with SP1  +  IE7 という環境でしたが、
 コンパイルエラー … New SHDocVw.ShellBrowserWindow
 正常に生成できた … GetObject("new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}")
という結果になりました。


シスさんの環境は 32bit 版 Vista でしょうか?

# 64bit 版 XP や 64bit 版 Windows Server だとどうなるのだろう?

[ツリー表示へ]
タイトルRe^5: エクスプローラを操作したい
記事No13851
投稿日: 2009/07/14(Tue) 13:25
投稿者シス
私の動作した環境は以下の通りです。
Vista Home Premium 32bit with SP1  +  IE8(8.0.6001.18783)

あと参照設定はieframe.dllを追加しただけです。

他の環境で動かなくなったら困っちゃいますね。。

Office2007は私も慣れないです。。メニューが。。
OSもOfficeもXP時代のものが一番慣れててやりやすいです。

[ツリー表示へ]