none
В консольном приложении win32 не реагирует на клавиатуру и мышь (Windows Server 2016) RRS feed

  • Pergunta

  • Добрый день!

    Запустил консольное приложение win32 на Windows Server 2016. В приложении управление осуществляется через меню с помощью мышки и по горячим клавишам. Не реагирует ни на мышку, ни на горячие клавиши. Единственное на что среагировало, при включённой экранной клавиатуре отработало Ctrl-C. Подскажите, как решить проблему. В Windows 7, Windows Server 2008 R2 и более старых работает без проблем.
    segunda-feira, 1 de março de 2021 12:36

Todas as Respostas

  • обратитесь к разработчику приложения. возможно используются какие-то старые библиотеки и процедуры из ник которых на новых серверах по просту нет

    The opinion expressed by me is not an official position of Microsoft

    segunda-feira, 1 de março de 2021 14:08
    Moderador
  • Понятно, что программа старая. И поэтому обращаться к разработчику нет смысла. Вопрос в том, что изменилось в работе консольных win32 приложений. И как решить эту проблему.
    terça-feira, 2 de março de 2021 08:45
  • Понятно, что программа старая. И поэтому обращаться к разработчику нет смысла. Вопрос в том, что изменилось в работе консольных win32 приложений. И как решить эту проблему.
    смотря с каких пор.
    Например 16 битные приложения перестали работать в w8\server 2012 но их по прежнему можно запустить в досбокс.
    дальше все зависит от того что это приложение использует

    The opinion expressed by me is not an official position of Microsoft

    terça-feira, 2 de março de 2021 11:15
    Moderador
  • Речь идёт о сервере СУБД Hytech. Похоже, проблема не в мыши и клавиатуре. Покопался в настройках сервера БД. При старте должно выходить окно с логом работы. Судя по тому, что не выходит, сервер запускается и вешается потом. Хотя, сообщения о том, что приложение не отвечает нет.

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

    Получается проблема ещё больше.

    terça-feira, 2 de março de 2021 11:27
  • у этого по есть разработчик судя по форумам, хоть на их сайте и не упоминается этот продукт + есть проект на гитхаб с чем-то по написанию схожее с тем что вы ищите

    с по которое не поддерживают по крайней мере лет 5 такое бывает что оно перестает работать должным образом. Почему? Миллион возможных причин. 

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


    The opinion expressed by me is not an official position of Microsoft

    terça-feira, 2 de março de 2021 11:47
    Moderador
  • Речь идёт о сервере СУБД Hytech. Похоже, проблема не в мыши и клавиатуре. Покопался в настройках сервера БД. При старте должно выходить окно с логом работы. Судя по тому, что не выходит, сервер запускается и вешается потом. Хотя, сообщения о том, что приложение не отвечает нет.

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

    Получается проблема ещё больше.

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

    В любом случае попробуйте запускать приложение в режиме совместимости, например XP. Если не поможет (и разработчика нет), то вам надо искать замену. Альтернативой будет запуск в старой ОС, например в ВМ.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    terça-feira, 2 de março de 2021 22:54
  • Удалось выяснить, что приложение вешается на этапе получения информации о конфигурации системы и записи её в лог работы. Точнее на определённом этапе получения информации о системных DLL и их версиях. На какой-то DLL программа вешается, видимо не может получить информацию. Возможно, это DLL из папки C:\Windows\SysWOW64. На Windows 7 DLL из этой папки попадают в лог, на Windows Server 2016 программа зависает, не добравшись до DLL из C:\Windows\SysWOW64.

    Хотя, насколько видно по логу, программа на Windows Server 2016 находит DLL, аналогичные DLL из C:\Windows\SysWOW64 в Windows 7, в папке C:\Windows\SYSTEM32. Возможно этап получения информации о системных DLL проходит до конца. Соответствие DLL проверить затруднительно ввиду различного состава DLL. Тогда, возможно, программа вешается на следующем шаге, определении имени компьютера. Этот этап в лог уже не попадает.

    P.S. Режимы совместимости были перепробованы в первую очередь.


    quarta-feira, 3 de março de 2021 06:31