• 締切済み

【VB6】指定したハンドルのウィンドウがフォルダかどうか

WinXP Pro × VB6 指定したハンドルのウィンドウがフォルダ(explorer.exe)かどうかを調べる方法がわかりません。 どなたか教えてください。

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

あまりスマートじゃないかも... Public Function IsExplorer(ByVal hWnd As Long) As Boolean   Const EXE_NAME = "EXPLORER.EXE"   Dim w As Object   Dim s As String   For Each w In CreateObject("Shell.Application").Windows()     If w.hWnd = hWnd Then       s = Right$(UCase$(w.FullName), Len(EXE_NAME))       IsExplorer = CBool(s = EXE_NAME)       Exit For     End If   Next End Function

freednia
質問者

お礼

ありがとうございます。 KenKen_SPさんのコードも参考にしながら、もう少し考えてみます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 指定のフォルダをエクスプローラーで開く

    解る方、教えて下さい。 リンクでなく、INPUT TYPE=SUBMIT ボタンにて 指定のフォルダを新しい別ウィンドウにてエクスプローラーにて開く方法(VBスクリプトにて)を教えて下さい。 (例) DIM FOLDERNAME If Request.Form("FOLDERINQ") <> "" Then FOLDERNAME = "\\サーバー名\フォルダー名" 'エクスプローラーを開く (ここにどう書くのかが解りません。) END IF 宜しくお願い致します。

  • VBからの作業フォルダ指定

    VB6.0について質問です。 SPSSという統計ソフトをVBから起動しています。 起動後、統計ソフトから外部データの参照を行うときに プロパティから作業フォルダを指定しているのにもかかわらず System32のフォルダが開いてしまいます。 この原因にはどのようなことが考えられますか? SPSSを単独で起動した場合は指定されたフォルダが開きます。 VBから起動ソフトの作業フォルダを指定する必要があるようなのですが お知恵をお貸しください><

  • 指定したフォルダ内の最新ファイルのみをコピー

    WinXP Pro × VB6 指定したフォルダ内で「更新日時」が最新のファイルの名前を取得するにはどのようにすればよいでしょうか? ファイル名がランダムのため、困っています。

  • VBで「ファイル名を指定して実行」と同様の動きを再現

    VB6、WindowsXP VBのプログラムからあるフォルダを開きにいく単純なプログラムを作成しています。 通常のローカルフォルダであれば、Shell関数でExplorer.exeにパスを渡すだけで問題ないのですが、うまくいかないのは、 開きにいくパスがネットワークパス(\\[サーバ名]\[共有名])の場合で、サーバーにアクセスするのに認証が必要となる場合です。 ファイル名を指定して実行に「\\[サーバ名]\[共有名]」を打ち込んで実行した場合は、Windowsが出してくる認証ダイアログ(ユーザ名、パスワードを聞いてくる)が表示されて、ユーザーが正しいID、パスワードを入力すれば、エクスプローラで共有フォルダが開きます。 この動きがまさにやりたいことなのですが、 Shell関数を使用した場合、引数に「Explorer.exe \\[サーバ名]」と指定した場合はファイル名を指定して実行と同じなのですが、 「Explorer.exe \\[サーバ名]\[共有名]」を指定した場合、認証ダイアログが表示されずにエラー(ディレクトリが無効というような)となってしまいます。おそらく先にサーバ認証を行わずに直接共有を見に行ってしまって存在が掴めないのだと思います。 VBでファイル名を指定して実行と同様の動きを再現する方法をどなたかご存知ないでしょうか? 尚、shellexecuteやVB.NETでprocess.startなどでもやってみましたがshell関数と同じ動きでした。

  • ウィンドウハンドルの取得方法

    ダイアログの表示されないEXEを起動させて、FindWindowを使用してそのEXEのウィンドウハンドルを取得したいのですが上手くいきません・・。 FindWindowの第一引数は「ウィンドウのクラス名」を指定するようなのですが、「ウィンドウのクラス名」の意味が良くわかりません。第二引数は「ウィンドウ名」を指定するようなのですが、今回のようなアンダーグラウンドで動くEXEには「ウィンドウ名」は無いと思ってよいのでしょうか? ちなみにダイアログのあるEXEならウィンドウハンドルを取得できます。 お分かりの方がいらっしゃれば、ご教授願います。

  • フォルダが常に別ウィンドウで開く

    以前に[フォルダ オプション]→[ファイルの種類]で「フォルダ」や 「ファイル フォルダ」のアクションをいじってしまって以来、 フォルダを開くと常に新しいウィンドウで開くようになってしまいました。 新規でアクションを作成し、プログラムに「explorer.exe」を指定しても解決しません。 同じフォルダで開くようにするにはどうすればいいでしょうか。

  • ActiveXDLL(VB)にウィンドウハンドルを受け取るメソッドを用意したい

    VB6で作成したActiveXDLLに、ウィンドウハンドルを渡すためのメソッドを実装したいと思います。 ActiveXDLLを使用するクライアントはCで作成しており、クライアント側で表示するウィンドウのボタンを押下した際にActiveXDLLのCOMコンポーネントをインスタンス化して、クライアントのウィンドハンドルをCOMコンポーネントに渡したい次第です。 VBでウィンドウハンドルを受け取るFunctionを作成したことがなく、また調べてみたものの解決策を見出すことができませんでしたので、よい方法や参考HPがあれば教えていただきたいと思っております。 よろしくお願いいたします。

  • VB.Netでexe間のアクセス方法

    VB.Netでexe間のアクセス方法を教えて下さい。 おそらく、ウィンドウハンドルを取得してから、 ハンドルを元に、exeにアクセスすると思うのですが、 ウィンドウハンドルの取得方法が分かりません。 または、そのexeのオブジェクトを作り、いつもの フォームみたいに、いろいろなプロパティ、メソッドの アクセスを試みたいのですが。 Shellでexeを実行する方法もお願いします。

  • ウィンドウハンドルの座標を調べることはできますか?

    VB6環境です 様々なブラウザに対してフォーカスさせずにクリック操作をさせたいと考えています 現在、一応それは完成しました しかし、ブラウザを画面左上に置いた(top座標=0、left座標=0)場合です ブラウザの位置がどこにあろうとクリックさせたいのですが、クリック座標の指定が ゲットしたウィンドウハンドルをもつオブジェクトの原点座標を原点として指定するため、 ブラウザを一番左上に持ってこないと動作してくれません わかりにくい説明ですが、知りたいことは  「任意のブラウザの中のコンテンツを表示する領域(このウィンドウハンドルはゲットできました)の   原点座標をVB6にて取得したい」 ということです よろしくお願いします

  • Windows7のフォルダについて

    Windows7のiTunesにおいて、保存先が「G:\ユーザー\新しいフォルダー\iTunes\iTunes Media」というフォルダに指定されています。 しかし[G:\ユーザー\新しいフォルダ]とある「新しいフォルダ」というものはエクスプローラで見ても存在しません。 これはどういうことなのでしょうか? またこのままでいいのでしょうか?

このQ&Aのポイント
  • 数日前から「バッテリーが正しく検出されませんでした。バッテリーを接続しなおすか、充電してください。」というメッセージが表示されるようになりました。
  • 画面下部の電池のマークも電源を差し込んでも白い表示のままです。
  • どのような対処をすればよいですか?
回答を見る