
VisualC++で、常駐ソフトを作りたいのです。
常駐ソフトと呼ぶのかどうか、わかりませんが、起動して、右下のタスクトレイとかにアイコンを表示させておいて、普段は何もしません。
しかし、たとえば無変換キーを押すと起動して画面のスクリーンコピーをとり、それをもとにいろんな処理をするようなものを考えています。
わたしはVisualC++でMFCではかなり複雑なソフトも作ったことがありますが、一般的なアプリしか作ったことがなく、常駐ソフトは初めてです。
作り方を教えてください。
なにか、スケルトンとか、あるでしょうか。
また、起動した際にデスクトップ上でのマウスポインタの位置を取得するコマンドとかも出来れば教えてください。
MFCでは起動したウインドウ上での座標とかはわかるのですが。
No.1ベストアンサー
- 回答日時:
スケルトンとかは無いと思います。
タスクトレイアプリケーションであれば「Shell_NotifyIcon」を調べてみてください。
キーボードやマウスの監視であればシステムフックになりますので、まずはDLLの作り方を覚えてください。
その後、「SetWindowsHookEx」を調べてみてください。
コード的にはMFCでプログラムを組んだことがあれば簡単に実現できると思います。
お返事ありがとうございました。
DLLなら作ったことありますよ。
これって普通のライブラリですよね。ただダイナミックということで。
これがシステムフックとかと関係があるのですか。
DLLを使わないと出来ないようなことがあるのかな?
DLLを使わなくてもEXEファイルだけで出来るかと思ったのですが、、、
ひょっとして、普段はメモリ上にはおかず、起動した時にのみDLLをメモリ上に持ってきて、処理が終ったら捨てる、とかするためにDLLを使うのかな。
システムフックとDLLの関係がよくわかりません。
DLLに特別な機能があるのでしょうか?
それとスケルトンに関してはMFCみたいにVisualC++内で用意しているもの、ということではなく、誰かが作ったもの、どこかのHPで、参考になるソースがないかな、ということで。。。^^
それと、MFCはべたのSDKをクラスライブラリで上手にクラス化して使いやすくしたものですが、SDKをべたにそのまま使わないと作れないのでしょうか。
つまり、MFCは使えないと。。。
No.2
- 回答日時:
ご質問の要求が複数にわたるものなので、スケルトンとかはないでしょう。
・タスクトレイにアイコンを登録するプログラム
・キーボードフックを行うプログラム
それぞれはサンプルなんかがあるでしょうから、それを一つに組み合わせる必要があります。
・タスクトレイへのアイコン登録
Windows では、「常駐ソフト」と呼ばれるようなソフトも、構造上は特殊なものではありません。
普通のアプリケーションでもタスクトレイにアイコン登録はできます(回答1にある Shell_NotifyIcon APIです)ので、あとは、普段はメインのウィンドウを非表示にしておくだけです。
・キーボードフック
キーボードフックについては、SetWindowsHookEx でできますが、
> システムフックとDLLの関係がよくわかりません。
キーボードフックなどを行うのに使う SetWindowsHookEx APIは、DLL からしか利用できません。
自分以外のアプリの挙動を制御するために、監視される側のアプリからもDLLを読み込む必要があるためです。
具体的な使用方法については、SetWindowsHookEx で検索すればいろいろ見つかります。
> 起動した際にデスクトップ上でのマウスポインタの位置を取得するコマンド
GetCursorPos APIで取得できます。
http://msdn.microsoft.com/ja-jp/library/cc364640 …
お返事ありがとうございました。
なるほど、DLLでしか使えないAPIがあるのですね。
よくわかりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン 常駐ソフトを常駐させたくないのに・・・ 3 2022/10/11 11:23
- フリーソフト アイコンとして保存アプリが不調 2 2022/04/16 06:39
- CPU・メモリ・マザーボード パソコン動作遅いです。スペックは、2014年に買った dell i54460 tg705 メモリー8 11 2023/04/06 10:05
- Windows Me・NT・2000 widows xpのエラーで利用ができなくなりました 3 2022/12/21 13:43
- Windows 10 Windows10でセーフモードが出来ません。 2 2022/04/22 23:37
- Windows 10 とにかくパソコンが遅すぎる 6 2022/11/16 19:55
- Windows 10 パソコンの操作ができません。。。 4 2022/06/02 18:38
- iOS Windows OSにおける、ショートカットキーを受け取るソフトウェアの決定 5 2022/11/27 16:05
- その他(OS) アイコンに、四角い枠が出来てしまいます。。 2 2022/11/19 16:05
- Windows 10 エクスプローラで希望の場所が表示できない 2 2023/06/29 15:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キー操作 (WSH:コピー&ペー...
-
VB6.0からエクセルを起動
-
vba アプリの起動確認でAutocad...
-
別アプリ終了させる
-
二重起動禁止にする理由とは
-
Java 条件によって起動させない
-
Eclipseでjavascriptが動かない
-
アウトルックが起動しているか...
-
wshで既に立ち上がっているアプ...
-
ミリ秒を○時間○分○秒にしたい
-
VB6からエクセルの印刷機能...
-
VBAでSeleniumからChromeを起動...
-
Excelが起動しているかを通知す...
-
フォームの最前面が効かない
-
textAreaで指定した場所だけの...
-
コマンドボタンをクリックする...
-
MSDOS(バッチファイル)でプロセ...
-
Internet Explorer にURLを引...
-
gccプログラムで複数の実行ファ...
-
EXCEL VBAから他アプリケーショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
VBSから別のVBS起動するとき変...
-
アウトルックが起動しているか...
-
Process.Startで起動したアプリ...
-
VBで実行中のEXEファイルの情報...
-
EXCEL VBAから他アプリケーショ...
-
Windows上のプログラム。「予め...
-
VBSで起動したアプリが前面表示...
-
VBAでSeleniumからChromeを起動...
-
exeファイルを実行するとすぐに...
-
VB6で呼び出し元の情報を取得す...
-
フォームの最前面が効かない
-
AppActivateについて
-
宛先ナシでメールソフトを起動...
-
64bitで作ったEXEを32bitで起動...
-
C# 他のアプリケーションを優先...
-
MSペイントを画像ファイル名を...
-
ウィンドウを終了させたい・・・
-
C#のフォームから起動するブラ...
-
Menuのショートカットの処理が...
おすすめ情報