• ベストアンサー

VBでフォルダを開いて、左右に並べる

VB6にてフォーム上にテキストボックスが2つと、ボタンがあり、 各テキストボックスにフォルダのパスを書いて、ボタンを押すと指定のフォルダが「左右に並べて表示」の状態で開くものを作ろうとしています。 しかし、ShellExecuteではムリのようです。 このような事は可能なのでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#118114
noname#118114
回答No.2

直接の方法がないのでフォルダを開いた後にAPI「MoveWindow」でサイズ変更するのが一番簡単な方法でしょう。 MoveWindowはウィンドウハンドルで対象ウィンドウを指定します。 ウィンドウハンドルはAPI「FindWindow」で取得できます。 取得方法は他にもありますがこれが一番簡単な方法です。

gogojets
質問者

補足

ご返信、ありがとうございます。 いろいろ試してみましたが、ShellExecuteでopenしたウィンドウのハンドルが全く取得できません。 FindWindowはクラスIDやウィンドウキャプチャを指定しなければならず、ShellExecuteでopenしたウィンドウからそれらを取得するにはどうすれば宜しいのでしょうか? 宜しくお願い致します。

その他の回答 (1)

noname#118114
noname#118114
回答No.1

これはエクスプローラー風のリストを作りたいという事でしょうか? もう少し詳細にお願いします。

gogojets
質問者

補足

返信おくれまして、申し訳ありません。 ただ、2つのテキストボックスに入力されたパス先のフォルダをWindowsでタスクバーにあるフォルダをctrl+右クリックで出てくる「左右に並べて表示」を使用した時と同じ状態で画面上に並べたいだけです。 宜しくお願い致します。

