Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Balirli saat aralığında kodu çalıştırmak
#11
Windows Lock Screen araştırın. Windows aynı anda birden fazla process çalıştırma özelliğine sahip bir yapı. Idea

Kullanıcının arayüzüne en hafif / basit teknikte engel koymak ancak Windows Lock Screen ile mümkün. 
Diğer teknikler mouse/klavye hook, USB operasyonları, windows servisleri vs. geliyor ancak bunlar kendi deyiminizle ağır işlemler. 
Siz şimdilik kanaatimce Windows Lock işine odaklanın. Emin olun, mesaj son kullanıcıya kesinlikle ulaşacaktır.   Smile

( ipucu : Lock Screen Canvas üzerine TextOut ile yazı yazabilirsiniz, sihrinizi çalıştırma vakti  Idea  )

tmwzqszujhhlsiuuly4h.png
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#12
Teşekkürler @mrmarman bey. Formdaki sorulan sorulara karşı ürettiğiniz / önerdiğiniz çözümler gerçekten takdire şayan. Kaliteli ve emek verilmiş cevaplar veriyorsunuz.
Cevapla
#13
(21-05-2020, Saat: 12:35)mrmarman Adlı Kullanıcıdan Alıntı: Windows Lock Screen araştırın. Windows aynı anda birden fazla process çalıştırma özelliğine sahip bir yapı. Idea

Kullanıcının arayüzüne en hafif / basit teknikte engel koymak ancak Windows Lock Screen ile mümkün. 
Diğer teknikler mouse/klavye hook, USB operasyonları, windows servisleri vs. geliyor ancak bunlar kendi deyiminizle ağır işlemler. 
Siz şimdilik kanaatimce Windows Lock işine odaklanın. Emin olun, mesaj son kullanıcıya kesinlikle ulaşacaktır.   Smile

( ipucu : Lock Screen Canvas üzerine DrawText ile yazı yazabilirsiniz, sihrinizi çalıştırma vakti  Idea  )

tmwzqszujhhlsiuuly4h.png

Hocam cok teşekkürler.. ilginiz ve emeğiniz için.
Cevapla
#14
Rica ederim
 
Çözümü merak eden diğer katılımcılar için kodları da paylaşma vakti sanırım.

tmwzqszujhhlsiuuly4h.png

function LockScreen: boolean;
type
 TLockWorkStation = function: Boolean;
var
 hUser32         : HMODULE;
 LockWorkStation : TLockWorkStation;
begin
 Result := false;
 hUser32 := GetModuleHandle('USER32.DLL');
 if hUser32 <> 0 then begin
   @LockWorkStation := GetProcAddress(hUser32, 'LockWorkStation');
   if @LockWorkStation <> nil then begin
     LockWorkStation;
     Result := True;
   end;
 end;
end;

Procedure DrawText( aMsg : String );
const
 pad = 50;
var
 DesktopCanvas   : TCanvas;
 x1, y1, x2, y2  : Integer;
begin
 DesktopCanvas := TCanvas.Create;
 try
   With DesktopCanvas do
   begin
     Handle      := GetWindowDC(0);
  // Now we have whole desktop !
     Font.Name   := 'Courier New';
     Font.Style  := [fsBold];
     Font.Size   := 40;

     x1 := ( Screen.DesktopWidth   - TextWidth ( aMsg ) - (pad*2) ) div 2;
     y1 := ( Screen.DesktopHeight  - TextHeight( aMsg ) - (pad*2) ) div 2;
     x2 := pad + x1 + TextWidth ( aMsg ) + pad;
     y2 := Pad + y1 + TextHeight( aMsg ) + pad;

     Brush.Style := bsSolid;
     Brush.Color := clRed;
     Rectangle(x1, y1, x2, y2);

     Font.Color  := clYellow;
     Brush.Style := bsClear;

     TextOut(x1 + pad, y1 + pad, aMsg);
   end; // with
 finally
   FreeAndNil(DesktopCanvas);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if LockScreen then
 begin
   Sleep(2000);
   DrawText( 'Save the  world :) "This is an urgent message..."');
 end;
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Windows Servis Hizmetleri Çalıştırmak glagher 2 293 13-05-2020, Saat: 12:01
Son Yorum: Bay_Y
  C# kodu Delphi ye çevirme dkadir 2 596 28-11-2019, Saat: 15:11
Son Yorum: dkadir
  Bu kodu çevirirken nerede hata yapıyorum ? seci20 14 2.992 08-10-2019, Saat: 17:39
Son Yorum: crypto
  ÇÖZÜLDÜ-timer kullanmadan saat kontrolü mümkünmü? sadikacar60 3 760 10-09-2019, Saat: 22:19
Son Yorum: sadettinpolat
  ÇÖZÜLDÜ - Veritabanındaki saat alanını düzenleme wiseman 10 1.793 24-07-2019, Saat: 21:41
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi