Jak používat klávesnici na obrazovce k zadávání hodnot myší (touchscreen)
Program
osk.exe (
On Screen Keyboard) zobrazí na obrazovce virtuální klávesnici, která se ovládá myší (
touchscreen). Tím lze zadat a editovat hodnoty v obrazech a v oknech aplikace PROMOTIC.
Klávesnice je úplná, včetně speciálních kláves. Umožňuje (mimo jiné) i otevřít nápovědu, kontextové menu, přepínat jazyk, vybrat text, atd. Emulace stisknutí klávesy je posílána oknu, které je aktivní. Okno vlastní virtuální klávesnice se po stisknutí levého tlačítka myši nestane aktivní, takže opakované stisknutí kláves posílá jednotlivé znaky stále stejnému oknu.
Program se otevře na pozici, na které byl naposledy zavřen. Vlastní zobrazení/zavření okna s virtuální klávesnicí se provádí následujícím skriptem (pozor na skutečný název v záhlaví okna virtuální klávesnice, může být jazykově závislý):
Otevře okno klávesnice ve 32 i 64-bitovém systém PROMOTIC:
Upozornění! 32-bitový systém PROMOTIC na 64-bitových OS Windows neumí standardně zobrazit klávesnici osk.exe. Je to způsobené tím, že osk.exe je umístěn ve složce "/Windows/System32", která je systémem zdvojená. 32-bitový program vidí jiný obsah této složky než 64-bitový program. V této složce je umístěna naprostá většina knihoven a utilit OS Windows v obou verzích (64/32-bit). Nástroj osk.exe je vyjímkou a je umístěna pouze v 64-bitové verzi, tzn. 32-bitový program ve 32-bitové verzi složky System32 nástroj nenajde. Existuje způsob, jak z 32-bitového programu zavolat 64-bitovou verzi osk.exe pomocí 64-bitového cmd.exe (příkazový řádek). 32-bitový program může vidět 64-bitovou verzi utilit ve virtuální složce /Windows/SysNative. Přesný způsob volání i s příkladem testu, zda spuštěná aplikace vidí osk.exe je uveden v tomto příkladě.
JavaScriptVBScriptVyber a zkopíruj do schránky
if (Pm.FileGetLength("#winsys:osk.exe") > 0)
{
Pm.ShellExecute("open", "#winsys:osk.exe", "", "", 1);
}
else
{
Pm.ShellExecute("open", "#win:SysNative\\cmd.exe", "", "", 1);
}
If Pm.FileGetLength("#winsys:osk.exe") > 0 Then
Pm.ShellExecute "open", "#winsys:osk.exe", "", "", 1
Else
Pm.ShellExecute "open", "#win:SysNative\cmd.exe", "", "", 1
End If
Otevře nebo zavře okno klávesnice:
JavaScriptVBScriptVyber a zkopíruj do schránky
if (Pm.WndOper(1, "Klávesnice na obrazovce", 0))
{
Pm.WndOper(1, "Klávesnice na obrazovce", 10);
}
else
{
Pm.ShellExecute("open", "#winsys:osk.exe", "", "", 1);
}
If Pm.WndOper(1, "Klávesnice na obrazovce", 0) Then
Pm.WndOper 1, "Klávesnice na obrazovce", 10
Else
Pm.ShellExecute "open", "#winsys:osk.exe", "", "", 1
End If
Otevře nebo nastaví na popředí okno klávesnice:
JavaScriptVBScriptVyber a zkopíruj do schránky
if (Pm.WndOper(1, "Klávesnice na obrazovce", 0))
{
Pm.WndOper(1, "Klávesnice na obrazovce", 11);
}
else
{
Pm.ShellExecute("open", "#winsys:osk.exe", "", "", 1);
}
If Pm.WndOper(1, "Klávesnice na obrazovce", 0) Then
Pm.WndOper 1, "Klávesnice na obrazovce", 11
Else
Pm.ShellExecute "open", "#winsys:osk.exe", "", "", 1
End If
Poznámka! Bylo zjištěno omezení zasílaní
Windows zpráv (
Pm.WndOper) z 32-bitového programu oknu 64-bitového programu, kdy 32-bitový program musel být spuštěn s povýšenými právy ("Spustit jako správce").