関連するQ&A

  • VB2005について教えてください

    フォームを3つ作成し、実行時に最初に表示されるフォーム1にボタンを1つ配置し、そのボタンをクリックするとRadioButtonが一つとボタンが一つあるフォーム2が開きます。そして、フォーム2のボタンをクリックするとテキストボックスが一つとボタンが一つあるフォーム3が開きます。そこで、フォーム3のテキストボックスの中身をフォーム2のRadioButton.Textに表示させたいのですができません。フォーム1にRadioButtonを配置してRadioButton.Textに表示は出来るのですがフォーム2には表示させることが出来ません。どのようにすればできるのか教えてください。よろしくお願い致します。

  • データの保存方法について

    VB.netについての質問です。 フォームにテキストボックスとコンボボックスとボタンが取り付けられている状態で、ボタンを押すとテキストボックスとコンボボックスのデータを、指定したフォルダにテキストファイルで保存させる、というプログラムは可能でしょうか? 保存形式はテキストファイル以外でも構いません。 よろしくお願いします。

  • アクセス2000の使い方についての質問

    アクセス2000の使い方について2つ質問があります。だれか教えて下さい。 1.フォーム上に2つのテキストボックスを配置し、一方のテキストボックスに全角で入力した文字を、ボタンを押したら、他方のテキストボックスに半角で返すようにしたいのですが、どのようにすればいいでしょうか? 2.データが格納されているフォルダのフルパスを入力するためのフィールドを作成し、例えば、「d:\db\data\」のように入力するようにしてあるのですが、このフィールドに初心者でもフォルダのフルパスを入力できるようにしたいのですが、ボタンを押すと、フォルダを指定するダイアログボックスを表示させ、そのダイアログボックスでフォルダを選択させるようにすることはできないでしょうか? 教えてください。

  • VBレイアウトの落とし穴?

    VB6.0について質問です。 フォームからコマンドボタンによりフォームを起動し重なるような形で表示されている状態なのですが 起動したフォームからコマンドボタンでメッセージボックスを表示すると起動したフォームが消えてしまいます。 メッセージボックスを終了すると再び消えたフォームは表示されるのですが、消えてしまう理由は何でしょうか?? できれば消えないでフォームの上にメッセージボックスを表示したいのです>< ご回答おねがいします、、、

  • VBについて質問です

    VB2010でフォームデザイナーに、ツールBOXからテキストBOXとボタンを挿入します。テキストBOX内に数字を入力し、ボタンクリックで線がかけるようなプログラムを作成したいのですが、初心者で分かりません。コード等詳しく教えていただけないでしょうか。

  • ShellExecuteでエクセルファイルが起動しません。

     今、API関数GetOpenFileNameで「ファイルを開く」コモンダイアログを出して、  そこから選んだファイルのフルパスをテキストボックスに入れています。  さらにそのテキストボックスの中に入ったフルパスをAPI関数ShellExecuteで起動  させようとしているのですが、起動してくれません。  ちゃんとフルパスは入っています。  試しに新しいフォームを作ってShellExecute単独で、直接フルパスを  指定してやってみたところ起動できました。  問題は、パスではなく他の引数でしょうか??  ちなみに第1引数   : me.hwnd      第2引数   : "open"      第3引数   : フルパス      第4・5引数 : vbNullString      第6引数   : SW_SHOW と指定しました。  第4と5の引数はvbNullCharや""と指定してみました。  よろしくお願いします。

  • VBでこんなことできますか?

    お世話になります。 (1)FSO(FileSystemObject)を使用し、 ユーザーに任意でファイル(もしくはフォルダ)を選択して頂きます。(2つのボタンの内、一つはファイル選択用、もう一つはフォルダ選択用ボタンになっている) (2)選択されたフルパスが、テキストボックスに入ります。 ここまでは出来たのですが、この後、テキストのパスから ユーザーがファイルを選択したのか、フォルダを選択したのかを判断する事はできますか? つまり、 「C:\aaa\bbb\c.txt」がテキストボックスに入っていたら[ファイルが選択されたときの処理]へ、 「C:\aaa\bbb\ccc」なら[フォルダが選択されたときの処理]へ 飛びたいのですが、この判断ができません。なにか良い方法はないでしょうか? どなたかご教授願います。

  • VBについて

    Visual Basicで1つのオブジェクトの中にフォームを2つ作った時、片方のフォームに入力した情報を処理し、もう1つのフォームでその結果を見るにはどうすれば良いのでしょうか?  例えば、1つのフォームにテキストボックスAとコマンドボタンを貼り付け、もうひとつにテキストボックスBを貼り付けて、テキストボックスAにXと入力し、コマンドボタンを押すとテキストボックスBにYと入力されるような事です。  分かる方、是非教えてください。

  • ActiveX EXEとタイマーとVB

    いつもお世話になってます。 さっそく質問ですが、 ActiveX EXE側にタイマーとテキストボックスを持っています。 VB側のフォームにテキストボックスがあります。 VBからActiveX EXEを起動させ、決まった時間(例えば5秒おき)にVBのテキストボックスに ある文字を表示させる、ということがしたいです。 条件として、 VB側の動きは、 (1)最初のActiveXを起動 (2)ActiveXのSetとNothingだけしかしない                   しかしません。 なので、ActiveXからは「RaiseEvents」はしません。 ActiveX側で、タイマーイベント部分に、 ActiveXのフォームのテキストボックス.text = "文字" set △△ = ActiveXのフォームのテキストボックス (△△は、ActiveXのフォームのテキストボックスとしてセットされています。) のように、プログラムしてみたのですが、 VB側のテキストボックスに表示できませんでした。 尚、VB側は、ActiveX以外の処理があるので、途中からActiveXを起動させることになります。 この条件で、VBのテキストボックスに文字を表示させることはできますか? もしできるとしたら、どのような方法がありますか?? まだネットや本で調べ途中なので、もし何か参考ページがありましたら教えていただきたいです。 よろしくお願いします。

  • エクセルとVBのマッチング

    エクセルのデータのマッチングでVBを使おうと思っていますが、苦しんでます。 エクセルのシート1に参照元になるデータを取得する(ID、氏名など6つの項目)。 VBのユーザーフォームで6つのテキストボックスを用意する。 ユーザーフォームに入力されたIDがシート1のIDと一致したら、ユーザーフォームのテキストボックスにID以外の項目をシート1から拾い出す。 登録ボタンを押すとIDを含めた6つの情報がシート2に移動する。 といった処理をVBで行いたいと思うのですが、どなたかご教授下さいませんでしょうか。 よろしくお願い致します。

専門家に質問してみよう