アプリ版:「スタンプのみでお礼する」機能のリリースについて

VisualC++で、常駐ソフトを作りたいのです。

常駐ソフトと呼ぶのかどうか、わかりませんが、起動して、右下のタスクトレイとかにアイコンを表示させておいて、普段は何もしません。

しかし、たとえば無変換キーを押すと起動して画面のスクリーンコピーをとり、それをもとにいろんな処理をするようなものを考えています。

わたしはVisualC++でMFCではかなり複雑なソフトも作ったことがありますが、一般的なアプリしか作ったことがなく、常駐ソフトは初めてです。

作り方を教えてください。

なにか、スケルトンとか、あるでしょうか。


また、起動した際にデスクトップ上でのマウスポインタの位置を取得するコマンドとかも出来れば教えてください。
MFCでは起動したウインドウ上での座標とかはわかるのですが。

A 回答 (2件)

スケルトンとかは無いと思います。



タスクトレイアプリケーションであれば「Shell_NotifyIcon」を調べてみてください。
キーボードやマウスの監視であればシステムフックになりますので、まずはDLLの作り方を覚えてください。
その後、「SetWindowsHookEx」を調べてみてください。

コード的にはMFCでプログラムを組んだことがあれば簡単に実現できると思います。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。

DLLなら作ったことありますよ。
これって普通のライブラリですよね。ただダイナミックということで。
これがシステムフックとかと関係があるのですか。
DLLを使わないと出来ないようなことがあるのかな?

DLLを使わなくてもEXEファイルだけで出来るかと思ったのですが、、、
ひょっとして、普段はメモリ上にはおかず、起動した時にのみDLLをメモリ上に持ってきて、処理が終ったら捨てる、とかするためにDLLを使うのかな。

システムフックとDLLの関係がよくわかりません。
DLLに特別な機能があるのでしょうか?


それとスケルトンに関してはMFCみたいにVisualC++内で用意しているもの、ということではなく、誰かが作ったもの、どこかのHPで、参考になるソースがないかな、ということで。。。^^


それと、MFCはべたのSDKをクラスライブラリで上手にクラス化して使いやすくしたものですが、SDKをべたにそのまま使わないと作れないのでしょうか。
つまり、MFCは使えないと。。。

お礼日時:2009/08/18 17:57

ご質問の要求が複数にわたるものなので、スケルトンとかはないでしょう。


・タスクトレイにアイコンを登録するプログラム
・キーボードフックを行うプログラム
それぞれはサンプルなんかがあるでしょうから、それを一つに組み合わせる必要があります。

・タスクトレイへのアイコン登録
Windows では、「常駐ソフト」と呼ばれるようなソフトも、構造上は特殊なものではありません。
普通のアプリケーションでもタスクトレイにアイコン登録はできます(回答1にある Shell_NotifyIcon APIです)ので、あとは、普段はメインのウィンドウを非表示にしておくだけです。

・キーボードフック
キーボードフックについては、SetWindowsHookEx でできますが、

> システムフックとDLLの関係がよくわかりません。
キーボードフックなどを行うのに使う SetWindowsHookEx APIは、DLL からしか利用できません。
自分以外のアプリの挙動を制御するために、監視される側のアプリからもDLLを読み込む必要があるためです。
具体的な使用方法については、SetWindowsHookEx で検索すればいろいろ見つかります。


> 起動した際にデスクトップ上でのマウスポインタの位置を取得するコマンド
GetCursorPos APIで取得できます。
http://msdn.microsoft.com/ja-jp/library/cc364640 …
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。

なるほど、DLLでしか使えないAPIがあるのですね。

よくわかりました。
ありがとうございました。

お礼日時:2009/08/18 19:25

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