エクスプローラからコピーし添付ファイルNo.05261
エイト さん 02/05/13 21:59
 
 いつも鶴亀メールにはお世話になっております。

 当方は、出来る限りマウスに触らずにPC上で作業を行っており
鶴亀メールでも、キーボード上からさまざまな操作ができて
大変助かっております。

 しかし、新規メールを作成する際に添付ファイルを付加する際だけは
マウスを使用しております。
 "添付ファイルの挿入"は、パスを指定する処理が発生し、個人的には
少々面倒です。
 エクスプローラ上からファイルを選択しコピー(Ctrl+C)し
鶴亀編集画面上でペースト(Ctrl+V)すると添付ファイル化する処理が
欲しいと思っております。

 また受信メールについても同様で、本体画面で添付ファイルを選択し
コピーし、エクスプローラ上でペーストすることが可能になって欲しいです。


 尚、当機能はBeckyでは確認できませんでした。
 Outlookでは可能でした。

 多分、そんな簡単に実装できる機能ではないとは思いますが
(OLE?機能でしたか)まずは検討についてどうか
宜しくお願いいたします。
 既に実現可能でありましたら、方法をご教授下さい。

[ ]
RE:05261 エクスプローラからコピーし添付No.05262
fun さん 02/05/13 22:22
 
 エイトさんこんにちは、funです。

> また受信メールについても同様で、本体画面で添付ファイルを選択し
>コピーし、エクスプローラ上でペーストすることが可能になって欲しいです。

こちらに関しては少し面倒ですが出来るようです。以下に操作手順を
書いておきます。

[手順(二枠区切りの場合)]
    1.受信メールをエディタで開く
    2.Ctrl+Tabキーで添付ファイル枠に移動
    3.添付ファイルを選択
    4.コンテキストメニュー(マウスで右クリックしたときに出る
        ようなメニュー)をキーボード操作にて表示
    5.コンテキストメニューよりコピー(C)を選択
    6.エクスプローラの任意のフォルダを選択
    7.Ctrl+Vにて貼り付け
    8.以上

[ ]
RE:05261 エクスプローラからコピーし添付No.05269
秀まるお さん 02/05/14 18:10
 
 実は、エクスプローラからファイル自体をクリップボードにコピーした場合
の、そのファイル名を取り出す方法を知りません。

 OLE2関係でいろいろやるんだろうと思うんですが、勉強不足というか努力不
足というか、そもそもこの辺に手を出す元気が無いので知らないというかなん
ちゅうか。

 そもそも、この辺関係をやる前に、メールの移動/コピーをクリップボード
経由で出来るようにするという要望があったりもします。

[ ]
RE:05269 エクスプローラからコピーし添付No.05281
Kengo さん 02/05/15 12:25
 
>  実は、エクスプローラからファイル自体をクリップボードにコピーした場合
> の、そのファイル名を取り出す方法を知りません。

    if( ::IsClipboardFormatAvailable( CF_HDROP ) ) {
        if( ::OpenClipboard( hWnd ) ) {
            HGLOBAL h = ::GetClipboardData( CF_HDROP );
            LPDROPFILES pdf = (LPDROPFILES)::GlobalLock( h );
            LPCTSTR p = (LPCTSTR)( ((LPBYTE)pdf) + pdf->pFiles );
            while( *p != _T('\0') ) {
                TRACE( _T("%s\n"), p );
                p += ::lstrlen( p ) + 1;
            }
            ::GlobalUnlock( h );
            ::CloseClipboard();
        }
    }

こんな感じでフルパスを取り出せると思います。
Unicodeは試してませんが、DROPFILES::fWideがセットされているの
だろうと思います。

[ ]
RE:05281 エクスプローラからコピーし添付No.05284
秀まるお さん 02/05/15 14:17
 
 をを、すばらしい。全然知りませんでした。

 僕はてっきりOLE2のややこしいインタフェースを呼び出す物かと思ってました。

 とりあえずこの件は記憶にとどめておいて、バグが落ち着いたら何か考えます。

--------------------
 DoDragDropの最後のドロップ前に移動かコピーかのメニューを出す方法もご存じで
したら教えて欲しいなぁと…。ボソッ

[ ]
RE:05284 エクスプローラからコピーし添付No.05285
Kengo さん 02/05/15 16:38
 
>  DoDragDropの最後のドロップ前に移動かコピーかのメニューを出す方法もご存じで
> したら教えて欲しいなぁと…。ボソッ

「どうするんだろ?」と悩んだんですが、MSDNに「Support right-drag.」の
文字を見つけて「もしかして、右ドラッグでOLEドラッグ&ドロップすれば
いいだけでは?」とやってみたら、その通りで、ちゃんとメニューが
出ました。エクスプローラが(シェルが)勝手にやってくれるようです。

[ ]
RE:05285 エクスプローラからコピーし添付No.05286
Kengo さん 02/05/15 16:51
 
> 「どうするんだろ?」と悩んだんですが、MSDNに「Support right-drag.」の
> 文字を見つけて「もしかして、右ドラッグでOLEドラッグ&ドロップすれば
> いいだけでは?」とやってみたら、その通りで、ちゃんとメニューが
> 出ました。エクスプローラが(シェルが)勝手にやってくれるようです。

というか、秀丸エディタでやってみたら、右ドラッグできるようになってて、
(当然)ちゃんとメニューも出ました。
ということで、秀丸担当氏に聞いた方が早いのでは?

[ ]
RE:05286 エクスプローラからコピーし添付No.05289
秀まるお さん 02/05/15 17:17
 
 今、秀丸エディタのソースコードを見ました。何も変わったことはしてませんでし
た。

 単純に右ボタンでドラッグなら勝手にメニューが出るのやら?

 いろいろ試行錯誤してみます。

[ ]
RE:05289 エクスプローラからコピーし添付No.05290
秀まるお さん 02/05/15 17:23
 
 ううむ、試行錯誤するまでもなく出来てしまいました。

 単純に、LVN_BEGINRDRAGが来た時にはDROPEFFECT_COPY | DROPEFFECT_MOVEで
DoDragDropを呼び出せば勝手にメニューが出てくれるようです。

 いや、助かりました。ありがとうございます。

[ ]
RE:05284 エクスプローラからコピーし添付No.05292
エイト さん 02/05/15 20:53
 
> とりあえずこの件は記憶にとどめておいて、バグが落ち着いたら
> 何か考えます。
>
 お忙しいところすみませんが、今後の対応に期待しております。
 どうか宜しくお願い致します。

[ ]
RE:05292 エクスプローラからコピーし添付No.05295
秀まるお さん 02/05/16 17:41
 
 10行程度の追加で簡単に対応できたので次のバージョンに入れます。

 Kengoさん情報ありがとうございます。

[ ]
RE:05295 エクスプローラからコピーし添付No.05296
エイト さん 02/05/16 22:09
 
> 10行程度の追加で簡単に対応できたので次のバージョンに入れます。
>
 楽しみにしてます。
 秀まるおさん、Kengoさん、ありがとうございました。

[ ]
RE:05296 エクスプローラからコピーし添付No.05306
エイト さん 02/05/17 23:30
 
1.90版で実現できたのを確認致しました。ありがとうございました。

> 受信メールについても同様で、本体画面で添付ファイルを選択し
> Ctrl+Cでコピーし、エクスプローラ上でペーストすることが
> 可能になって欲しいです。
>
 上記についても、どうか実現の程を宜しくお願い致します。

[ ]