Yazacagim program, isletim sisteminde birden fazla klavye secenegi varsa klavyeyi ingilizce moda alsin istiyorum.
Nasil yapabilirim?
Denetim masasında klavye ve dil seçeceğinden varsayılan klavye ve dil seçeceğini İngilizce yapıyorsun sorun kalmıyor
Bahsettiginiz ayari ben kurcalayabiliyorsam baskasi da kurcalar ve sorunum cozulmemis olur.
https://social.msdn.microsoft.com/Forums/en-US/d121f068-3f39-4fe8-9801-9542fb5dbb53/any-idea-how-to-change-system-keyboard-language-with-vba?forum=isvvba (https://social.msdn.microsoft.com/Forums/en-US/d121f068-3f39-4fe8-9801-9542fb5dbb53/any-idea-how-to-change-system-keyboard-language-with-vba?forum=isvvba)
User mode kullanıcı açarsan hiçbir değişiklik yapamaz
@malaga cozum onerilerin benim kafa yapima cok ters.
Benim programla isi biten kisi word kullanmak ve klavye degistirmek isterse ne olacak?
ozaman sunu yap win ini dosyasinda klavye ayarları ve secenekleri var program ile bu dosyaya ulaş orda degişitir programdan çıkarkende bu dosyayı eski haline getirebilirsen yazılımında ozaman problem ortadan kalkar. win.ini sytem.ini de olabilir tam hatırlamıyorum budosyaların birinde bu ayarlar var ordan deneme yanılma yöntemiyle denersin kolay gelsin
Kayıt defterinde (Regedit) bir anahtar altındaki diziyi değiştirmeniz yeterli Bülent hocam
HKEY_CURRENT_USER\Keyboard Layout\Preload anahtarında 1 nolu dize değerini
d000041f yaparsasnız Tükçe F klavye olur
0000041f yaparsasnız Tükçe Q klavye olur
00000409 yaparsasnız ABD olurmuş (hiç değiştirmedim)
Hocam siz sanırım Delphi kullanıyordunuz , programla regedit ayarlarını değiştirerek yapabilirsiniz. .NET olsa kodları var ama Delphi maalesef.
Hocam ben XP üstüne çıkamadım bu bilgilerle XP üstü sistemler regedite yazmaya müsaade ediyormu bilmiyorum.
Klavyenin değişebilmesi için PC nin yeniden başlatılması yada kullanıcı değiştirilmesi lazım.
Merhaba,
Bunun bir kaç yöntemi var.
Örnek olması açısından;
Sisteme tanımlanmış klavye dillerini listeler ve istediğinizi seçmenizi sağlar. Seçim anlık uygulanır. Windows 10 pro 64bit ve Delphi 10.1 ile denendi, başarılı.
//Bir adet ComboBox ekleyin ve FormCreate oluşturun.
//Windows 10 pro 64bit ve Delphi 10.1 ile denendi, başarılı.
procedure GetKLList(List: TStrings);
var
AList : array [0..9] of Hkl;
AklName: array [0..255] of Char;
i: Longint;
begin
List.Clear;
for i := 0 to GetKeyboardLayoutList(SizeOf(AList), AList) - 1 do
begin
GetLocaleInfo(LoWord(AList), LOCALE_SLANGUAGE, AklName, SizeOf(AklName));
List.AddObject(AklName, Pointer(AList));
end;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
with Sender as TComboBox do
begin
ActivateKeyboardLayout(Hkl(Items.Objects[ItemIndex]), 0);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
GetKLList(ComboBox1.Items);
end;