VC++.netで動画が再生されている時は、スクリーンセーバーが走らないプログラムを考えています
OSの設定で、3分でスクリーンセーバーが起動するように設定したのですが、動画が4分くらいあると
動画が終了していないのにスクリーンセーバーが起動してしまいます。
自分でスクリーンセーバーを起動するプログラムを製作したほうが良いのでしょうか?
プログラム初心者なのでどう手をつけて良いのかかりません
何か良い方法は、ないのでしょうか?
よろしくお願いします。
開発環境は、VC++のExpressEditionです。
No.3ベストアンサー
- 回答日時:
こんにちは。
補足頂きました。form.hの中の、Form1クラスより外、namespace ???より中です。
namespace winclr{
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
//追加
using namespace System::Runtime::InteropServices;
//追加
const unsigned int SPI_SETSCREENSAVEACTIVE = 17;
//追加
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")] int SystemParametersInfo(unsigned int uiAction, unsigned int uiParam, void* pvParam, unsigned int fWinIni);
/// <summary>
/// Form1 の概要
///
/// 警告: このクラスの名前を変更する場合、このクラスが依存するすべての .resx ファイルに関連付けられた
/// マネージ リソース コンパイラ ツールに対して 'Resource File Name' プロパティを
/// 変更する必要があります。この変更を行わないと、
/// デザイナと、このフォームに関連付けられたローカライズ済みリソースとが、
/// 正しく相互に利用できなくなります。
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: ここにコンストラクタ コードを追加します
//
//ウィンドウが開いた時に無効
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, 0, 0);
}
protected:
/// <summary>
/// 使用中のリソースをすべてクリーンアップします。
/// </summary>
~Form1()
{
if(components)
{
delete components;
}
//ウィンドウが無くなった時に有効
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, 0, 0);
}
private:
/// <summary>
/// 必要なデザイナ変数です。
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// デザイナ サポートに必要なメソッドです。このメソッドの内容を
/// コード エディタで変更しないでください。
/// </summary>
void InitializeComponent(void)
{
this->components = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300,300);
this->Text = L"Form1";
this->Padding = System::Windows::Forms::Padding(0);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
}
#pragma endregion
};
}
回答ありがとうございます
また長文ありがとうございます
メイン.cppでwindows.hを宣言していてuser32.dllも記述していたため
イベントの項目に
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, 0, 0);
を記述しただけでできてしまいました
ほんとうにお騒がせして申し訳ありませんでした
丁寧にご指導していただいてどうもありがとうございました。
No.2
- 回答日時:
こんにちは。
http://msdn.microsoft.com/ja-jp/library/aa984739 …
using namespace System::Runtime::InteropServices;
const unsigned int SPI_SETSCREENSAVEACTIVE = 17;
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
int SystemParametersInfo(unsigned int uiAction, unsigned int uiParam, void* pvParam, unsigned int fWinIni);
http://msdn.microsoft.com/ja-jp/library/cc429946 …
無効:
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, 0, 0);
有効:
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, 0, 0);
でスクリーンセーバーを停止出来ませんか。
回答ありがとうございます。
さっそく試してみたいのですが
初心者なので、どの部分に書いて良いかわかりません
メイン.cppに
using namespace System::Runtime::InteropServices;
const unsigned int SPI_SETSCREENSAVEACTIVE = 17;
[DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]
int SystemParametersInfo(unsigned int uiAction, unsigned int uiParam, void* pvParam, unsigned int fWinIni);
を記述するの?
Form.hのイベントで
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, 0, 0);
を記述すれば??
#using <mscorlib.dll>
は記述しなければならないのでしょうか?
初心者で申し訳ありませんが
御指導お願いします
No.1
- 回答日時:
いくらか質問に不明点があるため、的確ではないかもしれませんが、要は自作アプリ起動中はスクリーンセーバーを起動したくないということですよね?
どの程度のプログラミング初心者なのかわかりませんが、WM_SYSCOMMANDメッセージが来たとき、wParamの値がSC_SCREENSAVEなら問答無用で1を返すようにすれば起動しません。
一定時間毎にマウスカーソルをプログラム的に動かして抑制することも可能ですが、確実性は低いですね。(それでもマウスカーソルを動かして抑制する方式を採用しているソフトもあるようです)
参考URL:http://support.microsoft.com/kb/403844/ja
回答ありがとうございます。
プログラム暦2ヶ月の初心者です
axWindowsMediaPlayerが再生されている時にスクリーンセーバーが起動しないようにするので
PlayStateChangeのイベントで、
if (e->newState == 3)//再生中
の後にどう記述すればよいのでしょうか
初心者で申し訳ありませんが
ご指導のほど、よろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 電源オプション設定しても画面オフ、スリープ状態にならない 1 2022/06/16 23:07
- その他(OS) パソコンを離れていたら 画面に壁紙みたいな写真やカレンダーなどが表示されて 2 2023/04/20 05:22
- Windows 10 起動後の画像停止 4 2023/06/16 07:13
- Windows 10 スクリーンセーバーがタイムアウトにならない設定 1 2023/06/26 08:09
- その他(IT・Webサービス) macスクリーンセーバーの動画の保存先を知りたいです。 2 2022/05/22 14:53
- 音楽・動画 ノートパソコンで動画再生の設定の変更について*長文ですが何卒宜しくお願い致します。 3 2022/10/18 12:24
- BTOパソコン 数時間使用しない状態からPCを起動に失敗後、 自動修復画面で再起動をすると正常に動き出す 3 2022/09/26 22:01
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- Windows 7 更新プログラムを入れたら操作出来なくなりました(泣) 1 2023/02/26 11:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アウトルックが起動しているか...
-
Windows上のプログラム。「予め...
-
VBSから別のVBS起動するとき変...
-
ASPでPMT関数が使いたい...
-
VBで実行中のEXEファイルの情報...
-
WinSCPで画像のように puttyを...
-
リムーバブルディスクのフォー...
-
MSDOS(バッチファイル)でプロセ...
-
ウィンドウを終了させたい・・・
-
別アプリの起動、終了について
-
VB6で呼び出し元の情報を取得す...
-
VBで別のプログラムを起動し他...
-
エクセル起動時別プロセスで開く
-
VBSで起動したアプリが前面表示...
-
VBAでSeleniumからChromeを起動...
-
「FindWindow」、ウィンドウハ...
-
HTMLタグの中にDLLを埋め込む事...
-
mscomm32.ocxの登録方法
-
フォームの最前面が効かない
-
ACCESS VBAで別のACCESS(mdb)を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アウトルックが起動しているか...
-
VBAでOutlookを終了させたい Ex...
-
VBSから別のVBS起動するとき変...
-
Windows上のプログラム。「予め...
-
VBSで起動したアプリが前面表示...
-
VBで実行中のEXEファイルの情報...
-
キー操作 (WSH:コピー&ペー...
-
EXCEL VBAから他アプリケーショ...
-
Process.Startで起動したアプリ...
-
VBAでSeleniumからChromeを起動...
-
64bitで作ったEXEを32bitで起動...
-
ACCESS VBAで別のACCESS(mdb)を...
-
「FindWindow」、ウィンドウハ...
-
VBAでIEが起動しているか...
-
Shellで起動したプログラムのウ...
-
VBSでExcelのUserFormをエクス...
-
Vba アプリケーションが立ち上...
-
exeファイルを実行するとすぐに...
-
フォームの最前面が効かない
-
別アプリの起動、終了について
おすすめ情報