Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 1.694 pregleda

Najnovija ↓

Global Hook nad promenom input languge-a 13.12.2010. u 16:28 · pre 193 meseca #1
Razvijam win c# aplikaciju koja treba da sluša promene current input language-a u svim drugim aktivnim windows aplikacijama, pa da na osnovu toga za svaku od njih startuje ili stopira slanje HotKey-a prema njima. Za sada mi radi slanje HotKey-a svim aplikacijama i sve ih primaju. Problem je sto sada moram da startujem ili stopiram proces slanja u samoj aplikaciji (napravila sam button ukuljuci-iskljuci). Želim da se to radi automatski, a ne klikom na baton, hvatanjem poruke o promeni input language-a u svakoj aplikaciji.

Hm, problem je sto sam nova u ManagedWinApi, na netu nisam nasla nista, a ne znam ni koje literature sa se dohvatim.
Dakle moje pitanje su:
1. šta da slušam kao callback funkciju da bih sigurno uhvatika dogadjaj promene jezika (GetKeyboardLayout ili LowLevelKeyboardProc ili nesto trece)
2. kakva je hook struktura u tom slucaju

Probala sam, testa radi, hook nad KeyboardEvent i hvata tipke alt-shift sa svih aplikacija, ali tu ne znam o kom se odabranom jeziku radi, pa ne pije vodu.
Takodje, ne radi ni override WndProc gde sam hvatala WM_INPUTLANGCHANGE, jer se odnosi samo na promene jezika u svim prozorima tekuceg procesa.
(Ako nisam upravu ispravite me, ali sve mi se cini da je tako).
Ako neko ima bilo kakvu idejicu, link, e-book da preporuci, hukcem bezuspesno već 4-5 dana...
Re: Global Hook nad promenom input languge-a 16.12.2010. u 13:20 · pre 193 meseca
izmenjeno 1 put, poslednji put Shadowed 16.12.2010. u 14:18
  1. Shadowed16.12.2010. u 14:18zapis iz teksta poruke
#2
'Ajd da odgovorim sama sebi, mozda ce kome zatrebati...
1. Slušam GetKeyboardLayout aktivnog procesa
2. hvatam lowWord

moje parce koda:
Code (csharp):

        public static int findCurrentLanguage()
        {
            Int32 thread = 0;
            uint procId;
           
            IntPtr activeWindowHandle = GetForegroundWindow();
            thread = GetWindowThreadProcessId(activeWindowHandle, out procId);
            return GetLowWord((int)GetKeyboardLayout(thread));
        }
 

piece of cake :)) Sad mi sve radi!!!
Re: Global Hook nad promenom input languge-a 16.12.2010. u 14:19 · pre 193 meseca #3
Hvala sto si postovala resenje iako nije uspeo niko da ti pomogne.

Dodao sam ti code tagove u post.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme