ハイバネーションをソフト側から強制的に呼び出すには?

解決


Delphi大好き  2010-09-14 19:54:46  No: 39138

いつもお世話になっています。
環境はVista、Delphi3or7、
対象の機種は富士通LooxU50、
です。

ソフトを起動すると強制的にハイバネーションに移るソフトを作りたいと思っています  or  そういうソフトがあればと・・・

理由なのですが、上記のパソコンでは何故か、
ハイバネーションが出来ないのです。

必ずレジュームになってしまいます。
持ち歩くときにも、バッテリーが減り続けてしまいます。

しかし、ハイバネーションはOSの仕様なので、出来ない筈は無い筈・・・

しかし、そんなソフト等を見かけないので(検索が下手なだけかも知れませんが)、作ろうと思ったわけです。

が、右も左も分からないので、質問させていただきました。
WindowsAPIを呼び出せば何とかなるかもと、
かなり甘く考えているのですが、
自作可能でしょうか??

m(__)mよろしくお願いしますm(__)m


ちょっと通りますよ  2010-09-14 20:17:42  No: 39139

たぶんここで聞くことじゃないと思うよ。
wshとかのスクリプトレベルで何とかなるはず。
他所のOS系の板とかで聞いてみたら?


TS  2010-09-14 20:56:38  No: 39140

>ソフトを起動すると強制的にハイバネーションに移るソフトを作りたいと
>思っています  or  そういうソフトがあればと・・・

下記のソフトは該当しますか。
http://www.altech-ads.com/product/10000022.htm


Fusa  2010-09-14 21:02:40  No: 39141

ハイバネーション=休止状態
      SetSystemPowerState( False,True);

サスペンド=スタンバイ
      SetSystemPowerState(True,True);

です。


Delphi大好き  2010-09-14 21:34:48  No: 39142

皆さん素早いご回答ありがとうございますm(__)m。
自宅に帰ったら早速試してみます。

>ちょっと通りますよ  さん
カテ違いだったらすいませんm(__)m。
なんと、スクリプトで何とかなってしまうのですか!?
ものすごく難しく考えてました。
でもスクリプトは全く無知なので、機会があれば勉強してみます。

>TS  さん
ありがとうございます、まさにそのとおりです。
帰宅したら早速試して使ってみたいと思います。
これから作るソフトの参考にもしてみたいですm(__)m。

>Husa  さん
ありがとうございます、やっぱりAPIはあったのですね。
帰宅したら頑張って作ってみます!

こんなに早く解決するとは思いませんでした。
皆さん貴重な情報を本当にありがとうございました。m(__)m


Delphi大好き  2010-09-15 10:06:46  No: 39143

事後報告です。

PassMark Sleeper早速試してみました。
このPC(パナソニックレッツノートCF-W8)では、
S1、S3、S4が有効でした。

肝心のLookU50では、S3(レジューム)のみ可能で、
S4のハイバネーションは無理でした。
OSにハイバネーションの機能が無いみたいです。

WinAPIですが、
パナソニックレッツノートCF-W8では、レジューム、ハイバネーション共に動きました。
LookU50では、どちらも動きませんでした・・・

MicroSoftダウンロードセンターでハイバネーションの更新パッチがないか調べてみましたが、
ヒットしませんでした。

WSHは調べてみましたが、実行の仕方が分かりませんでした・・・。
今度時間を見てやってみます。

なんかDelphi掲示板から話が逸れそうですが、
ハイバネーションが実装されてないOSでハイバネーションをする方法は無いものでしょうか?
無いような気もしますが・・・。


monaa  2010-09-15 10:27:31  No: 39144

ハードウェアが対応してないとできない機能ですから、
ソフト的にどうあがいても無理じゃないですかね。

http://ja.wikipedia.org/wiki/%E3%83%8F%E3%82%A4%E3%83%90%E3%83%8D%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3
すべてのハードウェアがACPIとプラグアンドプレイに準拠しており、デバイスドライバがプラグアンドプレイ互換である場合のみ、ハイバネーションは利用可能となる。


take  2010-09-15 17:10:26  No: 39145

>なんかDelphi掲示板から話が逸れそうですが、
ハイバネーションから指定した日時になったら復帰
というのをDelphiから操作できないかなとか考えています。

そういうアプリケーションは世の中にあるのですが
どういうAPIを使えばいいのか検索してもヒットしないので挫折しています。

便乗質問になりますけどいい方法ってありますかね?


monaa  2010-09-15 19:50:14  No: 39146

>> 休止状態からの復帰
面白そうですね、今ぱっと調べた限りではタスクスケジューラーを操作することで実現している方が居るようです。
http://128bit.blog41.fc2.com/blog-entry-25.html
暇を見てもう少し調べてみます。


monaa  2010-09-15 20:01:19  No: 39147

まだ読んでませんが…
ACPI / Power Management - Architecture and Driver Support
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/default.mspx
ACPI Notify Codes for ACPI Source Language
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/ACPInotify.mspx
GPE Routing for Windows - General Purpose Event Register Wiring
http://www.microsoft.com/whdc/system/pnppwr/powermgmt/GPE_routing.mspx


Delphi大好き  2010-09-18 00:13:44  No: 39148

>monaa  さん
そうなんですか、Vistaでもハードが対応して無いとハイバネーション出来ないんですね。
何故ハイバネーションが初期状態で無いのか、利用できないのかわかりました。
諦めるしかないですね・・・TT。

>take  さん
ハイレベル過ぎてついていけません・・・^^;
それが出来たら便利そうですね。
業務PCにそれ入れたら便利そう・・・。
勝手に起動、勝手にスリープ^^。


Delphi大好き  2010-10-17 09:06:51  No: 39149

進展があったので報告します。
機種は  FM-V  BIBLO  LOOX  U/B50  WindowsVISTAです。

BIOSの設定いじってたら、ハイバネーションを有効にするオプションがありました。
有効にしたところ、スリープしてから一定時間経つと、ハイバネーションに入るようです。

で、PassMark Sleeperで実験してみました。

S1,S2は駄目でした。
S3はカウントして40秒位後に成功、
S4のハイバネーションも成功でした。

APIの、
ハイバネーション=休止状態
      SetSystemPowerState( False,True);

サスペンド=スタンバイ
      SetSystemPowerState(True,True);

の二つは効きませんでした。

そこで質問なのですが、
PassMark Sleeperの  S3、  S4に相当する機能をDelphiで実装する方法は無いでしょうか?

よろしくお願いしますm(__)”m


Delphi大好き  2010-10-17 09:10:40  No: 39150

誤字です。
×ハイバネーション
○サスペンド

でした。


Delphi大好き  2010-10-21 21:26:08  No: 39151

http://search.yahoo.co.jp/search?p=poff2%28Power-OFF&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=

ベクターで探したところ、まさにそれなものがありました。
Delphiのソース付で目的の機能を無事追加出来ました。

作成者さんには感謝です^^。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加