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

解決


Delphi大好き  2010-09-14 10:54:46  No: 39138  IP: 192.*.*.*

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

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

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

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

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

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

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

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

編集 削除
ちょっと通りますよ  2010-09-14 11:17:42  No: 39139  IP: 192.*.*.*

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

編集 削除
TS  2010-09-14 11:56:38  No: 39140  IP: 192.*.*.*

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

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

編集 削除
Fusa  2010-09-14 12:02:40  No: 39141  IP: 192.*.*.*

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

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

です。

編集 削除
Delphi大好き  2010-09-14 12:34:48  No: 39142  IP: 192.*.*.*

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

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

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

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

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

編集 削除
Delphi大好き  2010-09-15 01:06:46  No: 39143  IP: 192.*.*.*

事後報告です。

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

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

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

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

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

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

編集 削除
monaa  2010-09-15 01:27:31  No: 39144  IP: 192.*.*.*

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

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 08:10:26  No: 39145  IP: 192.*.*.*

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

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

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

編集 削除
monaa  2010-09-15 10:50:14  No: 39146  IP: 192.*.*.*

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

編集 削除
monaa  2010-09-15 11:01:19  No: 39147  IP: 192.*.*.*

まだ読んでませんが…
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-17 15:13:44  No: 39148  IP: 192.*.*.*

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

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

編集 削除
Delphi大好き  2010-10-17 00:06:51  No: 39149  IP: 192.*.*.*

進展があったので報告します。
機種は  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 00:10:40  No: 39150  IP: 192.*.*.*

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

でした。

編集 削除
Delphi大好き  2010-10-21 12:26:08  No: 39151  IP: 192.*.*.*

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のソース付で目的の機能を無事追加出来ました。

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

編集 削除