Kurulum'da PC'nin gelişmiş güç ayarlarını değiştirmek

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Kurulum'da PC'nin gelişmiş güç ayarlarını değiştirmek

Mesaj gönderen SimaWB »

Yazdığım bir projede gerek duydum. Belki başkalarının da işine yarayabilir:

Yazdığınız program çalışırken bazen güç ayarlarında değişiklik yapma ihtiyacınız olabilir. (Denetim Masası --> Güç Seçenekleri)
Mesela; istediğiniz bir güç planını seçmeniz gerekebilir yada kendinize özel bir güç planı oluşturmanız gerekebilir. Programınız çalışırken PC'nin kendini uyku moduna almasını istemeyebilirsiniz. Yada monitörün kapanmasını engellemek isteyebilirsiniz.
Bunun gibi birçok seçeneği Denetim Masası --> Güç Seçenekleri altında bulabilirsiniz.

Bu tarz değişiklikleri 2 şekilde yapabilirsiniz.
  • Program her çalıştığında bu ayarlar kontrol edilir ve gerekirse kod içerisinden bu ayarlara müdahale edilir
  • Programın kurulumu esnasında bu ayarlar kurulum dosyası tarafından yapılır
Ben 2. yolu seçtim. Çünkü benim için yapılacak değişiklikler sık sık kullanıcılar tarafından değiştirilen ayarlar değil.

Ayrıca bu ayarları değiştirmek için de farklı birkaç yol var:
  • Yapılan değişiklikler registry'de saklandığı için registry'de değişiklik yapmak.
  • Windows'un Powercfg.exe programını kullanmak.
Ben yine 2. yolu seçtim :) Powercfg programı yardımı ile Güç Seçenekleri altındaki birçok ayarı (belki de hepsini) değiştirebiliyorsunuz.

Siz de benim gibi, kurulum programı oluşturmak için Inno Setup kullanıyorsanız yukarıda bahsettiğim ayarları Inno Setup'ta [Run] sekmesi içerisinde değiştirebilirsiniz.
Örnek olarak programım kurulurken "Yüksek performans" güç planı seçilsin istiyorum ve ayrıca sabit disk belirli bir süre sonra kapatılmasın yani uyku moduna geçmesin istiyorum. Bu seçeneği PC'de görmek için: bir güç planının "Plan ayarlarını değiştir" linkine tıklayın. Açılan pencereden "Gelişmiş güç ayarlarını değiştir" linkine tıklayın. Burada Sabit Disk seçeneği altında bahsettiğim ayarı görebilirsiniz. (SSD disk kullananlarda bu ayar gözükmüyor olabilir)

Kod: Tümünü seç

[Run]
Filename: {sys}\powercfg.exe; Parameters: "-setactive SCHEME_MIN"; Flags: runhidden;
Filename: {sys}\powercfg.exe; Parameters: "-change -disk-timeout-ac 0"; Flags: runhidden;
İlk seçenek ile Yüksek Performans güç planını seçmiş oluyoruz. SCHEME_MIN'i yüksek performans planı için bir kısayol gibi düşünebilirsiniz. Aslında bir GUID için (8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c) takma addır. Bunun gibi Dengeli ve Güç Tasarrufu planları için de takma adlar mevcuttur.
SCHEME_MAX = Güç tasarrufu
SCHEME_BALANCED = Dengeli
SCHEME_MIN = Yüksek performans


Örnek koddaki ikinci kısım ise sabit diskin timeout değerini 0 yani "hiçbir zaman" yapar. Aynı şekilde monitör için bu ayarı yapmak istersek, disk yazan yere monitor yazmalıyız. Bu satırdaki "ac" ifadesi PC yada laptop prize takılı halde çalışırken anlamına geliyor. Yani laptobınız pille çalışırken kullanılan bir ayarı değiştirmek isterseniz "ac" yerine "dc" kullanmalısınız.

Powercfg ile yapılabilecekler çok çok fazla. Detayları için yukarıdaki linke bakabilirsiniz.

Herkese iyi çalışmalar...
There's no place like 127.0.0.1
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Re: Kurulum'da PC'nin gelişmiş güç ayarlarını değiştirmek

Mesaj gönderen rsimsek »

Paylaşım için teşekkürler, ihtiyaç duyan birilerinin işine yarayabilir.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Kurulum'da PC'nin gelişmiş güç ayarlarını değiştirmek

Mesaj gönderen thelvaci »

Bu husus ile ilgili API'ler aşağıdadır, harici bir uygulama kullanmak yerine belki API kullanmayı tercih edecek arkadaşlarımızın da olabileceği ihtimaline binaen paylaşmak istedim.

http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Cevapla