tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルタッチキーボードの呼び出し
記事No11961
投稿日: 2018/02/24(Sat) 15:22
投稿者とのむら
vb6.0からwindows10のタッチキーボードを画面上に呼び出す事は可能でしょうか。
具体的にはコマンドボタンを押したときやテキストボックスにフォーカが移動した際に画面に
タッチキーボードが出せないかと考えています。

[ツリー表示へ]
タイトルRe: タッチキーボードの呼び出し
記事No11962
投稿日: 2018/02/24(Sat) 16:47
投稿者jikoryuu
C:\Windows\System32\osk.exeのスクリーンキーボードの事ですかね?

[ツリー表示へ]
タイトルRe^2: タッチキーボードの呼び出し
記事No11963
投稿日: 2018/02/25(Sun) 05:48
投稿者とのむら
> C:\Windows\System32\osk.exeのスクリーンキーボードの事ですかね?


c:\Program Files\Common Files\microsoft shared\ink\TabTip.exe
こちらの方です。
エクスプローラで直接たどって行きクリックでは出てくるのですがVBからは呼び出せません

[ツリー表示へ]
タイトルRe^3: タッチキーボードの呼び出し
記事No11964
投稿日: 2018/02/25(Sun) 12:14
投稿者jikoryuu
テキストボックスのGetFocusイベントで次の命令を呼び出すとタッチパネルが起動することは確認できました

CreateObject("shell.application").shellexecute("c:\Program Files\Common Files\microsoft shared\ink\TabTip.exe")

しかし、タブレットモードでないと起動できません


タブレットモードかどうか確認する方法は次のURLにあります

Windows10タブレットモード検知方法
https://social.msdn.microsoft.com/Forums/ja-JP/f7b78d4f-b81b-41a0-abe9-06c01e8661a0/windows10?forum=csharpgeneralja

[ツリー表示へ]
タイトルRe^4: タッチキーボードの呼び出し
記事No11965
投稿日: 2018/02/26(Mon) 09:59
投稿者とのむら
> テキストボックスのGetFocusイベントで次の命令を呼び出すとタッチパネルが起動することは確認できました
>
> CreateObject("shell.application").shellexecute("c:\Program Files\Common Files\microsoft shared\ink\TabTip.exe")
>
> しかし、タブレットモードでないと起動できません
>
>
> タブレットモードかどうか確認する方法は次のURLにあります
>
> Windows10タブレットモード検知方法
> https://social.msdn.microsoft.com/Forums/ja-JP/f7b78d4f-b81b-41a0-abe9-06c01e8661a0/windows10?forum=csharpgeneralja


考えていた通りの事ができました。
初心者の相手をして頂きありがとうございました。
またお世話になる事も有るかと思いますがよろしくお願い致します。

[ツリー表示へ]
タイトルRe^5: タッチキーボードの呼び出し
記事No11970
投稿日: 2018/03/03(Sat) 17:55
投稿者とのむら
度々お世話になります
上記の命令で呼び出した後、今度はテキストボックスのLostFocusでタッチパネルを消す場合は
どう記述すれば良いのでしょうか


> > テキストボックスのGetFocusイベントで次の命令を呼び出すとタッチパネルが起動することは確認できました
> >
> > CreateObject("shell.application").shellexecute("c:\Program Files\Common Files\microsoft shared\ink\TabTip.exe")
> >
> > しかし、タブレットモードでないと起動できません
> >
> >
> > タブレットモードかどうか確認する方法は次のURLにあります
> >
> > Windows10タブレットモード検知方法
> > https://social.msdn.microsoft.com/Forums/ja-JP/f7b78d4f-b81b-41a0-abe9-06c01e8661a0/windows10?forum=csharpgeneralja
>
>
> 考えていた通りの事ができました。
> 初心者の相手をして頂きありがとうございました。
> またお世話になる事も有るかと思いますがよろしくお願い致します。

[ツリー表示へ]
タイトルRe^6: タッチキーボードの呼び出し
記事No11971
投稿日: 2018/03/04(Sun) 09:51
投稿者jikoryuu
Win32APIのTerminateProcess
notepadでは成功

Process.MainWindowTitle.Contains
Process.CloseMainWindow
notepad、calc("電卓")では成功

TabTipwでは両方試してみましたが上手くいきませんでした
他に方法が思いつきません

簡単にはできないようです

[ツリー表示へ]
タイトルRe^7: タッチキーボードの呼び出し
記事No11972
投稿日: 2018/03/09(Fri) 01:43
投稿者jikoryuu
以下のコードで起動と閉じることができることを確認しました


■TabTip起動時

Process.Start("c:\program files\common files\microsoft shared\ink\tabtip.exe")


■TabTipを閉じる時

'宣言
Const WM_SYSCOMMAND As Integer = &H112
Const SC_CLOSE As Integer = &HF060
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As IntPtr

'閉じたいイベントで
Dim hWnd As IntPtr = FindWindow("IPTip_Main_Window", vbNullString)
If hWnd <> IntPtr.Zero Then PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0)

[ツリー表示へ]