bilgisayar kullanılmıyorsa otomatik kapansın????????

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
uince
Üye
Mesajlar: 38
Kayıt: 01 Mar 2004 04:57

bilgisayar kullanılmıyorsa otomatik kapansın????????

Mesaj gönderen uince »

Şuan programlama da yeni olduğumdan isteğimi yerine getiremedim.Isteğim eğer bilgisayarım 10 dakikadan buyana kullanılmıyorsa otomatikmen kapanması.Fakat bilgisayarın kullanılıp kullanılmadığını sorgulayamadım.Bunu nasıl yapabilirim?


Şimdiden teşekkürler...
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2381
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Mesaj gönderen freeman35 »

Screensaver larla ilgili bir araştırma yap, nezaman devreye girdiklerini araştırırsan istediğini karşılar. bilgisayarı kapatma konusundada çok fazla örnek var
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Bir fikir olarak veriyorum Mouse Hareketlerini ve Klavye tuşlarının hareketlerini takip ederek yapabileciğin kanısındayım.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
incsoft

Mesaj gönderen incsoft »

Hook konusunu araştırmanızı öneririm.
uince
Üye
Mesajlar: 38
Kayıt: 01 Mar 2004 04:57

Mesaj gönderen uince »

Bir örnek gönderebilirmisiniz?
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@freeman35'in söylediği gibi yap... Çabucak halledersin... Forumda arama yaptırırsan cevapları daha önce verildi...
Resim
Resim ....Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Mouse ile ilgili olayı burada bulabilirsin.

viewtopic.php?t=1543&start=0

Yapman gereken Mouse hareketli olduğu zaman değişkene atadığın değeri 0 layacaksın mouse hareket etmediği zaman şartına uyan koşul ile karşılaştırma yapacaksın hareket ediyorsa değişkeni tekrar sıfırlayacaksın.

Tuş olayı içinde aynı şey gecerli.



Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- @husonet bir şeyi atlıyoruz... Bu verdiğin linkteki kod sadece ve sadece program formu üzerindeki mouse harekletlerini algılar...

- @incsoft'un parmak bastığı konu da çözümlerden biri... Hook fonksiyonu sadece kendi formunuz üzerindekiler değil, windows desktop olsun, başka bir program olsun onun üzerindeki mouse hareketlerini de algılar...

- Ya screensaver kontrolü ya da windows message hook fonksiyonu. Bu ikisinde çözüm arayacaksınız...
Resim
Resim ....Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hocam düşündümde hakısınız uyarınız için teşekkür ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

elimdeki bir kitabı karıstırırken buldum ama denemedim
denerseniz sonucu buradan bildirin
Bir ekran koruyucu çalışmaya başlamadan önce “WM_SYSCOMMAND” mesajı gönderir. Bu mesaj yakalanarak ekran koruyucunun devreye girmesi engellenir. TApplication nesnesinin OnMessage. Olayı yerine kullanılacak yeni bir davranış yaratıp bu mesajı herkesden önce yakalayabiliriz.
Bu işlem şöyle olur.

Kod: Tümünü seç

procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
Daha sonra ana formun OnCreate davranışı içerisinde,
Application.OnMessage := AppMessage;
Appmessage yordamında yakalanan mesajın WM_sysCommand ve Wparam değerinin de SC_ScreenSave olup olmadığı kontrol edilir. Eğer öyle ise, Handled parametresi True yapılarak, o mesajın işlem gördüğü imajı yaratılarak, windows’un ekran koruyucuyu başlatması engellenir.

Kod: Tümünü seç

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if (Msg.Message = WM_SYSCOMMAND) and
    ((Msg.wParam) = SC_SCREENSAVE) then begin
    Handled := True;
  end;
end;
ÜŞENME,ERTELEME,VAZGEÇME
Özdemir
Üye
Mesajlar: 21
Kayıt: 18 Oca 2004 02:57
Konum: istanbul

Mesaj gönderen Özdemir »

Benim aklıma değişik bir fikir geldi. şimdi şu kodları al
Formun formcreate olayına yapıştır.Programı derle
daha Sonra programın uzantısını scr olarak değiştir.
dosyayı örneğin kapa.scr windowsun bulunduğu klasöre kopyala
sonra da özellikler ekran koruyuculardan kaç dakika istiyorsan ayarla.
ekran koruyucu gibi devreye girince bilgisayar kapanır denemedim ama olur bence.. koaly gelsin.

function ShutMeDown:string;
var
hToken : THandle;
tkp,p : TTokenPrivileges;
RetLen : DWord;
ExReply: LongBool;
Reply : DWord;
begin
case Win32Platform of VER_PLATFORM_WIN32_WINDOWS: //***Windows 9x/ME***//
begin
ExReply:= ExitWindowsEx(EWX_POWEROFF or EWX_SHUTDOWN or EWX_FORCE,0);
if ExReply then
Result:='Shutdown Initiated'
else
Result:='Shutdown failed with ' + IntToStr(GetLastError);
end;
VER_PLATFORM_WIN32_NT: //***Windows NT/2000/XP***//
begin
if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken) then
begin
if
LookupPrivilegeValue(nil,'SeShutdownPrivilege',tkp.Privileges[0].Luid) then
begin
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes :=
SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken,False,tkp,SizeOf(TTokenPrivileges),p,RetLen);
Reply := GetLastError;
if Reply = ERROR_SUCCESS then
begin
ExReply:= ExitWindowsEx(EWX_POWEROFF or EWX_FORCE, 0);
if ExReply then
Result:='Shutdown Initiated'
else
Result:='Shutdown failed with ' + IntToStr(GetLastError);
end;
end;
end;
end; //case bitişi
end;
end;
uince
Üye
Mesajlar: 38
Kayıt: 01 Mar 2004 04:57

Mesaj gönderen uince »

Evet Hocam benim sorunum program dışındaki mouse hareketlerini kontrol etmek.Bu kodla program üzerindeki mouse hareketleri kontrol edilir.

Diğer arkadaşlardan gelen cevaplar üzerinde çalışacağım.


Tüm arkadaşlara teşekkürler....
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Hafızam yanıltmıyorsa IncSoft'un çalıştığı Vivana Internet Cafe'deki çalışması için yaptığı programı ile tam senin dediğin tarzda bir çalışması olmuştu...

- Başka bir Delphi forumunda detaylı bir cevap yazmıştım.. Kendisi çözümünü yaptığı bu tekniği eminim ki seninle ve forumla paylaşacaktır... :lol:

- Kendisi için oldukça geniş bir vakit ayrımıştım. Şimdi benzeri bir durum için bize vakit ayırırsa ayrıca mutlu olucam... Yaptıklarımızın semeresi bu olur umarım...
Resim
Resim ....Resim
mbt
Üye
Mesajlar: 165
Kayıt: 27 Şub 2004 01:23

Mesaj gönderen mbt »

Atlanılan bir şey var. Bilgisayar mouse ve klavye ile kullanılmıyor olabilir; ama arka planda bir program iş yapıyordur belki. Anti-virüs programımı çalıştırmış hatta scandisk ediyor olabilirim bilgisayarı veya da film izliyor olabilirim. O zaman tuş veya mouse hareketi işe yaramaz.

En iyi fikir CPU'nun kullanım değerini alarak ona göre iş yapmaktır.
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

hocam o zaman bilgisayarı hiç kapatamazsın ki :D
malüm windows işlemciyi aralıklarlada olsa sürekli kullanır.
kapatmak için belki prosses lerin sayısına bakılabilir..
DeveloperToolKit

..::|YeşilMavi|::..
Cevapla