• 締切済み

特定のアプリにファイルを渡す方法

特定のアプリにファイルを渡す方法 読める、読めないは別にしてドラッグ&ドロップの様にファイルを渡したいのですがその方法が分かりません。 何か強制的に渡せるような関数があるのでしょうか? VB6でXPです。

  • rex_7
  • お礼率58% (7/12)

みんなの回答

回答No.2

VB6.0 で作成した、EXE のファイル上に、テキストファイルやBMPファイルをドラッグ&ドロップで 渡して表示したいなら、MSDN (ヘルプ)でCommand 関数について調べて見て下さい。使用例も記載 されています。

回答No.1

単純な起動時引数であれば以下のように 参考 http://okwave.jp/qa/q5857360.html Private Sub Command1_Click()   Dim l_strコマンド  As String   Dim l_strパラメタ  As String      l_strコマンド = "notepad.exe"      l_strパラメタ = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\test.txt"      Call 実行(l_strコマンド, l_strパラメタ)    End Sub Sub 実行(p_strCmd As String, p_strPrm As String)   Dim l_strCmd  As String      l_strCmd = """" & p_strCmd & """" & vbTab & p_strPrm      Call CreateObject("WSCript.Shell").Run(l_strCmd) End Sub ってことではなく、実行中アプリに渡すってことですか? それであればちっとばかり厄介です。 そもそもドラッグ&ドロップというのは、アプリに行うものではなく、特定のウィンドウハンドルに行う物です。 ですので他アプリケーションのどのウィンドウ(テキストボックスや、それらの各種をグルーピングしているオブジェクトウィンドウ)に対して行うかを考慮しなければなりません。 例えばエクスプローラにドラッグを行う場合、ファイル一覧部分のリストビューにドラッグを行うのか、あるいはフォルダ一覧のツリービューに行うかを定める必要があります。 さらにフォルダ一覧部分であれば、どのフォルダ(ツリーアイテム)に行うかの状態を取得しなければなりません。 エクセルに行うにしても、エクセルのメインウィンドウハンドルを取得して、そこにドラッグ偽装をさせないといけません。 エクセルのメニューバーウィンドウにドラッグさせても意味がありません。 そしてドロップ先が定まった後、ドラッグ&ドロップ偽装を行う事が可能となります。 その後の実現方法として大きく二つがあります。 ※1.直接共有メモリにファイル情報を書き込み、ドラッグ終了通知を送る方法 ※2.ドラッグ元のファイルをエクスプローラで表示させ、mouse_event(API)でマウスダウン→そのあと対象のウィンドウ位置でmouse_event(API)でマウスアップ 私は「とあるメーラ」から「Outlook」へのメール環境移行ツールとして、※2の方法で実現を行った経験があります。 >特定のアプリにファイルを渡す方法 「特定アプリ」を限定できるのであれば、多少のサンプルを載せる事もできるとは思うのですが、、、 (上記の解説が理解できない場合は、仕様の変更をお勧めいたします。)

