Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Call befehl öffnet Makro auswahl

Frage Entwicklung VB for Applications

Mitglied: thomas1972

thomas1972 (Level 1) - Jetzt verbinden

08.02.2015 um 15:40 Uhr, 764 Aufrufe, 3 Kommentare

Hallo,

ich habe ein Modul, welches den Num-Look an/ausschalten kann.

Rufe ich per CALL Befehl den aus/an Befehl auf funktioniert dieses.

Modul
01.
Öffne ich dieses in einem Formular erscheint die Marko Auswahl 
02.
 
03.
Private Declare Function GetKeyboardState Lib "user32" _ 
04.
      (pbKeyState As Byte) As Long 
05.
 
06.
Private Declare Function GetKeyState Lib "user32" _ 
07.
      (ByVal nVirtKey As Long) As Integer 
08.
 
09.
Private Declare Function GetVersionEx Lib "kernel32" _ 
10.
      Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long 
11.
 
12.
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, _ 
13.
      ByVal dwFlags As Long, ByVal dwExtraInfo As Long) 
14.
 
15.
Private Declare Function SetKeyboardState Lib "user32" (lppbKeyState As Byte) As Long 
16.
 
17.
Private Const VER_PLATFORM_WIN32_NT = 2 
18.
Private Const VER_PLATFORM_WIN32_WINDOWS = 1 
19.
Private Const KEYEVENTF_EXTENDEDKEY = &H1 
20.
Private Const KEYEVENTF_KEYUP = &H2 
21.
    
22.
Private Const VK_CAPS = &H14 
23.
Private Const VK_NUM = &H90 
24.
Private Const VK_SCROLL = &H91 
25.
 
26.
Private keys(0 To 255) As Byte 
27.
 
28.
Private Type OSVERSIONINFO 
29.
    dwOSVersionInfoSize As Long 
30.
    dwMajorVersion As Long 
31.
    dwMinorVersion As Long 
32.
    dwBuildNumber As Long 
33.
    dwPlatformId As Long 
34.
    szCSDVersion As String * 128 
35.
End Type 
36.
 
37.
Private oSv As OSVERSIONINFO 
38.
 
39.
Private Function KeyStatus(Taste) As Boolean 
40.
    Dim bInsertKeyState As Boolean 
41.
    oSv.dwOSVersionInfoSize = Len(oSv) 
42.
    GetVersionEx oSv 
43.
    GetKeyboardState keys(0) 
44.
    KeyStatus = keys(Taste) 
45.
End Function 
46.
 
47.
Private Sub Switch(Taste, AnAus As Boolean) 
48.
    If (KeyStatus(Taste) <> AnAus) Then 
49.
        If (oSv.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS) Then 
50.
            keys(Taste) = 1 
51.
            SetKeyboardState keys(0) 
52.
        ElseIf (oSv.dwPlatformId = VER_PLATFORM_WIN32_NT) Then 
53.
            keybd_event Taste, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0 
54.
            keybd_event Taste, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0 
55.
        End If 
56.
    End If 
57.
End Sub 
58.
 
59.
Private Sub An() 
60.
    Switch VK_NUM, 0 
61.
    Switch VK_CAPS, 0 
62.
    Switch VK_SCROLL, 0 
63.
End Sub 
64.
 
65.
Private Sub Aus() 
66.
    Switch VK_NUM, 1 
67.
    Switch VK_CAPS, 0 
68.
    Switch VK_SCROLL, 0 
69.
End Sub 
70.
 
71.
Private Sub Status() 
72.
    MsgBox "Num : " & KeyStatus(VK_NUM) & vbNewLine & _ 
73.
           "Caps: " & KeyStatus(VK_CAPS) & vbNewLine & _ 
74.
           "Scroll: " & KeyStatus(VK_SCROLL), _ 
75.
           vbExclamation, "Tastenstatus" 
76.
End Sub
Sind die Werte in dem Modul falsch als Private/Public deklariert?
Mitglied: 114757
08.02.2015 um 15:45 Uhr
Sind die Werte in dem Modul falsch als Private/Public deklariert?
Yup ...

Gruß jodel32
Bitte warten ..
Mitglied: thomas1972
08.02.2015 um 15:46 Uhr
hmm dann stell ich die Frage anders,
Wie/welche sind fall/ muss ich diese entsprechend anpassen, damit ich Sie auch per call ausführen kann?
Bitte warten ..
Mitglied: 114757
08.02.2015, aktualisiert um 17:37 Uhr
Pack alles in ein Klassen-Modul und mach die Prozeduren An und Aus Public, wenn du die Status-Funktion ebenfalls benötigst, ebenfalls als Public definieren.
Dann erstellst du dort wo du die Funktionen anwenden willst eine Instanz der Klasse, und rufst die Funktionen damit auf:
01.
Dim myclass as new NamedesKlassenmoduls 
02.
myclass.An
p.s. API Aufrufe wie Private Declare Function müssen immer in ein Modul, und gehen nicht wenn sie in ein Formular eingefügt werden !
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Befehl für IPv4 Adresse und DNS automatisch beziehen (5)

Frage von Airine zum Thema Batch & Shell ...

Batch & Shell
Mehrzeiligen Powershell-Befehl mit Batch ausführen (3)

Frage von Compu2017 zum Thema Batch & Shell ...

Off Topic
Mikrocontroller Hilfe bei Auswahl (2)

Frage von IrunGoldstein zum Thema Off Topic ...

PHP
Schnellste Auswahl in Objekten (1)

Frage von it4baer zum Thema PHP ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...