[BlueLeaf1336]> DOWNLOAD> UnUtility>

マウスカーソル閉じ込めツール EncloseMouse

historyTOP

2006/09/05:作成

downloadTOP

最新版:EncloseMouse20060905.zip(204,750bytes)※ソースコードと実行ファイルです。

overviewTOP

用途不明プログラムシリーズです。テストアプリといったほうが正確かもしれません。

もともとの動機となったのは、10枚以上の画像から必要な場所を切り出す、というのをやったことからです。この「必要な場所」というのが、すべて同じ位置で同じサイズで、IrfanView を使ってちまちまと切り出したんですが、いちいち選択領域を指定してマウスを微妙に操って必要な幅と高さを指定してトリム、この操作が非常に邪魔くさかったわけです。

今思えば、IrfanView の一括変換で切り出し位置とサイズを指定すればええやんと思わなくもないですが、確か画像の全体のサイズを75%に縮小してから切り出したり、そのままのサイズで切り出したりと、実際の画像を見ながらでないとできなかったような気がします。

そこで、このプログラムです。作って使った感じでは実用にならないですが、コンセプトは、スクリーン上で指定した領域からマウスがはみ出さないように制限したり制限を解除したり、を簡単に切り替えることで、画像処理プログラムによくある「マウスを使った選択領域の指定」をバシバシとやろうじゃないか、というものです。

screenshotTOP

この画面では、現在のスクリーン上でのマウスの位置を表示しています。それから、閉じ込めようと思っている矩形の左上と右下の座標を表示しています。

ただし、矩形の左上と右下の座標は手入力などでは指定できません。マウスを目的の場所に持っていって「Alt+A」を押すことで左上を指定、「Alt+B」を押すことで右下を指定します。

「Alt+C」で指定した領域にマウスを閉じ込めます。マウスがその領域からはみ出さないので、マウスを左上にぶつけてから右下いっぱいまで領域をビシッと選択できるようになります。

操作が終われば「Alt+D」で領域の制限を解放します。

マウスを閉じ込めている最中は、「LOCKED!!」と画面に表示しています。また、閉じ込めをやめる時のショートカットキーも表示します。

そえから閉じ込めた瞬間(「Alt+C」を押した瞬間)は、閉じ込める範囲を一瞬だけ強調表示しています。

ココまでの説明で「Alt+」をショートカットキーと言いましたが、この画面で(多分)変更することができます。でも変更を記憶しません。

他のアプリケーションや自分自身が指定したショートカットとぶつかる場合は、全てのショートカットをキャンセルしてしまいます。(閉じ込めるだけ閉じ込めて、キャンセルできなくなっても困るので...)

EncloseMouse20060905.zip(204,750bytes)※ソースコードと実行ファイルです。

いろいろと書いてきましたが、後で自分が見たときのための覚書以下のクォリティです。

codeTOP

このプログラムの中心となる処理だけ抜き出しておきます。

//-----------------------------------------------------------------------------
//  カーソル閉じ込め
procedure TForm1.Lock();
begin
    if (FRect.Left <> FRect.Right) and (FRect.Top <> FRect.Bottom)
    and (FRect.Left < FRect.Right) and (FRect.Top < FRect.Bottom) then
    begin
        ClipCursor(@FRect);
        FLocked := True;
        LblCancelKey.Caption := 'To Unlock ' + ShortCutToText(HotKey4.HotKey);
        PnlLock.Show();
        FlashDesktopCanvas(FRect, 100);
    end;
end;

//-----------------------------------------------------------------------------
//  カーソル解放
procedure TForm1.UnLock();
begin
    ClipCursor(nil);
    FLocked := False;
    PnlLock.Hide();
end;

ClipCursor の使い方です、早い話。

少しだけ触ってみましたが、マウスカーソルを閉じ込めた状態で、IrfanView で矩形を選択し(ココまでは大丈夫)、「Ctrl + T」で画像を切り出してみると、マウスの閉じ込めがキャンセルされていました。目的は果たしているんですが、このプログラムとしては閉じ込めたままのつもりなので、画面に「LOCKED!!」ってな感じで間抜けな表示がされています。

その程度です。

EOFTOP