{"id":274,"date":"2009-03-24T18:27:08","date_gmt":"2009-03-24T17:27:08","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=274"},"modified":"2009-03-25T10:22:55","modified_gmt":"2009-03-25T09:22:55","slug":"standby-modus-in-einem-programm-auch-unter-vista-verhindern","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2009\/03\/24\/standby-modus-in-einem-programm-auch-unter-vista-verhindern\/","title":{"rendered":"Standby Modus in einem Programm auch unter Vista verhindern"},"content":{"rendered":"<p lang=\"cpp\">Manchmal kann man den Standby Mode wirklich nicht gebrauchen. Besonders, wenn man ein Programm hat, dass evtl. viel im Hintergrund mit einer Datenbankverbindung macht.<\/p>\n<p lang=\"cpp\">Wie macht man es unter <em>Windows Vista <\/em>richtig, denn <em>BROADCAST_QUERY_DENY <\/em>bei einem <em>PBT_APMQUERYSUSPEND <\/em>oder <em>PBT_APMQUERYSUSPENDFAILED <\/em>zur\u00fcckzugeben funktioniert nicht.<br \/>\nMan muss <em>SetThreadExecutionState <\/em>verwenden!<\/p>\n<p lang=\"cpp\">\u00c4u\u00dferst dumm nur, dass man dies auch wirklich f\u00fcr <em>Windows Vista <\/em>und <em>Windows 7 <\/em>ber\u00fccksichtigen muss. Ich hatte nat\u00fcrlich f\u00fcr <em>Windows 2000 <\/em>und <em>XP <\/em>entsprechenden Code vorgesehen, die den Standby verhindern, aber wie schon erw\u00e4hnt, das geht eben unter <em>Vista <\/em>nicht mehr.<br \/>\nEs gibt Inkompatibilit\u00e4ten zwischen des OSen, die man wirklich explizit behandeln muss. Es lohnt sich ein Blick in die Dokus, den ich selber oft genug nicht mache&#8230; \ud83d\ude09<\/p>\n<pre lang=\"cpp\">\/\/ Every 30 secs we disallow the standby and hibernate!\r\n\/\/ We have to use ES_AWAYMODE_REQUIRED on Vista and Windows Server 2008\r\n\/\/ If we allow standby and hibernation we get problems with the DB connection.\r\nDWORD dwAwaymodeRequired = 0;\r\nOSVERSIONINFO os;\r\n::ZeroMemory(&amp;os,sizeof(os));\r\nos.dwOSVersionInfoSize = sizeof(os);\r\nif (::GetVersionEx(&amp;os) &amp;&amp; os.dwMajorVersion&gt;=6)\r\n    dwAwaymodeRequired = ES_AWAYMODE_REQUIRED;\r\nVERIFY(::SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED |\r\n\tdwAwaymodeRequired));<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Manchmal kann man den Standby Mode wirklich nicht gebrauchen. Besonders, wenn man ein Programm hat, dass evtl. viel im Hintergrund mit einer Datenbankverbindung macht. Wie macht man es unter Windows Vista richtig, denn BROADCAST_QUERY_DENY bei einem PBT_APMQUERYSUSPEND oder PBT_APMQUERYSUSPENDFAILED zur\u00fcckzugeben funktioniert nicht. Man muss SetThreadExecutionState verwenden! \u00c4u\u00dferst dumm nur, dass man dies auch wirklich f\u00fcr &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2009\/03\/24\/standby-modus-in-einem-programm-auch-unter-vista-verhindern\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eStandby Modus in einem Programm auch unter Vista verhindern\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,17,2],"tags":[],"class_list":["post-274","post","type-post","status-publish","format-standard","hentry","category-programmieren","category-vista-2","category-windows-api"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=274"}],"version-history":[{"count":1,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/274\/revisions"}],"predecessor-version":[{"id":440,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/274\/revisions\/440"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=274"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}