Я пытаюсь «shell osk.exe» из моего приложения VB-6 на компьютере с Windows 10-32 или Windows 10-64.
В прошлом мы просто использовали:
Private Sub Command1_Click()
Dim strTemp As String
Dim fso1 As New FileSystemObject
strTemp = fso1.GetSpecialFolder(SystemFolder) & "\osk.exe"
Dim lngReturn As Long
Let lngReturn = ShellExecute(Me.hwnd, "Open", strTemp, vbNullString, "C:\", SW_SHOWNORMAL)
lblReturn.Caption = CStr(lngReturn)
end sub
Мы также использовали более простую команду 'shell'; ни работа.
И в прошлом это работало нормально. Мы также можем открыть NotePad, msPaint и некоторые другие утилиты из нашей программы. Мы используем промышленный ПК с сенсорным экраном и для удобства разместили несколько кнопок на странице «Настройки» для быстрого доступа к этим типам вспомогательных программ. Я не хочу ждать программы, у нашего кода есть своя «клавиатура с сенсорным экраном». Пользователи будут использовать Windows OSK только тогда, когда они захотят выполнить какую-либо работу вне нашего основного приложения.
Для Windows XP все эти программы открываются нормально. Теперь для Windows 10 не запускается только программа OSK.exe. Глядя на код возврата, возвращается ошибка «Файл 2 не найден» (я полагаю). Но, глядя в папку c: \ windows \ system32, там находится файл 'osk.exe' вместе с mspaint.exe и notepad.exe.
Есть ли какая-то настройка Windows, которая скрывает настоящий osk.exe от моей программы?
Спасибо за любые предложения.