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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows上のプログラム。「予め...
-
常駐ソフトの作り方
-
Process.Startで起動したアプリ...
-
1/100秒...。
-
AppActivateについて
-
エクセル起動時別プロセスで開く
-
URLエンコード 文字数について
-
QueryPerformanceCounter の使...
-
docker で python 環境を構築する
-
VBSから別のVBS起動するとき変...
-
H8マイコン
-
VBSでExcelのUserFormをエクス...
-
別のクラスからのタイマの起動方法
-
WinSCPで画像のように puttyを...
-
ミリ秒を○時間○分○秒にしたい
-
VBAでSeleniumからChromeを起動...
-
使用者の入力方法について
-
VBAでOutlookを終了させたい Ex...
-
Excelの残骸
-
windowsの連続起動時間取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでOutlookを終了させたい Ex...
-
Windows上のプログラム。「予め...
-
アウトルックが起動しているか...
-
VBSで起動したアプリが前面表示...
-
VBSから別のVBS起動するとき変...
-
EXCEL VBAから他アプリケーショ...
-
Process.Startで起動したアプリ...
-
VBで実行中のEXEファイルの情報...
-
エクセル起動時別プロセスで開く
-
VBAでSeleniumからChromeを起動...
-
ACCESS VBAで別のACCESS(mdb)を...
-
二重起動禁止にする理由とは
-
VBAでIEが起動しているか...
-
64bitで作ったEXEを32bitで起動...
-
Internet ExplorerをC言語プロ...
-
別アプリの起動、終了について
-
フォームの最前面が効かない
-
exeファイルを実行するとすぐに...
-
VB6で呼び出し元の情報を取得す...
-
ウィンドウを終了させたい・・・
おすすめ情報