Bilgisayar Güç Düğmesi Seçenekleri.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen yusuf simsek »

Masaüstü Sağ Tıkladığınızda gelen pencereden "Ekran Koruyucu" Sekmesinde bulunan "GÜÇ" düğmesini tıkladığınızda karşınıza "GÜÇ SEÇENEKLERİ ÖZELLİKLERİ" penceresi geliyor.

Bu pencerede "GELİŞMİŞ" sekmesini altında

"Bilgisayarımın Güç Düğmesine Bastığımda : " Etiketi altında
- Hiçbirşey Yapma,
- Ne yapacağımı Sor,
- Askıya Al,
- Bilgisayarı Kapat

seçenekleri geliyor....

Bu seçeneklere Porgram içerisinden nasıl müdahale edebiliriz?
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen SimaWB »

Kod: Tümünü seç

function PowerGetActiveScheme(UserRootPowerKey: HKEY; var ActivePolicyGuid:PGUID): DWORD; stdcall; external 'PowrProf.dll';
function PowerWriteACValueIndex(RootPowerKey: HKEY; const SchemeGuid,
  SubGroupOfPowerSettingsGuid, PowerSettingGuid: PGUID; AcValueIndex: DWORD): DWORD; stdcall; external 'PowrProf.dll';
function PowerWriteDCValueIndex(RootPowerKey: HKEY; const SchemeGuid,
  SubGroupOfPowerSettingsGuid, PowerSettingGuid: PGUID; DcValueIndex: DWORD): DWORD; stdcall; external 'PowrProf.dll';
function PowerSetActiveScheme(UserRootPowerKey: HKEY; const SchemeGuid: PGUID): DWORD; stdcall; external 'PowrProf.dll';

function ChangePWRButtonPolicy(ValueIndex: DWORD): Boolean;
const
  PBUTTONACTION: TGuid = '{7648EFA3-DD9C-4E3E-B566-50F929386280}';
  GUID_SYSTEM_BUTTON_SUBGROUP: TGuid = '{4f971e89-eebd-4455-a8de-9e59040e7347}';
var
  ptrActiveGuid: PGUID;
begin
  Result := False;
  ptrActiveGuid := nil;
  if PowerGetActiveScheme(0, ptrActiveGuid) = 0 then
  try
    if PowerWriteACValueIndex(0, ptrActiveGuid, @GUID_SYSTEM_BUTTON_SUBGROUP, @PBUTTONACTION, ValueIndex) = 0 then
      if PowerWriteDCValueIndex(0, ptrActiveGuid, @GUID_SYSTEM_BUTTON_SUBGROUP, @PBUTTONACTION, ValueIndex) = 0 then
        Result := (PowerSetActiveScheme(0, ptrActiveGuid) = 0);
  finally
    LocalFree(HLOCAL(ptrActiveGuid));
  end;
end;
Kullanmak için ChangePWRButtonPolicy fonksiyonuna parametre olarak seçeneklerin indekslerini girmelisin:
0 - Hiçbirşey Yapma
1 - Ne yapacağımı Sor
2 - Askıya Al
3 - Bilgisayarı Kapat
There's no place like 127.0.0.1
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen yusuf simsek »

@SimaWB teşekkürler

Gün içerisinde deneyeceğim...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen yusuf simsek »

Kodu projeye ekledim,

Uses satırına "Registry" ekledim, proje derleniyor...

cmd'dewn "regsvr32 PowrProf.dll" komutu ile dll kaydettim...

ancak programı çalıştırdığımda "Giriş Noktası Bulunamadı" hatası alıyorum...

hata ile ilgili önerilerinizi alabilir miyim!
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen SimaWB »

PowrProf.dll'i register etmenize gerek yok. System klasöründe bulunan (Sanırım Win 98'den beri) bir dll dosyası bu. Direk olarak barındırdığı fonksiyonları kullanabilirsiniz. Yazdığım örnek kodları direk projenizde deneyebilirsiniz.
There's no place like 127.0.0.1
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen yusuf simsek »

Projeye ekledim,

ancak projeyi çalıştırmak istediğimde doğrudan "Giriş Noktası Bulunamadı" hatası ile karşılaştım....

Sonradan yukarıda belirttiğim adımları denedim, ancak gene sonuç değişmedi...

Farklı bir makinada tekrar deneyeceğim...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen SimaWB »

Dll bulunmadığında o hatayı alırsınız.
PowrProf.dll, benim PC'de (Win 7 x86) C:\Windows\System32 içerisinde mevcut. Siz de var mı onu kontrol edin. Ekte bu dll'i bulabilirsiniz. Belki işinize yarar.
Dosya ekleri
powrprof.zip
PowrProf.dll
(60.95 KiB) 66 kere indirildi
There's no place like 127.0.0.1
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen yusuf simsek »

Dosya için teşekkür ederim...

bendeki dll 6.0.2900.5512

gönderdiğin dll sürümü 6.1.7600.16385

işletim sisteminden kaynaklı bir sorun ( xp SP3 )

dll değiştirdiğimde de farklı procedureler arıyor... XP ve öncesi ise pasif bıraktığımda sorun kalmayacak...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Bilgisayar Güç Düğmesi Seçenekleri.

Mesaj gönderen SimaWB »

Haklısın.
PowerGetActiveScheme fonksiyonuna baktığımda gördüm:
Minimum supported client = Windows Vista yazıyor.
There's no place like 127.0.0.1
Cevapla