Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > sci.physics > #696071

Kill&ReStart the "touch keyboard" before bringing it "up" ( on screen ).

Path csiph.com!feeder.erje.net!2.eu.feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!post01.iad!fx44.iad.POSTED!not-for-mail
Content-Type Text/plain; charset=UTF-8
Content-Transfer-Encoding 8bit
From Jeff-Relf.Me @.
Message-ID <Jeff-Relf.Me@Jul.28--0.31pm.Seattle.2018> (permalink)
References <Jeff-Relf.Me@Jul.15--10.09pm.Seattle.2018> <Jeff-Relf.Me@Jul.16--6.12am.Seattle.2018> <Jeff-Relf.Me@Jul.16--9.02am.Seattle.2018> <Jeff-Relf.Me@Jul.17--1.14am.Seattle.2018> <Jeff-Relf.Me@Jul.17--8.40pm.Seattle.2018> <Jeff-Relf.Me@Jul.21--2.32am.Seattle.2018> <Jeff-Relf.Me@Jul.22--10.17am.Seattle.2018> <Jeff-Relf.Me@Jul.23--3.12am.Seattle.2018> <Jeff-Relf.Me@Jul.23--4.34pm.Seattle.2018> <Jeff-Relf.Me@Jul.25--5.48am.Seattle.2018>
Newsgroups comp.os.linux.advocacy, sci.physics, alt.comp.os.windows-10, news.software.readers, comp.lang.c++, alt.checkmate
Subject Kill&ReStart the "touch keyboard" before bringing it "up" ( on screen ).
User-Agent Jeff-Relf.Me/X.HTM
Lines 82
X-Complaints-To abuse@usenet-news.net
NNTP-Posting-Date Sat, 28 Jul 2018 19:31:05 UTC
Organization usenet-news.net
Date Sat, 28 Jul 2018 12:31:05 -0700 (Seattle)
X-Received-Bytes 4665
X-Received-Body-CRC 2636002874
Xref csiph.com comp.os.linux.advocacy:460045 sci.physics:696071 alt.comp.os.windows-10:71767 news.software.readers:31843 comp.lang.c++:59111 alt.checkmate:188340

Cross-posted to 6 groups.

Show key headers only | View raw


https://stackoverflow.com/questions/38774139/show-touch-keyboard-tabtip-exe-in-windows-10-anniversary-edition#51376030

The keyboard toggle ( ITipInvocation.Toggle() ) 
does _ N O T _ always bring up the "touch keyboard"
( Win10 DesktopMode Ver 1803 ).

The solution: use IFrameworkInputPane.Location() to see if the keyboard
is "down" ( off screen ) and, if it is, kill the keyboard processes
and relaunch them before bringing it "up" ( on screen ) again.

This solution has been tested by me, over several days,
and confirmed to work every time, no ( R A N D O M ) stalling.

To toggle the keyboard on and off ( from X.CPP in Jeff-Relf.Me/X.ZIP ):
    
if ( WM == WM_HOTKEY && C == 'K' ) {
    
  //  A mouse button takes me here.  Jeff-Relf.Me/g600.PNG
    
  unsigned __int64  u[2] ;  IFrameworkInputPane  *Loc ;
  Loc = 0, CoCreateInstance( CLSID_FrameworkInputPane, 0, 
    CLSCTX_INPROC_SERVER, IID_IFrameworkInputPane, (void**) & Loc );

  //  "__int64 u[2]" is the same size as "RECT";
  //  both are four 32 bit ints: top, left, bottom, right.
    
  if ( !Loc || ( Loc->Location( (RECT*)&u ), Loc->Release(), !*u && !u[1] ) )
    
    //  The keyboard is "down" ( off screen ),
    //  Kill&ReStart it before bringing it "up" ( on screen ). 
    
    KillProc = 1, Running( L"TabTIP.EXE" ), KillProc = 1, Running( 
    L"WindowsInternal.ComposableShell.Experiences.TextInput.InputApp.EXE" ),
    Launch( L"%CommonProgramFiles%/microsoft shared/ink/TabTIP.EXE" ),
    Sleep(99);
    
  static const GUID CLSID_UIHostNoLaunch = {  0x4CE576FA, 0x83DC, 0x4f88,
    0x95, 0x1C, 0x9D, 0x07, 0x82, 0xB4, 0xE3, 0x76 };
  static const GUID IID_ITipInvocation = {  0x37c994e7, 0x432b, 0x4834,
    0xa2, 0xf7, 0xdc, 0xe1, 0xf1, 0x3b, 0x83, 0x4b };
  static struct ITipInvocation : IUnknown {  virtual HRESULT 
    STDMETHODCALLTYPE  Toggle( HWND wnd ) = 0 ;  }  * Tog ;
    
  Tog = 0, CoCreateInstance( CLSID_UIHostNoLaunch, 0, CLSCTX_INPROC_HANDLER
    | CLSCTX_LOCAL_SERVER, IID_ITipInvocation, (void**) & Tog );
    
  //  Toggle the keyboard On|Off: 
    
  Tog ? Tog->Toggle( GetDesktopWindow() ), Tog->Release() : 0 ;    }
