dokunmatik ekran text input
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: dokunmatik ekran text input
Özelden Gönderirseniz çok memnun olurum.
-
- Üye
- Mesajlar: 839
- Kayıt: 03 Eki 2007 02:00
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Re: dokunmatik ekran text input
Selamlar
Yeni bir konu açmak istemedim.
ilaveten sormak istediğim. Windowsun kendi sanal klavyesini delphi içerisinden nasıl kullanabilirim.
Yazdığım kod XP, Win7 altında çalışırken Win10 altında çalışmıyor.
aşağıdaki kodu denediğimde "Could not Trat on-Screen Keybord." şeklinde bir hata alıyorum.
Bu hatayı araştırdığımda çıkan örneklerin neredeyse hepsini denedim fakat sonuç istediğim gibi olmuyor.
Bu konuda yardımcı olabilecek arkadaşlara teşekkürler.
Yeni bir konu açmak istemedim.
ilaveten sormak istediğim. Windowsun kendi sanal klavyesini delphi içerisinden nasıl kullanabilirim.
Yazdığım kod XP, Win7 altında çalışırken Win10 altında çalışmıyor.
aşağıdaki kodu denediğimde "Could not Trat on-Screen Keybord." şeklinde bir hata alıyorum.
Bu hatayı araştırdığımda çıkan örneklerin neredeyse hepsini denedim fakat sonuç istediğim gibi olmuyor.
Bu konuda yardımcı olabilecek arkadaşlara teşekkürler.
Kod: Tümünü seç
procedure TFrmMain.sBitBtn2Click(Sender: TObject);
function System32: string;
var
SysDir: PChar;
begin
SysDir := StrAlloc(MAX_PATH);
GetSystemDirectory(SysDir, MAX_PATH);
Result := string(SysDir);
if Result[Length(Result)] <> '\' then
Result := Result + '\';
StrDispose(SysDir);
end;
begin
shellexecute(0,'open', PWideChar(system32+'osk.exe'),0,0,0);
end;
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: dokunmatik ekran text input
Mehaba,
Öncelikle ShellExecute yerine ShellExecuteEx kullanarak hata kodunu öğrenmek bu gibi sorunların çözümünde oldukça faydalı olur.
osk.exe ile ilgili birkaç noktaya dikkat etmeniz gerekiyor.
1- UAC kontrolüne tabidir. Eğer çalıştırmak istediğiniz bilgisayarda UAC kapalı ise sorun yaşayabilirsiniz.
2- Uygulamanız 32bit, işletim sistemi 64bit ise birkaç noktaya daha dikkat etmek gerekiyor.
a- 32bit uygulama 32bit işletim sistemi üzerinde sizin kullandığınız yöntem ile osk.exe çalıştırılabilir.
b- 64bit uygulama 64bit işletim sistemi üzerinde sizin kullandığınız yöntem ile osk.exe çalıştırılabilir.
c- 32bit uygulama 64bit işletim sistemi üzerinde ise sizin uygulamanızın başka bir 64bit uygulamayı çalıştırması ve bu uygulamanın da osk.exe uygulamasını çalıştırması gerekmektedir.
Eğer C maddesi sizin için geçerli ise ve Delphi ile 64bit uygulama geliştiremiyor iseniz aşağıdaki C++ kodunu derleyip EXE dosyanız ile birlikte kullanmanız gerekecektir.
Kaynak:http://stackoverflow.com/questions/2311 ... s-on-win64
Öncelikle ShellExecute yerine ShellExecuteEx kullanarak hata kodunu öğrenmek bu gibi sorunların çözümünde oldukça faydalı olur.
osk.exe ile ilgili birkaç noktaya dikkat etmeniz gerekiyor.
1- UAC kontrolüne tabidir. Eğer çalıştırmak istediğiniz bilgisayarda UAC kapalı ise sorun yaşayabilirsiniz.
2- Uygulamanız 32bit, işletim sistemi 64bit ise birkaç noktaya daha dikkat etmek gerekiyor.
a- 32bit uygulama 32bit işletim sistemi üzerinde sizin kullandığınız yöntem ile osk.exe çalıştırılabilir.
b- 64bit uygulama 64bit işletim sistemi üzerinde sizin kullandığınız yöntem ile osk.exe çalıştırılabilir.
c- 32bit uygulama 64bit işletim sistemi üzerinde ise sizin uygulamanızın başka bir 64bit uygulamayı çalıştırması ve bu uygulamanın da osk.exe uygulamasını çalıştırması gerekmektedir.
Eğer C maddesi sizin için geçerli ise ve Delphi ile 64bit uygulama geliştiremiyor iseniz aşağıdaki C++ kodunu derleyip EXE dosyanız ile birlikte kullanmanız gerekecektir.
Kod: Tümünü seç
#include <Windows.h>
#include <Shellapi.h>
int CALLBACK WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
SHELLEXECUTEINFOW sei = { sizeof(sei) };
sei.lpVerb = L"open";
sei.lpFile = L"osk.exe";
sei.nShow = SW_SHOW;
ShellExecuteExW(&sei);
}