2009-03-31 16 views
0

C#アプリケーションをWindowsのデフォルトの「Print Screen」ハンドラにするにはどうすればよいですか?.NetアプリケーションでWindowsで印刷画面をグローバルに処理する

私はスクリーンキャプチャユーティリティを書いており、理想的には、デフォルトのプリントスクリーンハンドラを置き換えるか、そうでなければそれを引き起こすユニークなキーコンビネーションを持っていたいと思っています。

私はグローバルフックなどを使ってC++でそれを行う方法を知っていますが、これは.NETでどのように行うことができないのかは分かりません。また、スーパーであるメモリ常駐アプリケーションを使用せずにそれを行う方法がある場合。

答えて

1

限り、あなたはPrintScreenをキーをキャプチャするWM_KEYBOARD_LLフックを使用しているとして、あなたはC#でこれを行うことはできません理由はありません。これは、すべてのターゲットプロセスにDLLを注入する必要がないため、管理コードで使用できるいくつかのグローバルフックの1つです。その代わりに、コンテキストは処理のために元のアプリケーションに戻る。 http://www.seesharpdot.net/?tag=wh_keyboard_ll

+0

私はそれを試してみます。しかし、私のプログラムがキーダウンをキャプチャするために実行されなければならないことを意味します、そうですか? –

+1

@Assaf、はい、あなたのプログラマーは動いている必要があります。 – JaredPar

1

AutoHotKey(OpenSource、無料)を次のスクリプトで使用しないのはなぜですか?

このスクリプトはニュースグループAutoHotKeyから取得したもので、印刷画面をマップしてIrfanViewを使用します。プログラムを起動するために使用することができます。

~printscreen:: 
ifexist,%screenshot1%\irfanview.exe 
    { 
    run, "%screenshot1%\irfanview.exe" "/capture=0 /convert=%screenshots%\%A_now%_screenshot.jpg" 
    sleep,500 
    run,%screenshots% ;open folder 
    return 
    } 
return 


~!printscreen::  ;copy only active window 
ifexist,%screenshot1%\irfanview.exe 
    { 
+0

良い提案:

アダムさんのブログは、C#でのセットアップ方法などのフックに大きな柱があります。インストーラにサードパーティの依存関係を挿入する前に、コードでこれを行う方法を理解したいと思います。しかし、私は間違いなくそれを調べます。 –

+0

AutoHotKeyは本当に私のアプリケーションの一部としてカスタマイズしてパッケージ化することができないスタンドアロンアプリケーションです。また、サイズも約2MBです。一般的なショートカットツールとしては素晴らしいですが、既存のアプリケーションのためのショートカットプラグインではありません。 –

関連する問題