Ошибка отклонения разрешения SendKeys () в Visual Basic

Я пытаюсь использовать команду SendKeys() для другого окна с моим приложением VB6.

Мне нужно было нажать кнопку, а затем 10 секунд, чтобы перейти к другому окну, прежде чем приложение отправит некоторые ключи в это окно. Я получил все отсортировано, но по какой-то причине, когда я звоню что-то вроде этого:

SendKeys ("A")

Я получаю эту ошибку:

Run-time error '70':

Permission denied

Кто-нибудь знает способ обойти это? Спасибо.

10 голосов | спросил Phox 22 FebruaryEurope/MoscowbMon, 22 Feb 2010 01:39:12 +0300000000amMon, 22 Feb 2010 01:39:12 +030010 2010, 01:39:12

9 ответов


0

Посмотрите, что Карл Петерсон разработал для решения этой проблемы в Vista:

SendInput

ответил Jim Mack 22 FebruaryEurope/MoscowbMon, 22 Feb 2010 06:16:07 +0300000000amMon, 22 Feb 2010 06:16:07 +030010 2010, 06:16:07
0

Для Windows 7: Измените настройки UAC, чтобы никогда не уведомлять.

Для Windows 8 и 10:
Добавьте этот метод в любой модуль:

Public Sub Sendkeys(text as variant, Optional wait As Boolean = False)
   Dim WshShell As Object
   Set WshShell = CreateObject("wscript.shell")
   WshShell.Sendkeys cstr(text), wait
   Set WshShell = Nothing
End Sub 

Это нормально работает для меня в Windows 10.

ответил Eduardo de Santana 23 AMpSat, 23 Apr 2016 04:56:55 +030056Saturday 2016, 04:56:55
0

Замена для VB6 SendKeys - это WScript.Shell SendKeys, например:

Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "1{+}"

См. MSDN для получения помощи.

ответил Roman Plischke 12 32014vEurope/Moscow11bEurope/MoscowWed, 12 Nov 2014 18:08:43 +0300 2014, 18:08:43
0

В Windows 7:

  • Откройте панель управления
  • Изменить настройки контроля учетной записи пользователя
  • Изменить на НИКОГДА НЕ УВЕДОМИТЬ
  • Перезагрузите компьютер
ответил Tales 10 J000000Saturday10 2010, 18:32:53
0

Удалить файл "msvbvm60.dll" из приложения

Выполните следующий шаг

  
  1. Щелкните правой кнопкой мыши по файлу приложения .Exe и выберите свойство
  2.   
  3. Нажмите на вкладку совместимости
  4.   
  5. Нажмите «Запустить эту программу в режиме совместимости и выбрать Windows».   Xp SP2 от него.
  6.   
  7. Нажмите "Запустить эту программу от имени администратора"
  8.   
  9. Нажмите Применить, затем нажмите ОК.
  10.   
  11. Удалить файл "msvbvm60.dll" из папки приложения.
  12.   

Все готово, теперь ваше приложение запускается без ошибок, таких как доступ запрещен

ответил Abhishek Singh 12 Mayam14 2014, 10:55:48
0

В общедоступный модуль добавьте:

Public Sub Sendkeys(text$, Optional wait As Boolean = False)
    Dim WshShell As Object
    Set WshShell = CreateObject("wscript.shell")
    WshShell.Sendkeys text, wait
    Set WshShell = Nothing
End Sub

Это перезапишет функцию SendKeys

ответил rubStackOverflow 11 +03002015-10-11T03:26:07+03:00312015bEurope/MoscowSun, 11 Oct 2015 03:26:07 +0300 2015, 03:26:07
0

Вы можете использовать этот код в модуле

Public Sub SendKeyTab(CForm As Form)
On Error Resume Next
Dim G As Single
For G = 0 To CForm .Controls.Count - 1
    If CForm .Controls(G).TabIndex = CForm .ActiveControl.TabIndex + 1 Then CForm .Controls(G).SetFocus
Next
End Sub

На каждом уровне формы

If KeyCode
ответил Anand Karia 12 Mayam15 2015, 10:50:02
0

Проблема в vb6 IDE и контекстном меню рабочего стола Windows, и вы будете делать, как описано здесь:

http://www.vbforums.com/showthread. PHP? 747425-SendKeys-и-Windows-8

и основная ссылка здесь:

http: //www.vbforums.com/showthread.php?745925-RESOLVED-How-to-trigger-the-desktop-context-menu

ответил misafer 28 J0000006Europe/Moscow 2014, 07:34:03
0

Используйте этот API:

Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

и

keybd_event keycode, 0, 0, 0  'KEY DOWN
keybd_event keycode, 0, KEYEVENTF_KEYUP, 0 'KEY UP

когда код ключа равен 32 для пробела, 35 для ключа, 8 для vbKeyBack и т. д.

ответил R.Alonso 17 PM00000080000002131 2015, 20:51:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132