- - - - - - - - - - - - -
//  Poorly documented, "NTDDI_WIN10" is _vital_:
#define  NTDDI_VERSION  NTDDI_WIN10
     
//  To get the process list, and kill stuff: 
#include <tlhelp32.H>
     
//  To know if the keyboard is up or not: 
#include <ShObjIdl.H>
    
    
      int  KillProc ;
int Running( wchar * EXE ) {  int  Found ;  HANDLE  PIDs, aProc ;
  PROCESSENTRY32  aPID = { sizeof aPID };
  PIDs = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
  Process32First( PIDs, &aPID );
  while ( Found = !strCmpI( aPID.szExeFile, EXE ),
    KillProc && Found && ( 
      aProc = OpenProcess( PROCESS_TERMINATE, 0, aPID.th32ProcessID ),
      aProc ? TerminateProcess( aProc, 9 ), CloseHandle( aProc ) : 0 ),
    !Found && Process32Next( PIDs, &aPID ) );
      
  KillProc = 0, CloseHandle( PIDs );  return  Found ;   }
    
    
Launch( wchar * Cmd ) {  wchar _Cmd[333];  static PROCESS_INFORMATION Stat ;
  static STARTUPINFO SU = { sizeof SU };
  SetEnvironmentVariable( L"__compat_layer", L"RunAsInvoker" );
  ExpandEnvironmentStrings( Cmd, _Cmd, 333 ), Cmd = _Cmd ;
  if ( CreateProcess( 0, Cmd, 0,0,1,0,0,0, &SU , &Stat ) )
    CloseHandle( Stat.hProcess ), CloseHandle( Stat.hThread );  }
    
//  CoInitialize(0);

Back to sci.physics | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Toggling "Touch Keyboard" On/Off, Firefox and Chrome. Jeff-Relf.Me  @. - 2018-07-10 13:52 -0700
  Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. % <persent@gmail.com> - 2018-07-10 13:56 -0700
  ReKilling Cortana zombies. Jeff-Relf.Me  @. - 2018-07-13 01:47 -0700
  Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. Storage Unit <storage.unit@mailinator.com> - 2018-07-15 22:01 -0500
    As I get older, I give fewer and fewer fucks. Jeff-Relf.Me  @. - 2018-07-15 22:09 -0700
      If the keyboard doesn't come up right away. Jeff-Relf.Me  @. - 2018-07-16 06:12 -0700
        ITipInvocation.Toggle() fails BIG TIME if it's called more than once a second. Jeff-Relf.Me  @. - 2018-07-23 03:12 -0700
          I'm narrowing it down, hopefully. Jeff-Relf.Me  @. - 2018-07-23 16:34 -0700
            InputApp and TabTIP are _always_ killed. Jeff-Relf.Me  @. - 2018-07-25 05:48 -0700
              Kill&ReStart the "touch keyboard" before bringing it "up" ( on screen ). Jeff-Relf.Me  @. - 2018-07-28 12:31 -0700
                Kill&ReStart the "touch keyboard" before bringing it "up" ( on screen ). Jeff-Relf.Me  @. - 2018-07-30 06:15 -0700
        Re: Another fail, another post... "Colonel Edmund J. Burke" <burkesbabes@bigass-babes.com> - 2018-07-25 07:00 -0700
    Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. Lewis <g.kreme@gmail.com.dontsendmecopies> - 2018-07-16 16:05 +0000
      Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. Paavo Helde <myfirstname@osa.pri.ee> - 2018-07-16 19:31 +0300
      Switch SysFolders to Short, Friendly Paths, all under "C:\__" ( Home ). Jeff-Relf.Me  @. - 2018-07-16 10:15 -0700
      Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. Storage Unit <storage.unit@mailinator.com> - 2018-07-17 05:32 -0500
        Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. % <Persent@gmail.com> - 2018-07-18 06:23 -0700
  Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. "reber G=emc^2" <herbertglazier0@gmail.com> - 2018-07-22 10:43 -0700
    Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. "hanson" <hanson@quick.net> - 2018-07-22 11:06 -0700
    You can convert your speech into text, instead of typing. Jeff-Relf.Me  @. - 2018-07-22 11:48 -0700
      Re: You can convert your speech into text, instead of typing. Double-A <double-a3@hush.com> - 2018-07-22 16:22 -0700
  Re: Toggling "Touch Keyboard" On/Off, Firefox and Chrome. "reber G=emc^2" <herbertglazier0@gmail.com> - 2018-07-31 19:46 -0700
    NewsPapers and HandWritten letters are still good; just not as good. Jeff-Relf.Me  @. - 2018-07-31 20:18 -0700

csiph-web