Start TabTip in hidden mode. Not appears when ShellExecute

milistefanos 21 Reputation points
2022-01-12T09:01:19.92+00:00

How can I start TabTip.exe without Keyboard appears on screen immediately?
I want start TabTip.exe running on backround and appears when focus on an edit area.

I tryied
ShellExecute(NULL, L"open", L"TabTip.exe", NULL, NULL, SW_HIDE);
but the same result as with SW_SHOW parameter.

After calling ShellExecute, TabTip appears on screen.

C++
C++
A high-level, general-purpose programming language, created as an extension of the C programming language, that has object-oriented, generic, and functional features in addition to facilities for low-level memory manipulation.
3,694 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Minxin Yu 11,581 Reputation points Microsoft Vendor
    2022-01-13T02:32:59.637+00:00

    Hi, @milistefanos

    The method in this thread still works. You need to start tabtip.exe when OnSetFocus and close it when OnKillfocus.
    Sample snippet:

    void CMFCApplication1Dlg::OnSetfocusEdit1()  
    {  
    	HWND TabTip = ::FindWindow(L"IPTip_Main_Window", 0);  
    	if (!TabTip)  
    	{  
    		ShellExecute(NULL, L"open", L"C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe", NULL, NULL, SW_SHOW);  
    	}  
    	else  
    	{  
    		TCHAR a[256] = _T("TabTip.exe");  
    		DWORD b = 0;  
    		GetPidByProcessName(a, &b);  
    		KillProcess(b);  
    		ShellExecute(NULL, L"open", L"C:\\Program Files\\Common Files\\microsoft shared\\ink\\TabTip.exe", NULL, NULL, SW_SHOW);  
    	}  
    	// TODO: Add your control notification handler code here  
    }  
      
      
    void CMFCApplication1Dlg::OnKillfocusEdit1()  
    {  
    	HWND hWnd = ::FindWindow(_T("IPTIP_Main_Window"), _T(""));  
    	::PostMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);  
    	// TODO: Add your control notification handler code here  
    }  
    

    164565-gif1.gif
    Best regards,

    Minxin Yu


    If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.