Я пытался выяснить, как программно с помощью сценариев C++/# или Windows запустить новую виртуальную сенсорную панель, которая поставляется с Windows 10, которая должна быть приложением универсальной платформы Windows.
После некоторого взлома реестра я понял, что могу запустить сенсорную панель, используя запустить поведение с зарегистрированными протоколами, например:
"%SystemRoot%\system32\LaunchWinApp.exe" "ms-virtualtouchpad:"
Я нашел эту информацию по этому ключу:
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)
значение равно REG_EXPAND_SZ
:"%SystemRoot%\system32\LaunchWinApp.exe" "%1"
Этот 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
.
Я могу запустить виртуальную сенсорную панель другим способом, но, насколько я могу судить, в настоящее время нет вопросов и ответов даже по программному запуску.
Как мне поступить?
ShellExecuteEx
пользовательский URI, а затем завершите процесс позже. Не то чтобы это обязательно хорошая идея... - person Peter Torr - MSFT   schedule 18.10.2017LaunchWinApp.exe
— это процесс, используемый для запуска приложения UWP, но LaunchWinApp не сохраняется, а несколько замаскированные сгенерированные процессы (например, суррогаты COM) не отключают виртуальную сенсорную панель Windows после их уничтожения. - person kayleeFrye_onDeck   schedule 18.10.2017Start -> Run -> ms-virtualtrackpad:
, и ничего не произошло, но у меня нет сенсорного экрана на этом ПК. Я не вижу этого в документации, поэтому, вероятно, он все равно не будет поддерживаться. Рассмотрите возможность отправки отзыва на wpdev.uservoice.com. - person Peter Torr - MSFT   schedule 04.11.2017SendMessage
с API-интерфейсами Win32. - person kayleeFrye_onDeck   schedule 04.11.2017