2009-05-21 22 views
2

どこから始めるべきかわかりません。ばかげた質問から始めましょう:Windowsタスクバーに置かれたプログラムを作成し、起動するとスクリーンセーバーを停止します

これにはどのような言語を使用しますか?手元にある課題にはどのようなものが適していますか?

次に、実際のもの:

が始まるからスクリーンセーバーを停止する方法は、カーソルの位置を変えるの短い、ありますか?そうでない場合は、カーソル位置を変更しても機能しますか?

答えて

1
  1. タスクバーにプログラムが表示されている必要はありません。
  2. レジストリ内のスクリーンセーバーを無効にすることができれば、プログラムは一切必要ありません。
  3. あなたがしたいことおそらくは、デスクトップウィンドウにMOUSE_MOVEイベントを送信することによって達成することができます。 C#(現時点で唯一の言語)を使用したい場合は、this articleを見ることができますが、このタスクにはWinAPIを使用する単純なCプログラムが適しています。
+1

ユーザーは、アプリケーションの実行中にスクリーンセーバーを無効にしたいと思っていました。システムトレイに入れて、簡単に電源をオン/オフすることができます。私はあまりにもそれを読んでいる可能性があります。 – Nate

+0

あなたは正しいです。 –

0

.NETは簡単にアプリケーションをシステムトレイに置くことができます(System.Windows.Forms.ControlsのNotifyIconオブジェクトのチェックアウト)。

私はスクリーンセーバーを防ぐためにSetCursorPos(http://msdn.microsoft.com/en-us/library/ms648394(VS.85).aspx)APIコールを使用することができます。実際にマウスを動かさないように現在の位置に設定してください。

7

SetThreadExecutionStateは、ES_CONTINUOUSフラグとES_DISPLAY_REQUIREDフラグを渡すと、スクリーンセーバーが表示されないようにするか、マシンが自動的にスリープ状態にならないようにします。

2

私はちょうどあなたが求めていることを正確に行うアプリを書いた。タスクバーではなくシステムトレイのアイコンとして実行され、グローバルメッセージフックを使用してWM_SYSCOMMAND/SC_SCREENSAVE通知がどのアプリケーションにも届かないようにします。その通知がDefWindowProc()関数に到達しない場合、スクリーンセーバーは決して実行されません。

関連する問題