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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
wakaba
記事: 32
登録日時: 2007年1月27日(土) 14:03

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

#1 投稿記事 by wakaba »

ABもプログラムも初心者です

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

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

これにより フル稼働中で ないとき(ハードディスク等)をタイマー起動により調べて復帰したことを 得ようと考えましたが デバイスのハンドルの取得がよく解りません。また こんな方法で 良いかの確信もありません。
スタンバイ状態と休止状態は 意味が違うような記述があったので どちらか一方でも 方法はないのでしょうか?
APIなどの知識も少ないので 初歩的な質問ですが よろしくおねがいします
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#2 投稿記事 by 7 »

よく分からないし試してみる気もないので、インターネットで見つけた参考になりそうなサイトへのリンクだけを書いておきます。

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

#3 投稿記事 by 瑠璃 »

一定の間隔で時間を調べ異常に間隔が開いていたらソフトを起動する
ようにするというのはどうでしょうか。

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

違ってたらすみません。
西野孝雄

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

#4 投稿記事 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
wakaba
記事: 32
登録日時: 2007年1月27日(土) 14:03

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

#5 投稿記事 by wakaba »

「7 」さんの 参考サイトで 調べましたが API に 不慣れな私には 難しく解決できませんでした
そこで 「瑠璃」さんの案で 作成し始めてました

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

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

確認しました!!

#6 投稿記事 by wakaba »

スミマセン
雑用で追われていて ABに触ってませんでした
教えてもらった方法で 細部まで 作成してみましたので 時間が掛かってしまいました

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