Çözüldü C# ile arka planda tuş çalıştırma

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Mucosoft

Megapat
Katılım
5 Mart 2014
Mesajlar
5.525
Makaleler
12
Çözümler
41
C# ile LightShot benzeri fakat LightShot uygulamasına göre daha iyi bir uygulama geliştiriyorum. Uygulamayı notifyıcon objesi ile birlikte arka plana aldım yani formu gizledim. Arka plandayken tuşlara basınca işlem yapmasını istiyorum. Bunu nasıl yapacağım?

Şöyle bir örnek daha vereyim. Arka planda çalışan LightShot, CTRL + print screen tuşuna basınca seçtiğimiz alanı çekiyor. Ekranda istediğim bölgeyi çekme işlemini hallettim fakat dediğim gibi arka planda tuşa basma kısmını halledemedim.
 
Çözüm
Zaten ben bu yazılımı kendim için geliştiriyorum. LightShot uygulaması benim için yeterli değildi.

Tamam o zaman sorun yok :)
[DllImport("user32", SetLastError = true)] private static extern int RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk); [DllImport("kernel32", SetLastError = true)] private static extern short GlobalAddAtom(string lpString); // private const int MOD_ALT = 1; private const int MOD_CONTROL = 2; private const int MOD_SHIFT = 4; // void RegisterGlobalHotKey(Keys hotkey, int modifiers) { short hotkeyID = GlobalAddAtom(base.Name); RegisterHotKey(base.Handle, hotkeyID, modifiers, (int)hotkey); } protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 0x312) { //yapılcaklar } } private void Form1_Load(object sender, EventArgs e) { RegisterGlobalHotKey(Keys.A, 1);//buradaki 1 "alt" tuşu demek yukarda ctrl ve "shift" in numarasıda yazıyor }

C# ile LightShot benzeri fakat LightShot uygulamasına göre daha iyi bir uygulama geliştiriyorum. Uygulamayı notifyıcon objesi ile birlikte arka plana aldım yani formu gizledim. Arka plandayken tuşlara basınca işlem yapmasını istiyorum. Bunu nasıl yapacağım?

Şöyle bir örnek daha vereyim. Arka planda çalışan LightShot, CTRL + print screen tuşuna basınca seçtiğimiz alanı çekiyor. Ekranda istediğim bölgeyi çekme işlemini hallettim fakat dediğim gibi arka planda tuşa basma kısmını halledemedim.

Klavyeyi sürekli dinlemeniz gerekiyor. Bu da güvenlik problemi ortaya çıkarır.
 
Ben güncel yazılımları ve işletim sistemlerini kullanıyorum. Antivirüs uygulaması da bulunuyor. Yine de bir güvenlik sorunu oluşabilir mi?
Eğer uygulamanı açık kaynak yaparsan hiç bir sıkıntı çıkmaz, zaten kodlar göründüğünden keylogger tarzı bir uygulama olmadığı görülür. Eğer açık kaynak yapmayacaksan antivirüs taramalarını uygulamayı satacağın/pazarlayacağın platformda kaynak olarak göstersen iyi olur.
 
Eğer uygulamanı açık kaynak yaparsan hiç bir sıkıntı çıkmaz, zaten kodlar göründüğünden keylogger tarzı bir uygulama olmadığı görülür. Eğer açık kaynak yapmayacaksan antivirüs taramalarını uygulamayı satacağın/pazarlayacağın platformda kaynak olarak göstersen iyi olur.
Zaten .NET kodları tersine mühendislik ile çözülebiliyor. Versem de vermesem de açık kaynağını çıkarırlar. 😂
 
Zaten ben bu yazılımı kendim için geliştiriyorum. LightShot uygulaması benim için yeterli değildi.

Tamam o zaman sorun yok :)
[DllImport("user32", SetLastError = true)] private static extern int RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk); [DllImport("kernel32", SetLastError = true)] private static extern short GlobalAddAtom(string lpString); // private const int MOD_ALT = 1; private const int MOD_CONTROL = 2; private const int MOD_SHIFT = 4; // void RegisterGlobalHotKey(Keys hotkey, int modifiers) { short hotkeyID = GlobalAddAtom(base.Name); RegisterHotKey(base.Handle, hotkeyID, modifiers, (int)hotkey); } protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == 0x312) { //yapılcaklar } } private void Form1_Load(object sender, EventArgs e) { RegisterGlobalHotKey(Keys.A, 1);//buradaki 1 "alt" tuşu demek yukarda ctrl ve "shift" in numarasıda yazıyor }

 
Çözüm

Yeni konular

Geri
Yukarı