Сенсорные компоненты не работают первые две минуты после входа в систему с пользовательской оболочкой


0

У меня та же проблема, как описано в эта почта , Поскольку этот вопрос оставался без ответа в течение многих лет, я подумал, что увижу, приблизился ли кто-нибудь к решению этой проблемы.

Проблема в том, что если мы запускаем окна с пользовательской оболочкой, то есть без explorer.exe работает, сенсорные компоненты в windows ( wisptis.exe ), кажется, ничего не делает в течение первых двух минут. По истечении этого времени все работает как надо.

Так что казалось бы, что explorer.exe что-то делает, когда запускается, что получает wisptis.exe делать это вещи.

Просмотр монитора процесса показывает, что через две минуты wisptis.exe запускает поток и читает кучу настроек из реестра. Не уверен, как я узнаю, что вызывает это все же.

Я также заметил, что Shell Hardware Detection Похоже, служба запускается при входе в систему и останавливается через две минуты, именно тогда, когда начинает работать сенсорный экран. Так что, возможно, Windows не знает, что компьютер имеет сенсорный экран до Shell Hardware Detection сделал это вещь Все еще не объясняет, почему это так быстро при использовании обычной оболочки проводника.

Кто-нибудь знает, что здесь происходит?

Обновление: отключение Shell Hardware Detection Сервис не имеет значения.


Надлежащей процедурой было бы предложить вознаграждение по этому вопросу. Если у вас точно такая же проблема.
Ramhound

@Ramhound Ты прав, имеет смысл. Этот вопрос немного грязный и трудный для чтения.
Chris

Это дубликат Сенсорные жесты в IE не работают без запуска explorer.exe с 2012 года, и тот не получил ни одного ответа.
harrymc

Ответы:


0

У нас была та же проблема, и мы ее решили. Из-за авторских прав я не могу отправить вам наш код.

Но решение состоит в том, чтобы запустить событие «ShellReady». Проверьте этот адрес для примера, как это реализовать.

Кроме того, мы должны были установить это значение реестра:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] 
"DelayedDesktopSwitchTimeout"=dword:00000000 

В вашем ответе отсутствует «пример того, как это реализовать». Пожалуйста, добавьте больше, чем просто ссылку.
DavidPostill

Интересно. Я уверен, что в итоге я попытался запустить это событие. Я не сталкивался с этим значением реестра, но я попробую!
Chris

0

Подобная проблема решена Вот ,

Чтобы исправить проблему с моим приложением WPF / C #, я добавил:

using System;
using System.Runtime.InteropServices;
...
[DllImport("kernel32.dll")]
static extern IntPtr CreateEvent(IntPtr lpEventAttributes, bool bManualReset, bool bInitialState, string lpName);
[DllImport("kernel32.dll")]
static extern bool SetEvent(IntPtr hEevent);
...
YourStartupFunction()
{
    ...
    IntPtr hEvent = default(IntPtr);
    hEvent = CreateEvent(IntPtr.Zero, true, true, "ShellReadyEvent");
    SetEvent(hEvent);        
    ...
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.