ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   disable keyboard/mouse from vba for all programs? (https://www.excelbanter.com/excel-programming/279723-disable-keyboard-mouse-vba-all-programs.html)

kk

disable keyboard/mouse from vba for all programs?
 
I am running a routine from excel vba that calls some other non excel
apps, some are non-windows ones in terminal emulators, and if anyone
does any keystrokes etc while the whole thing is running it really
messes up. I've found some things which will disable the keyboard
just for the excel/vba app, but this is not enough as focus passes to
the other programs for a while, and i need to keep the keyboard turned
off while this is the case. I realise that this could be a dangerous
thing to do so don't want to mess with registry stuff, just do it in
VBA so that if something does go wrong i can always hit the power
plug. Something that looked like
Sub Main()
Keyboard.disable
call first-app
call next sub
shell another.bat
keyboard.enable (or keyboard.disable = false)
end sub

any suggestions please?

jaf

disable keyboard/mouse from vba for all programs?
 
Hi,
shell("mode con=off") to disable keyboard.
shell("mode con=on") to enable.

If your code crashes a hard reboot will be required. No keyboard, no
ctl-alt-del.

No idea on the mouse.

--

John

johnf202 at hotmail dot com


"kk" wrote in message
m...
I am running a routine from excel vba that calls some other non excel
apps, some are non-windows ones in terminal emulators, and if anyone
does any keystrokes etc while the whole thing is running it really
messes up. I've found some things which will disable the keyboard
just for the excel/vba app, but this is not enough as focus passes to
the other programs for a while, and i need to keep the keyboard turned
off while this is the case. I realise that this could be a dangerous
thing to do so don't want to mess with registry stuff, just do it in
VBA so that if something does go wrong i can always hit the power
plug. Something that looked like
Sub Main()
Keyboard.disable
call first-app
call next sub
shell another.bat
keyboard.enable (or keyboard.disable = false)
end sub

any suggestions please?




kk

disable keyboard/mouse from vba for all programs?
 
"jaf" wrote in message ...
Hi,
shell("mode con=off") to disable keyboard.
shell("mode con=on") to enable.

If your code crashes a hard reboot will be required. No keyboard, no
ctl-alt-del.

No idea on the mouse.


Thanks, but it doesn't work, i get error message "run time error 53;
file not found", and it stops at that line.

regards

jaf

disable keyboard/mouse from vba for all programs?
 
Hi,
Sorry, the old DOS trick doesn't work anymore.

I found two other methods. The first uses API's.

Declare Function BlockInput Lib "USER32.dll" (ByVal fBlockIt As Long) As
Long
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test() 'both keyboard and mouse blocked
BlockInput True 'off
' call sub:
'optional: Sleep 5000
BlockInput False 'on
End Sub

And the second from an MS Article mentioning Excel specifically. I haven't
test it so I don't know about other apps running.

' Macro to turn off keyboard entry.
Sub KeyboardOff()
' Sets CTRL+D to activate KeyboardOn.
Application.OnKey "^d", "KeyboardOn"
Application.DataEntryMode = True
End Sub

' Macro to restore keyboard entry.
Sub KeyboardOn()
Application.DataEntryMode = False
End Sub

--

John

johnf202 at hotmail dot com


"kk" wrote in message
om...
"jaf" wrote in message

...
Hi,
shell("mode con=off") to disable keyboard.
shell("mode con=on") to enable.

If your code crashes a hard reboot will be required. No keyboard, no
ctl-alt-del.

No idea on the mouse.


Thanks, but it doesn't work, i get error message "run time error 53;
file not found", and it stops at that line.

regards





All times are GMT +1. The time now is 05:27 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com