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 API kodu çözümlemesi parlakcuma 1 658 23-09-2023, Saat: 05:29
Son Yorum: parlakcuma
  cozuldu-SQL KODU CALISMIYOR sadikacar60 5 773 19-03-2023, Saat: 11:57
Son Yorum: mcuyan
  Javascript kodu barissagir 4 863 10-01-2023, Saat: 13:56
Son Yorum: barissagir
  Grup Kodu Eşitlemek OZCANK 3 1.052 11-10-2022, Saat: 11:50
Son Yorum: OZCANK
  delphi 7 de 2 monitörde prg çalıştırmak. sadikacar60 5 1.844 03-06-2021, Saat: 12:36
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi