dポイントプレゼントキャンペーン実施中!

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

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

A 回答 (2件)

VB6.0 で作成した、EXE のファイル上に、テキストファイルやBMPファイルをドラッグ&ドロップで


渡して表示したいなら、MSDN (ヘルプ)でCommand 関数について調べて見て下さい。使用例も記載
されています。
    • good
    • 0

単純な起動時引数であれば以下のように



参考
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の方法で実現を行った経験があります。


>特定のアプリにファイルを渡す方法
「特定アプリ」を限定できるのであれば、多少のサンプルを載せる事もできるとは思うのですが、、、

(上記の解説が理解できない場合は、仕様の変更をお勧めいたします。)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!