関連するQ&A

  • APIイベントを発生させる方法を教えてください。

    自作アプリケーション(WindowsのVB)に、 メールファイルをOutLookソフトからドラッグドロップして、ドラッグドロップのAPIイベントを発生させたいのですが、できずに困っています。 (ちなみに、 OutLookソフトからメールファイルをデスクトップ上へドラッグドロップできます。その、デスクトップ上のメールファイルを、自作アプリケーションへドラッグドロップすると、ドラッグドロップのAPIイベントが発生します。) FormのLoadイベントで、2個のAPI関数を実行しています。 (1)サブクラス化開始    Call SubClass(フォーム名.hwnd) (2)フォームがドロップファイルを受け入れるよう設定    Call DragAcceptFiles(フォーム名.hwnd, True) どなたかアドバイスをお願いします。

  • 異なるドライブ間におけるファイルの左ドラッグがコピーになる仕様を変更するアプリ

    普通、異なるドライブにファイルを左ドラッグしドロップするとコピーになります。「右ドラッグ→移動」や「SHIFT+左ドラッグ」などの操作を行えば移動することは可能ですが、どちらも左ドラッグより面倒なので左ドラッグで移動を標準操作にしたいです。 色々調べた結果XPの設定を変更することでこの仕様を変更する方法は見つかりませんでした。 そこで、これを実現する常駐アプリなどをご存知の方がいましたらご教授をよろしくお願いします。

  • コンソールアプリの起動パラメータ について

    ・環境   XP, Borland C++ Compiler 5.5 ・使用言語   C++ コンソールアプリを作成しています。 コンパイルして出来上がったEXEのアイコンに、何かファイルを ドラッグ&ドロップすると、そのファイルがパラメータとなって EXEが起動されると思うのですが、ここで疑問があります。 (1)最大パラメータ数というのはどこかに規定されているのでしょうか。 (2)複数のファイルをドラッグ&ドロップした時に、EXEに渡される順番というのはどのように決定されるのでしょうか。 よろしくお願い致します。

  • D&Dでファイルをコピーをしたい

    業務上、ダブルクリックでファイルをコピーするバッチファイルを作成して使用しています。 コピー元とコピー先は毎回同じですが、ファイル数やファイル名は毎回変わります。 したがって、バッチファイルの中身を毎回書き換えています。 バッチファイルの記述をドラッグ&ドロップに対応するような構文にできれば、 ファイル名が変わってもドラッグ&ドロップでファイルがコピーできて便利だなと思ったのですが、 それは可能なのでしょうか。 可能であれば、記述をお教えいただけますでしょうか。 ネットを検索しましたが、VBでドラッグ&ドロップを実現する記述がたくさんありますが、 敷居が高くて理解できませんでしたし、 コマンドプロンプトのコマンドも探しましたが、見つかりませんでした。 set inputとset outputで特定のフォルダ内のファイルをバッチで参照して連続してコピーしてくれないかなと思ったのですが、 現在試してみています。

  • ファイルの移動方法

    最近PCを買い替えたのですが、ファイルの並べ替えの方法がわかりません。 これまではフォルダ内のファイルをドラッグアンドドロップで並べ替えができたのですが、できなくなってしまいました。 どうしたらできるようになるのでしょうか? 方法よろしくお願いします。

  • VBでファイルの判定

     VBでドラッグドロップやcommondialogなどで読み込まれたファイルの拡張子の判定をしたいのですがどうしたらよいかわかりません。  たとえば、テキストファイルが読み込まれるとテキストボックスに表示、ほかのファイルが読み込まれると違う処理をするというようなことをしたいのですがわからないので教えていただきたいです。

  • Firefoxで表示された画像をドラッグ&ドロップで保存する際、特定の

    Firefoxで表示された画像をドラッグ&ドロップで保存する際、特定の画像ビューアにドロップするとファイル形式がbmpになり、困っています。 保存したいjpg画像がFirefox上に表示されているとき、 エクスプローラやMDIE(ファイラ)上にドラッグ&ドロップすると そのままjpg画像として保存されるのですが、 画像ビューア(Vix、Linar等)へドラッグ&ドロップしたとき 強制的に画像がbmpになってしまいます。 お気に入りの画像ビューアなので今更他へ乗り換えたくないのですが、 Firefoxにも画像ビューアにもそれらしき設定項目は見つからず困っています。 これらの画像ビューアに直接同じファイル形式で保存する方法は無いでしょうか。 ○環境 Win XP SP3 Firefox 3.6.8 Vix 2.21 (Linar 1.6) Firefoxの履歴およびキャッシュの削除は試しましたが変化ありませんでした。 また、元画像がbmpだったということはありません。確実にjpgでした。 jpgのみならず、PNGやGIF画像でも同様にbmpで保存されています。

  • VBSを起動後にファイルをドラッグ&ドロップ

    [環境] Windows 7 お世話になります。 完全にお遊び程度の内容になりますが、 VBSでドラッグ&ドロップしたファイルのファイル名を取得するプログラムを 作成しているのですが、 検索してもそれらしき方法が見つからずヤキモキしています。 まだ起動していないVBSファイルに対してのドラッグ&ドロップする方法であれば 結構HITするのですが、そうではなく私がやろうとしているのは、 既に起動しているVBSのアプリにドラッグ&ドロップをしたファイル名を 取得したいのです。(ちなみに取得したいのはフルパス) 取得したファイル名はInputBoxか何かに表示する程度でいいのですが、 案外むずかしかったりするのでしょうか? ご回答よろしくお願いします。

  • PIDからプロセス・アプリを特定する方法

    タスクマネージャーやtasklistでPIDを参照したときに そのPIDからプロセス・アプリを特定する方法がわかりません。 とりあえずイメージ名にexeのファイル名はわかります。 専用のexeの場合にはそれで足りますがJavaアプリの場合にはそれではわかりません。 eclipse立ち上げてJMeter立ち上げてTomcatを複数立ち上げて… などとやっているとjavaw.exeが複数出てきます。 Linuxの場合には起動時の引数を調べることにより何のアプリなのか特定できます。 がWindowsの場合の調べ方がわかりません。 Linuxと同様に起動時の引数を調べられれば十分です。 それ以外の方法でも特定できればうれしいです。 PIDからプロセス・アプリを特定する方法 これを教えてください。よろしくお願いします。

  • ドラッグアンドドロップでファイルを読み込む方法を教えて下さい。

    一応いま手元にあるのはVB.NET2003なのですが、 これを使って複数のファイルから指定した行の内容をコピーして出力するプログラムを作りたいと考えています。 そのためには 1.ファイルをドラッグアンドドロップしてファイルの内容を読み込む 2.読み込んだ内容を順番に出力する機能が必要になります。 それでドラッグアンドドロップによりファイルを読み込む記述を探しているのですが、 http://www.atmarkit.co.jp/fdotnet/dotnettips/676dragdrop/dragdrop.html ここにあるように、 1.フォームのAllowDropプロパティをTrueに設定する 2.フォームのDragEnterイベント・ハンドラを記述する 3.フォームのDragDropイベント・ハンドラを記述する ということを順番に行えば良いわけですが、1番はもちろん分かりますが、2番と3番がどうして良いのか分かりません。 本屋で一通りVBの本を見てみたのですが、どの本にもドラッグアンドドロップについて書かれてある本はありませんでした。 検索などすると、確かにDragEnter、DragDropに関する記述は見つかるのですが、難しくてどうしても理解出来ません。 どなたか易しく教えて頂けないでしょうか? よろしくお願い致します。