2017-10-17 11 views
0

C++ /#またはWindowsスクリプトを使用してプログラミングする方法を理解しようとしましたが、Windows 10に付属する新しいVirtual Touchpadが起動します。これはUniversal Windows Platformアプリです。後プログラムでWindows Virtual Touchpad/Trackpadをオフに切り替える

いくつかのレジストリ-ハッキング、私はタッチパッドは、launch behavior with registered protocolsを活用するので、同じように起動でき考え出し:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ms-virtualtouchpad] 
@="URL:Virtual Touchpad" 
"EditFlags"=dword:00200000 
"URL Protocol"="" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ms-virtualtouchpad\Shell] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ms-virtualtouchpad\Shell\Open] 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ms-virtualtouchpad\Shell\Open\Command] 
@=hex(2):22,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\ 
    00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,4c,00,\ 
    61,00,75,00,6e,00,63,00,68,00,57,00,69,00,6e,00,41,00,70,00,70,00,2e,00,65,\ 
    00,78,00,65,00,22,00,20,00,22,00,25,00,31,00,22,00,00,00 
"DelegateExecute"="{54058896-4775-4C34-8B62-789FB2E263A4}" 

その(Default):私はこのキーでは、この情報を見つけました

"%SystemRoot%\system32\LaunchWinApp.exe" "ms-virtualtouchpad:"

値はREG_EXPAND_SZ"%SystemRoot%\system32\LaunchWinApp.exe" "%1"

T帽子DelegateExecuteは、このキーに関連している:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\CLSID\{54058896-4775-4C34-8B62-789FB2E263A4}] 
@="VirtualTouchpadFlow Class" 

[HKEY_CLASSES_ROOT\CLSID\{54058896-4775-4C34-8B62-789FB2E263A4}\InProcServer32] 
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 
    00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,00,77,00,\ 
    69,00,6e,00,75,00,69,00,2e,00,70,00,63,00,73,00,68,00,65,00,6c,00,6c,00,2e,\ 
    00,64,00,6c,00,6c,00,00,00 
"ThreadingModel"="Both" 

その(Default)値はREG_EXPAND_SZ次のとおりです。%SystemRoot%\system32\twinui.pcshell.dll

だから私の非UWPアプリやスクリプトのために、私はそれを可能にする持っています。問題はそれからそれをトグルにする。だから、それがUWPアプリなら、私はSuspend状態にするか、何とかそれを終了させる必要があると仮定しています。

ありはずっと私が見ることができるLaunchWinAppのために文書化されていない、と私は同様にClose/Suspend/Terminateの名前が付いた何かを気づいていません。

私は仮想タッチパッドを別の方法で起動しても問題ありませんが、私が知る限り、現在のQ & Aはこれをプログラムで起動することはできません。

どうすればよいですか?

+0

あなただけのことができるようにすべきである[ 'ShellExecuteEx'](https://msdn.microsoft.com/en-us/library/windows/desktop/bb762154(V = VS.85).aspxの)カスタムURIを作成し、後で処理を終了します。これは必ずしも良いアイデアではありません... –

+0

どうすれば可能ですか?@ PeterTorr-MSFT?私はあなたの指導の意図を誤解しているかもしれません。 'LaunchWinApp.exe'はUWPアプリの起動に使用されているプロセスですが、LaunchWinAppは保持されず、マスクされたプロセス(COM Surrogateなど)はWindows仮想タッチパッドを強制終了しません。 –

+0

登録されているスキームハンドラを実行できるはずです。私のマシンでは、「スタート - >実行 - > ms-virtualtrackpad:」を試しましたが、何も起こりませんでしたが、このPCにはタッチスクリーンはありません。私はこれが文書化されて表示されないので、おそらくとにかくサポートされるつもりはありません。 http://wpdev.uservoice.com –

答えて

0

ここでは、タッチパッドを開いたり、関心のある人のために閉じたC++の作業コードサンプルを示します。私は実際にタッチパッドが出現するためのタッチ対応ディスプレイが必要だと考えています。私はそれを私のタッチレスデスクトップ上で動作させることができませんでした。

#include <Windows.h> 
#include <iostream> 

int main() 
{  
    ShellExecute(0, 0, "ms-virtualtouchpad:", 0, 0, SW_HIDE); 
    Sleep(1500); 

    HWND uwp_wnd = HWND(); 
    uwp_wnd = FindWindowEx(0, uwp_wnd, "ApplicationFrameWindow", 0); 
    if (uwp_wnd) 
    { 
     HWND tpad_wnd = HWND(); 

     tpad_wnd = FindWindowEx(uwp_wnd, tpad_wnd, "Windows.UI.Core.CoreWindow", "Windows Shell Experience Host"); 
     if (tpad_wnd != 0) 
     { 
      SendMessage(tpad_wnd, WM_CLOSE, 0, 0); 
      return 0; 
     } 
    } 

    return 1; 
} 
関連する問題