ページ 11

スタンバイからの復帰時にソフトを実行したいのですが・・・

Posted: 2007年4月28日(土) 14:18
by wakaba
ABもプログラムも初心者です

パソコンの起動時に 動作させるソフトは スタートアップに登録すれば OKですが スタンバイ復帰などは うまく動きません。
スタンバイ状態(サスペンド)または 休止状態(ハイバネーション)からの 復帰時に動作させるには どのような方法があるのでしょうか?

以前このコミュに投稿したときに ヘルプに記入があったものを聞いてしまった事がありました。失礼なので 今回はサイト内検索やヘルプを充分確認しましたが 見つかりませんでした。
Win32APIでは システムのパワー状況を取得するものが ありました。
Declare Function GetDevicePowerState Lib "kernel32.dll" _
(ByVal hDevice As Long, pfOn As Long) As Long

これにより フル稼働中で ないとき(ハードディスク等)をタイマー起動により調べて復帰したことを 得ようと考えましたが デバイスのハンドルの取得がよく解りません。また こんな方法で 良いかの確信もありません。
スタンバイ状態と休止状態は 意味が違うような記述があったので どちらか一方でも 方法はないのでしょうか?
APIなどの知識も少ないので 初歩的な質問ですが よろしくおねがいします

Posted: 2007年4月28日(土) 16:06
by 7
よく分からないし試してみる気もないので、インターネットで見つけた参考になりそうなサイトへのリンクだけを書いておきます。

モバイル PC の電源管理
http://www.winapi-database.com/Kimagure/No4/
http://msdn.microsoft.com/library/ja/de ... gement.asp

Posted: 2007年4月28日(土) 17:07
by 瑠璃
一定の間隔で時間を調べ異常に間隔が開いていたらソフトを起動する
ようにするというのはどうでしょうか。

ウィンドウメッセージがポストされないのでしょうかね。?

違ってたらすみません。

RE:スタンバイからの復帰時にソフトを実行したいのですが・・・

Posted: 2007年4月29日(日) 00:44
by 西野孝雄
スタンバイ/休止から復帰した時に、メッセージが送られてくるのでそれを受け取ればいいんじゃないかな。
つまり、ウィンドウメッセージを処理するためのコールバック関数に以下を入れます。
スタンバイと休止の区別法は、私は知りません。
ソフトを起動したいのであれば、スタンバイ/休止監視用と起動したいものの二つに分ければ良いかと。

他にどんなメッセージが飛んでくるかは以下参照。
http://www.winapi-database.com/Message/ ... DCAST.html

私自身、詳しい方じゃないんで望んでた物と違ってたらすいません。

コード: 全て選択

Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord

	If dwMsg=WM_POWERBROADCAST And wParam=PBT_APMRESUMESUSPEND Then
		'ここにやりたい動作を書く
	End If

	MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)	
End Function

期待していた & 考えていたものと同じ内容です!!

Posted: 2007年4月29日(日) 11:10
by wakaba
「7 」さんの 参考サイトで 調べましたが API に 不慣れな私には 難しく解決できませんでした
そこで 「瑠璃」さんの案で 作成し始めてました

> スタンバイ/休止から復帰した時に、メッセージが送られてくるのでそれを受け取ればいいんじゃないかな。
> つまり、ウィンドウメッセージを処理するためのコールバック関数に以下を入れます。

そうなんだ。 API などに気をいれ過ぎて 調べてませんでした
早速 セットしたら うまく 動作しました
C言語を少し触り その後VBやHSP を やってました。内容は テキストデータの操作系が殆どで プログラムの深いところは 理解していません。
今回ABに挑戦してからも コールバック関数の意味が 解っていなかったが 少し中身が 見えた気がして うれしく なりました。
作成に時間がかかるかもしれないけど 「休止」「スタンバイ」の両方でOKかは 後日報告します。
いつもながら 初心者に優しい回答 ありがとう ございました。

確認しました!!

Posted: 2007年5月03日(木) 21:17
by wakaba
スミマセン
雑用で追われていて ABに触ってませんでした
教えてもらった方法で 細部まで 作成してみましたので 時間が掛かってしまいました

スタンバイ状態(サスペンド)や 休止状態(ハイバネーション)からの 復帰時に間違いなく正常に動作します
なお XP(home)でしか 確認はしていません
また プログラミングが 楽しくなりそうです! ありがとうです!!!