Autor
|
Thema: GetAsyncKeyState / KeyPressed / DOEvents (963 mal gelesen)
|
elharry Mitglied
Beiträge: 47 Registriert: 03.04.2007
|
erstellt am: 13. Okt. 2009 15:04 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, versuche mich gerade mal wieder an einem Makro und bekomme es nicht hin. Das Makro soll beim drücken der ESC Taste abbrechen. Das Makro soll nur auf Windows laufen. Den folgenden Code habe ich. Sub Main() For I = 1 To 10000 DoEvents KeyPressed = CBool(GetAsyncKeyState(vbKeyEscape) And &H8000) ' &H8000 meint gedrückt! DoEvents ' Catia wartet kurz? 'MsgBox ("Keypressed : " & KeyPressed) If KeyPressed = "True" Or KeyPressed = "Richtig" Then Exit Sub MsgBox ("Richtig : ") End If CATIA.Statusbar = I Next Hat jemand eine Idee was ich da falsch mache? mfg elharry End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 13. Okt. 2009 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für elharry
|
elharry Mitglied
Beiträge: 47 Registriert: 03.04.2007
|
erstellt am: 13. Okt. 2009 15:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, leider tut es das nicht. Ich kann die ESC Taste drücken und halten so lange ich will. Wenn ein Makro läuft dann läuft es. Ich habe ja den Wert von I in der Statusbar ausgegeben und da sieht man ich kann wirklich drücken soviel ich will. Das Makro läuft immer bis zum Ende der Zählschleife durch. mfg elHarry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAMiCADse Mitglied
Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 13. Okt. 2009 16:54 <-- editieren / zitieren --> Unities abgeben: Nur für elharry
|
elharry Mitglied
Beiträge: 47 Registriert: 03.04.2007
|
erstellt am: 15. Okt. 2009 07:35 <-- editieren / zitieren --> Unities abgeben:
Hallo CAMiCADse, super danke, das wars wohl. Hier noch der Code für alle die es interessiert und 10U's für CAMiCADse. Public Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Integer) As Boolean
Sub Main() For I = 1 To 100000 DoEvents KeyPressed = CBool(GetAsyncKeyState(vbKeyEscape) And &H8000) ' &H8000 meint gedrückt! 'MsgBox ("Keypressed : " & KeyPressed) If KeyPressed Then 'Or KeyPressed = "Richtig" Then Exit Sub MsgBox ("Richtig : ") End If CATIA.Statusbar = I Next End Sub Gruß elHarry Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |