Mause ve Klavye kitleme yada Windowsu Kitleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Ertank bey yapmak istediğim okullardaki akıllı tahtalar için bir usb anahtarla tahtanın açılmasını sağlamak.usb çekildiğinde kapanmasını.Açılışta program devrede olacağından windows touch yada click durumları kitli olsun istiyorom ki öğrenci tahtayı amacı dışında kullanamasın.öğretmen usbsini taktığında tahta açılsın.öğretmen usb sini çekip gittiğinde tahta otomatik kapanmaya geçtiğinde yine program devreye girerek öğrencinin tahtayı kullanmasını engelleyecek
Yalnızca öğretmenin usb si tahtayı açabilecek.Kios tek bir pc de kullanıcıların kullanmak istediklerini sınırlayabilir.Fakat yaptığın projenin bir setup u olacak.Programı kullanacak kişiye kiosk tarifi olmayacağı için.tüm işi projem(delphi) yapsın istiyorum.
http://www.dwinlock.kassl.de/
Yalnızca öğretmenin usb si tahtayı açabilecek.Kios tek bir pc de kullanıcıların kullanmak istediklerini sınırlayabilir.Fakat yaptığın projenin bir setup u olacak.Programı kullanacak kişiye kiosk tarifi olmayacağı için.tüm işi projem(delphi) yapsın istiyorum.
http://www.dwinlock.kassl.de/
En son haydarxxx tarafından 12 May 2018 09:42 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Aşağıdaki kod Windows 10 ve Windows XP işletim sistemlerinde edildi ve çalışıyor.
Ünite:
Form:
Ünite:
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function BlockInput(fBlockIt: BOOL): BOOL; stdcall; external 'user32.dll';
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if not BlockInput(True) then
begin
ShowMessage('Kilitleme yapılamadı. Uygulama Administrator yetkisine sahip mi?');
Exit();
end;
Sleep(5000);
BlockInput(False);
end;
end.
Kod: Tümünü seç
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 299
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 40
Top = 40
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
end
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Hocam BlockInput True de falsede oluyor bunda sıkıntı yok zaten.Fakat bu yazılan kodlar form üzerinde aktif form için.form tam ekran olduğunda evet iş görür. Ama win tuşu ile formda devreden çıkartılabilir ve mause istenilen yere tıklayabilir.Ben windows da mausenin çalışmamasını istiyorum.
ki pc im Administratordan açık.Ekli programa bakabilirmisiniz
ki pc im Administratordan açık.Ekli programa bakabilirmisiniz
- Dosya ekleri
-
- dwinlock.zip
- (291.85 KiB) 60 kere indirildi
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Benim denemelerimde (Windows 10 64bit ve Windows XP 32bit) tüm klavye ve fare kullanımı kilitleniyor. Buna Windows tuşu da dahil. Bir yerde yaptığınız bir yanlış olmalı.
1- Kullandığınız Delphi sürümü nedir? Eğer Delphi 7 kullanıyor iseniz daha önce dikkatinizi çekmeye çalışan @thelvaci nin bahsettiği gibi DLL fonksiyon tanımlamalarında bir hatanız olabilir.
2- Örnek verilen kodları olduğu gibi test ederek çalışıp çalışmadıklarını test edin. Çalışıyor olacaklardır.
3- Kendi denediğiniz ve sadece form üzerinde çalışıyor dediğiniz kod ile aralarındaki farkı inceleyip sorunun ne olduğunu bulmaya çalışın.
Microsoft MSDN dökümanlarında anlatıldığı üzere bu fonksiyon klavye ve fare iletişimini komple durduruyor. GetKeyState, GetKeyboardState, GetAsyncKeyState fonksiyonları cevap vermez hale geliyor. Sadece BlockInput fonksiyonunu kullanan uygulama SendInput fonsiyonunu kullanabiliyor.
https://msdn.microsoft.com/en-us/librar ... s.85).aspx
Ayrıca Windows 2000 Professional ve üzeri işletim sistemlerinde kullanılabiliyor.
Örnek gönderdiğiniz ücretli bir bileşen. Bu bileşen ile ilgili en doğru bilgiyi kendi siteleri üzerinden alabilirsiniz.
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Delphi 10.2 window10 6 4bit.Yaptığımı ekledim hocam
- Dosya ekleri
-
- block.rar
- (62.55 KiB) 76 kere indirildi
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Gönderdiğiniz kod içinde hem dinamik hem statik kullanmaya çalışmışsınız fonksiyonu. Tek bir statik tanım yeterli olacaktır.
Ünite kodunu aşağıdaki şekilde değiştirir iseniz çalışacaktır:
Ünite kodunu aşağıdaki şekilde değiştirir iseniz çalışacaktır:
Kod: Tümünü seç
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function BlockInput(fBlockIt: BOOL): BOOL; stdcall; external 'user32.dll';
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled := false;
try
Memo1.Lines.Add('Þu anda klavye ve mouse kullanýlamaz durumda olmalý.');
Memo1.SetFocus;
BlockInput(true);
Sleep(15000);
finally
BlockInput(false);
Button1.Enabled := true;
end; // try..finally
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
BlockInput(False);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if not BlockInput(True) then
begin
ShowMessage('Kilitleme yapýlamadý. Uygulama Administrator yetkisine sahip mi?');
Exit();
end;
Sleep(5000);
BlockInput(False);
end;
end.
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Hocam video çekip atacağım vallahi yok istediğim olmuyor windows da her yeri clickle yip açabiliyorum win tuşu çalışıyor kodu aynen kopyaladım yapıştırıdım ((( benim dışımda deneyen başka bir arkadaş yok mu forumda
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Administrator olarak çalıştırıyorsunuz uygulamayı değil mi?
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
win10 da gizli bir Administrator yoksa pc de tek hesabım var
Haydar
Yerel Hesap
Administrator
şeklinde başka oturumum yok hocam
https://drive.google.com/open?id=12dMyg ... phulY4jWJE
Haydar
Yerel Hesap
Administrator
şeklinde başka oturumum yok hocam
https://drive.google.com/open?id=12dMyg ... phulY4jWJE
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
EXE dosya üzerinde sağ tuş ile tıklayıp "Run As Administrator" şeklinde çalıştırmaktan bahsediyor idim.
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
ok çook teşekkür ertank hocam..Şimdi oldu hocam dediğiniz gibi kitledi.Tabi şimdi şöyle bir sorun var doğrudan Run As Administrator nasıl dedirteceğiz projeye.Umarım çok olmuyorumdur
http://chapmanworld.com/2015/06/08/elev ... lications/ aynen uyguladım ama olmadı 3.satırıda projemi yazdım ama xml ne kadar doğru ki
gerkeli ayraları yaptıgımda
http://chapmanworld.com/2015/06/08/elev ... lications/ aynen uyguladım ama olmadı 3.satırıda projemi yazdım ama xml ne kadar doğru ki
gerkeli ayraları yaptıgımda
Kod: Tümünü seç
Unable create progcess:İstenen işlem için yükseltme gerekiyor
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Eğer uygulamanın böyle bir yetki ile nasıl çalışacağını soruyor iseniz son Delphi sürümlerinde proje özellikleri içinde "Application" kısmında "Execution Level" ayarı mevcut. Bunu "Require Administrator" yapıp projeyi derlemelisiniz.
Eğer Administrator yetkisi ile uygulama nasıl çalışacak diye soruyorsanız uygulamanızı kullanacak kişi uygulamanız ilk açılır iken onay vermeli. Tabi eğer uygulamanın çalıştığı sistemde Administrator yetkisi için onay alınmasına gerek olmayacak şekilde Windows ayarları yapılmış ise soru sormadan direk çalışır.
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Dememiştim hocam hatta bazı forumlarda manifest te gekek yok bu ayar yeterli deniliyor.Delphi bu sorunu çözmüş diye yazanlar var.(delphi10.2)Ayar ve hata mesajı şöyleEğer uygulamanın böyle bir yetki ile nasıl çalışacağını soruyor iseniz son Delphi sürümlerinde proje özellikleri içinde "Application" kısmında "Execution Level" ayarı mevcut. Bunu "Require Administrator" yapıp projeyi derlemelisiniz.
https://drive.google.com/open?id=1THED4 ... ciEr6yb7Eu
https://drive.google.com/open?id=1gOoad ... _dEN7RIrKx
Ayar Execution Level>>As Invoker olursa proje açılıyor ama admin sorunu devam ediyor.
hocam laptobumda deniyorum her yetki serbest yine doğrudan kod çalışmıyor Run As Administrator demedenEğer Administrator yetkisi ile uygulama nasıl çalışacak diye soruyorsanız uygulamanızı kullanacak kişi uygulamanız ilk açılır iken onay vermeli. Tabi eğer uygulamanın çalıştığı sistemde Administrator yetkisi için onay alınmasına gerek olmayacak şekilde Windows ayarları yapılmış ise soru sormadan direk çalışır.
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Ben bu ayarı "Require Administrator" yapın diye yazmıştım. Gözden kaçırmış olmalısınız. "As Invoker" adından da anlaşılacağı üzere çalıştıran kullanıcı yetkileri ile anlamına geliyor.
1-EXE uygulamanız "Require Administrator" ayarı seçili olduğu halde *derlenmedi* ise çift tıklandığında normal uygulama yetkisi ile çalışacaktır. Dolayısıyla sizin uygulamayı özellikle "Run As Administrator" şeklinde çalıştırmanız gerekecektir.hocam laptobumda deniyorum her yetki serbest yine doğrudan kod çalışmıyor Run As Administrator demeden
2-EXE uygulamanız "Require Administrator" ayarı seçili olduğu halde derlendi ise çift tıklandığında otomatik olarak "Run As Administrator" şeklinde çalışacaktır.
Bir Windows kullanıcısının kullanıcı ayarları içinde "Administrator" yetkisine sahip olması ve aynı kullanıcının çift tıklayarak çalıştırdığı uygulamanın "Run As Administrator" olarak çalışması yanlış hatırlamıyor isem Windows Vista çıktığından beri tamamen farklı konular oldular.
Windows Vista ve sonrasında normalde her uygulama normal kullanıcı yetkisi ile çalışır. Gerekli olduğunda Administrator yetkisi ister. Bazı uygulamalar ise tüm çalışma süreleri boyunca bu yetkiye gereksinim duyarlar. Uygulamalara "Run As Administrator" yetkisi gerek duyduklarında veya uygulamasına göre ilk çalışma anında User Access Control (UAC) yapısı ile uygulamaya verilir. UAC normal koşullarda yetki vermeden önce Administrator yetkisi verilmesine dair ekranı ve çalışan diğer uygulamaları durdurup kullanıcı onayı ister. Bu UAC onayını sadece kullanıcı ayarları içinde "Administrator" yetkisi tanımlı olan kullanıcılar verebilir. Kullanıcı ayarlarında normal kullanıcı olan kullanıcılar onay veremez.
Aşağıdaki video Window 10 için bu UAC yetki mesajına gerek kalmadan otomatik olarak uygulamanın manifestosu içinde var ise direk "As Administrator" olarak çalışmasını ve kullanıcı onayı almamasını sağladığını söylüyor. Ben kendi sistemimde denemedim.
https://www.youtube.com/watch?v=kcdmKv2sgXU
Re: Mause ve Klavye kitleme yada Windowsu Kitleme
Gözden kaçmadı hocam öyle denedim olmadı dedim.Execution Level>>As Invoker ayarı olursa proje çalışıyor.Ben bu ayarı "Require Administrator" yapın diye yazmıştım. Gözden kaçırmış olmalısınız. "As Invoker" adından da anlaşılacağı üzere çalıştıran kullanıcı yetkileri ile anlamına geliyor.
Require Administrator yaptığımda proje derlenmiyor ama exe si Run As Administrator olarak çalışıyor.Yani delphi 10 için manifeste gerek yokmuş.Projeyi kodlarken Execution Level>>As Invoke de çalışması gerekir.exe Run As Administrator olsun isteniliyorsa Require Administrator yapı run deyip exe yi kullanabiliyoruz.Teşekkürler ertank hocam sabır ve yardımlarınız için.Sorun çözülmüştür......