• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Sendkeys Numlock

Status
Niet open voor verdere reacties.

cow18

Terugkerende gebruiker
Lid geworden
24 mei 2008
Berichten
4.279
Besturingssysteem
Windows
Office versie
Excel365
Code:
Sub Numlock()
     Application.SendKeys ("{NUMLOCK}"), True     '-----> je numlocks waren weg,   ZIJN DIE NU TERUG ???????
End Sub
Mijn Numlock wordt door gebruik van outlook uitgeschakeld en die wil ik eventjes met deze macro terug inschakelen, maar dat werkt niet.
Wat is er fout aan deze macro ?
 
Als je het via het shellobject doet, wordt je numlock niet uitgeschakeld.

Code:
CreateObject("WScript.Shell").SendKeys  ........

of

Code:
Sub jec()
Application.SendKeys ......
DoEvents
Application.SendKeys ......
End Sub
 
Laatst bewerkt:
Ik ken alleen maar deze:

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

Sub M_snb_NUMlock_aan()
   keybd_event &H90, 0, 0, 0
   keybd_event &H90, 0, &H2, 0
End Sub
 
Laatst bewerkt:
waw, snelle bediening.
Beide oplossingen werken.
Is er ook een methode om te weten of de numlocks aan/uit zijn ?
iets in de zin van if Numlocks=false then ...
ik ondervind dat wel, maar het zou gemakkelijker zijn, wanneer je terugkomt uit een ander programma, dat je op zijn minst die numlocks goed hebt.
 
Laatst bewerkt:
Daar gebruik ik dit voor:
Code:
#If Win64 Then
    Public Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#Else
    Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#End If

Public Function NumLocks()
    Let NumLocks = CBool(GetKeyState(vbKeyNumlock) And 1)
End Function

Voorbeeldje gebruik:
Code:
Sub tst()
    If Not NumLocks Then MsgBox "Numlock is uit"
End Sub
 
Laatst bewerkt:
@edm

Zo lukt het ook:

Code:
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer

Sub M_snb()
    MsgBox GetKeyState(vbKeyNumlock)   '   of
    MsgBox GetKeyState(144)                 '   of
    MsgBox GetKeyState(&H90)
End Sub
 
Ok, thanks :)

Dus voor TS, deze functie:
Code:
#If Win64 Then
    Public Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#Else
    Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
#End If

Function NumLocks() As Boolean
    NumLocks = GetKeyState(vbKeyNumlock)
End Function
 
Laatst bewerkt:
Ik denk niet dat Cow18 met een 64 Bits versie werkt.
 
Er zijn meer lezers.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan