SendKeys() permission denied error in Visual Basic

∥☆過路亽.° 提交于 2019-11-30 18:30:41

Take a look at what Karl Peterson worked up as a fix for this under Vista:

SendInput

Eduardo de Santana

For Windows 7: Change the UAC settings to never notify.

For Windows 8 and 10:
Add this method to any module:

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 

It's worked fine for me in windows 10.

Replacement for VB6 SendKeys is WScript.Shell SendKeys, like this:

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

See MSDN for help.

Tales

On Windows 7:

  • Open the Control Panel
  • Change user account control setting
  • Change to NEVER NOTIFY
  • Restart the computer

Delete "msvbvm60.dll" File From The Application

Follow The Following Step

  1. Right Click On The Application .Exe File And Click On Property
  2. Click On Compatibility Tab
  3. Click On Run This Program in Compatibility Mode And Chose Windows Xp SP2 From It.
  4. Click On Run This Program As Administrator
  5. Click On Apply Than Ok.
  6. Delete The "msvbvm60.dll" From The Application Folder.

All Done, Now Your Application Start Running Without Any Error Like Access Denied

In a public Module add:

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

This will "overwrite" SendKeys Function

Anand Karia

You can use this code in Module

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

On Each Form Level

If KeyCode

the problem is about vb6 IDE and windows desktop context menu and you will do as described in here :

http://www.vbforums.com/showthread.php?747425-SendKeys-and-Windows-8

and main reference is here :

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

R.Alonso

Use this API:

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

and

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

when key code is 32 for space, 35 for keyend, 8 for vbKeyBack, etc.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!