Windowsun kapanış olayı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Windowsun kapanış olayı
Arkadaşlar ben delphide pcnin nezaman nekadar süre açık kaldığını bulan bir program yazıyorum.
Windows açılır açılmaz programı çalıştırıp açılış süresini veritabanına ekletiyorum.Fakat windows kapanışını program bilemiyor ve kapanış süresi veritabanına eklenmiyor.Delphide windows kapanışını nasıl buluruz windows kapanış olayı nedir.Yardımcı olursanız sevinirim
Windows açılır açılmaz programı çalıştırıp açılış süresini veritabanına ekletiyorum.Fakat windows kapanışını program bilemiyor ve kapanış süresi veritabanına eklenmiyor.Delphide windows kapanışını nasıl buluruz windows kapanış olayı nedir.Yardımcı olursanız sevinirim
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Windowsun kapanış olayı
Bunun için windows kapanma mesajını yakalamanız gerekmektedir.
Kod: Tümünü seç
TFormXYZ = class(TForm)
...
private
{ Private declarations }
procedure WMQueryEndSession(var Msg : TWMQueryEndSession);message WM_QUERYENDSESSION;
public
{ Public declarations }
end;
end;
procedure TFormXYZ.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
inherited;
//Msg.Result := 1;
//->Windows kapanıyor, buraya gerekli kodları yazabilirsiniz.
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Windowsun kapanış olayı
hocam kodları denedım win kapanırken herhangi bir tepki alamadım programdan.....
bir örnek proje sunsanız*
bir örnek proje sunsanız*
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Windowsun kapanış olayı
Yukarıdaki örnekte bulunankodunu yaz, windows kapatılırken kodlar çalışıp mesaj gelecektir.
satırına//->Windows kapanıyor, buraya gerekli kodları yazabilirsiniz.
Kod: Tümünü seç
ShowMessage('Windows Kapatılıyor');
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Windowsun kapanış olayı
daha denemedim hocam fakat
bu sadece kapanma söz konusu olduğundamı işliyor?
yoksa restart , uyku modu ilede çalışabiliyor mu*
bu sadece kapanma söz konusu olduğundamı işliyor?
yoksa restart , uyku modu ilede çalışabiliyor mu*
-
- Üye
- Mesajlar: 153
- Kayıt: 14 Tem 2008 12:28
Re: Windowsun kapanış olayı
Bu kodları çalıştırdığımda..
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TTFormXYZ = class(TForm)
private
{ Private declarations }
procedure WMQueryEndSession(var Msg : TWMQueryEndSession);message WM_QUERYENDSESSION;
public
{ Public declarations }
end;
var
TFormXYZ: TTFormXYZ;
implementation
{$R *.dfm}
procedure TFormXYZ.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
inherited;
//Msg.Result := 1;
ShowMessage('Windows kapanıyor');
end;
end.
hata çıkıyor..
ayrıca özür dilerim fakat ;
[Error] Unit1.pas(24): Identifier redeclared: 'TFormXYZ'
[Error] Unit1.pas(24): ';' expected but ')' found
[Error] Unit1.pas(26): This form of method call only allowed in methods of derived types
[Error] Unit1.pas(13): Unsatisfied forward or external declaration: 'TTFormXYZ.WMQueryEndSession'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
hata çıkıyor form'un ismide 'TFormXYZ' budur...
//Msg.Result := 1; bu satırı
Msg.Result := 1;
düzenlediğimdede yine hata çıkıyor acaba uses lerdemi problem var.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TTFormXYZ = class(TForm)
private
{ Private declarations }
procedure WMQueryEndSession(var Msg : TWMQueryEndSession);message WM_QUERYENDSESSION;
public
{ Public declarations }
end;
var
TFormXYZ: TTFormXYZ;
implementation
{$R *.dfm}
procedure TFormXYZ.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
inherited;
//Msg.Result := 1;
ShowMessage('Windows kapanıyor');
end;
end.
hata çıkıyor..
ayrıca özür dilerim fakat ;
[Error] Unit1.pas(24): Identifier redeclared: 'TFormXYZ'
[Error] Unit1.pas(24): ';' expected but ')' found
[Error] Unit1.pas(26): This form of method call only allowed in methods of derived types
[Error] Unit1.pas(13): Unsatisfied forward or external declaration: 'TTFormXYZ.WMQueryEndSession'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
hata çıkıyor form'un ismide 'TFormXYZ' budur...
//Msg.Result := 1; bu satırı
Msg.Result := 1;
düzenlediğimdede yine hata çıkıyor acaba uses lerdemi problem var.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Windowsun kapanış olayı
Bir forma yukarıdaki gibi bir WMQueryEndSession prosedürü eklemek o kadar zor olmasa gerek
.

Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Windowsun kapanış olayı
denedim tıkır tıkır çalışıyor eline sağlık
Windowsun kapanış olayı
Merhaba,
Konunun üzerinden uzun bir zaman geçmiş, yeni bir konu açmak ismemedim.
win kapanmasını yakalıyor fakat pc kapanmasını engelliyor. neyden olabilir.
tşkler.
Konunun üzerinden uzun bir zaman geçmiş, yeni bir konu açmak ismemedim.
win kapanmasını yakalıyor fakat pc kapanmasını engelliyor. neyden olabilir.
tşkler.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Windowsun kapanış olayı
İlk nokta inherited satırını aynen yazılmasına dikkat etmelisiniz. Eğer inherited satırınız varsa programınızın kendisi kapanmıyordur. onClose ve onCloseQuery olaylarınıza göz atmanızda fayda var.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: Windowsun kapanış olayı
Kod: Tümünü seç
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
inherited;
// Msg.Result := 1;
//->Windows kapanıyor, buraya gerekli kodları yazabilirsiniz.
reg('Software\Pc','YarimKaldi', '1');
Form1.OnCloseQuery:=nil;
Close;
end;