sorunun dll import ile bir alakası yok
foreach (Keys key in Enum.GetValues(typeof(Keys)))
ghook.HookedKeys.Add(key);buradaki döngüyle hookedkeys e karakterler ekleniyor. döngüden çıktıktan sonraki satıra bir break point koyarsan hookedkeys dizisinde türkçe karakter olmadığını görürsün..
GlobalKeyboardhook.cs dosyasını açtığında
buradaki
public int hookProc(int code, int wParam, ref keyboardHookStruct lParam)
fonksiyonundaki lParam argumanın vkCode değeri ascii olarak türkçe karakterleri desteklemediğini görürsün. mesela Ş harfi 351 döndermesi gerekirken 186 gibi bir değer dönderiyor bu da haliyle HookedKeys dizisindeki 186 ascii koda sahip karaktere tekabül ediyor ve yanlış sonuç alıyorsun
çözüm olarak genelde yapılan türkçe karakterler için özel kontroller yapman olabilir
if (HookedKeys.Contains(key))
in altına
if((int)key==351)
.... //Ş yi dönder
şeklinde bir şeyler yapabilirsin