Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  Numlock per vbs Skript überwachen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo
Autor Thema:  Numlock per vbs Skript überwachen (5928 mal gelesen)
neulermer
Mitglied
B. Eng. Maschinenbau


Sehen Sie sich das Profil von neulermer an!   Senden Sie eine Private Message an neulermer  Schreiben Sie einen Gästebucheintrag für neulermer

Beiträge: 54
Registriert: 23.04.2008

Solid Edge v20
Pro E Wildfire 4

erstellt am: 30. Sep. 2011 16:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich habe im Internet ein kleines Skript gefunden, welches den Numlock überwacht und in ein/ausschaltet, hier mal der Code:

' benötigte API-Deklarationen
Private Declare Sub keybd_event Lib "user32" ( _
  ByVal bVk As Byte, _
  ByVal bScan As Byte, _
  ByVal dwFlags As Long, _
  ByVal dwExtraInfo As Long)

Private Const VK_NUMLOCK = &H90
Private Const KEYEVENTF_KEYUP = &H2

' NUM-Lock drücken
' Zunächst niederdrücken und dann wieder loslassen
keybd_event VK_NUMLOCK, 1, 0, 0
keybd_event VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0

' NUM-Lock aktivieren (falls deaktiviert)
If Not (GetKeyState(vbKeyNumlock) = 1) Then
  keybd_event VK_NUMLOCK, 1, 0, 0
  keybd_event VK_NUMLOCK, 1, KEYEVENTF_KEYUP, 0
End If


Nur wenn ich das ausführe, dann kommt der Fehler:
Fehler: Anweisungsende erwartet
Zeile 2
Zeichen 17
Code: 800A0401


Der Fehler liegt also hier:
Private Declare Sub

Wie kann ich den beheben? Eigentlich müsste das Skript ja stimmen, denn ich habe es von hier:
http://www.vbarchiv.net/tipps/tipp_563-num-lock-ein-ausschalten.html

Was funktioniert denn dann bei mir nicht?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

EWcadmin
Moderator
Konstrukteur (Dipl.-Ing. Maschinenbau), CAD-/PDM-Admin.




Sehen Sie sich das Profil von EWcadmin an!   Senden Sie eine Private Message an EWcadmin  Schreiben Sie einen Gästebucheintrag für EWcadmin

Beiträge: 3202
Registriert: 27.10.2005

erstellt am: 30. Sep. 2011 16:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für neulermer 10 Unities + Antwort hilfreich

Tut mir leid, da kann ich nicht helfen.

Aber falls Du Axel´s Punkt benutzt dann kannst Du die NumLock-Taste auch damit steuern. So mache ich es schon seit geraumer Zeit und es läuft.

Schönes langes Wochenende noch 

------------------
Grüße aus OWL, Thomas

ProE macht Spaß - viel ProE macht viel Spaß !  (Zitat, frei nach meinem ProE-Beibringer)

Neu auf CAD.de? Diese Infos werden Dir den Einstieg erleichtern: Willkommen auf CAD.de

Und das sollte jeder  mal gelesen haben:
Richtig Fragen - Nettiquette - Suchfunktion - System-Info - 7er-Regel - Unities - ProE-Konfiguration

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

k.reichert
Mitglied
Entw. Ing


Sehen Sie sich das Profil von k.reichert an!   Senden Sie eine Private Message an k.reichert  Schreiben Sie einen Gästebucheintrag für k.reichert

Beiträge: 13
Registriert: 13.05.2011

Creo Elements/Pro5 M110 + PLM Windchill 9.xx
WIN7 Enterprise,
Dell Workstation Xenon Quadcore 3,4 MHz, 8GB

erstellt am: 30. Sep. 2011 22:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für neulermer 10 Unities + Antwort hilfreich

Hallo Neulermer,

den Code, den du angibst, funktioniert nur in einer Visual Basic Umgebung
wie z.B. die VBAs in MS-Word oder MS-Excel.

Visual Basic Script (*.vbs) kennt keine Typ-Deklarationen, d.h. die Syntax passt so nicht.
Ich bin mir aus dem Gedächtnis auch nicht sicher, ob die Declare-Funktion so geht. Würde eher meinen, dass man hier einen Verweis auf ein Objekt erstellen muss, dessen Methoden etc. man anschießend nutzen kann; das geht auch mit einem Event-Handler (was hier wohl der Fall ist).

Ich schließe mich Thomas an: Axels Punkt ist ein echt nützliches Tool, das zwischenzeitlich sogar erkennt, dass ein CAD-Programm läuft und dann das Dezimalkomma im Ziffernblock auf "." ändern; in andern Anwendungen, zu denen gewechselt wird, ist das Dezimalkomma wieder wie dort erwartet ",".

Gruß
Klaus

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

neulermer
Mitglied
B. Eng. Maschinenbau


Sehen Sie sich das Profil von neulermer an!   Senden Sie eine Private Message an neulermer  Schreiben Sie einen Gästebucheintrag für neulermer

Beiträge: 54
Registriert: 23.04.2008

Solid Edge v20
Pro E Wildfire 4

erstellt am: 04. Okt. 2011 08:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Tja das hab ich mal probiert, aber das funktioniert auch nicht.Kann denn niemand das per vbs Skript programmieren?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

U_Suess
Moderator
CAD-Admin / manchmal Konstrukteur




Sehen Sie sich das Profil von U_Suess an!   Senden Sie eine Private Message an U_Suess  Schreiben Sie einen Gästebucheintrag für U_Suess

Beiträge: 10560
Registriert: 14.11.2001

CREO 4 M120 (+Geniustool für Creo 6.0.2)
PDMLink 11.0 M030
NTSI Contender E64 SC8 mit
NVIDIA Quadro P4000
Intel Core i7-10700KF / 3,80 GHz
64GB DDR4-RAM / 2933 MHz
Win 10 Prof. 64Bit (20H2)

erstellt am: 04. Okt. 2011 09:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für neulermer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von neulermer:
Tja das hab ich mal probiert, aber das funktioniert auch nicht.Kann denn niemand das per vbs Skript programmieren?
Warum sollte sich jemand die Mühe machen? Es gibt doch schon so viele Programme, die das können.

------------------
Gruß
Udo                 Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden! 

Neu hier?     Verwundert über die Antworten?    Dann schnell nachfolgende Links durchlesen. 
Richtig FragenNettiquetteSuchfunktionSystem-InfoPro/E-Konfig7er-Regel      • Unities

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

neulermer
Mitglied
B. Eng. Maschinenbau


Sehen Sie sich das Profil von neulermer an!   Senden Sie eine Private Message an neulermer  Schreiben Sie einen Gästebucheintrag für neulermer

Beiträge: 54
Registriert: 23.04.2008

Solid Edge v20
Pro E Wildfire 4

erstellt am: 04. Okt. 2011 09:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Tja eben das ist das problem, das Vbs Skript das ich ausführe schlatet den mit dem Wait for Window befehl hin und her wie es gerade lustig ist und dann funktioniert der folgende teil nicht mehr. Deshalb der Aufwand. Axels Punkt konnte demauch nicht entgegenwirken. Wenn der Numlock nicht an ist, dann funktioniert die Tastenkombi Strg + Umschalt + Pfeiltaste Links nicht mehr bzw. nur die Umsschalttaste nicht mehr und so kann ich dann den Dateinamen nicht kopieren.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

arossbach
Mitglied
Ingenieur Masch.bau


Sehen Sie sich das Profil von arossbach an!   Senden Sie eine Private Message an arossbach  Schreiben Sie einen Gästebucheintrag für arossbach

Beiträge: 1181
Registriert: 13.06.2001

CREO 4
simufact.forming 13
Windows 7 Professional Service Pack 1 64 Bit
Dell Precision WorkStation T3500
32 GB RAM
Grafik: NVIDIA Quadro 4000

erstellt am: 04. Okt. 2011 09:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für neulermer 10 Unities + Antwort hilfreich


NumLock.zip

 
Da bin ich.
Dazu müsstest Du aber erst den NumLock Status abfragen.
Für VB also so wie im angehängten Projekt, z.B. mit Timer Element.

Gruß

------------------
-Axel- 
CROSSFIRE

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

neulermer
Mitglied
B. Eng. Maschinenbau


Sehen Sie sich das Profil von neulermer an!   Senden Sie eine Private Message an neulermer  Schreiben Sie einen Gästebucheintrag für neulermer

Beiträge: 54
Registriert: 23.04.2008

Solid Edge v20
Pro E Wildfire 4

erstellt am: 04. Okt. 2011 10:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hmm, soweit wie ich das jetzt sehe, ist das eine extra Anwendung. Ich bräuchte das aber direkt in meinem Skript, dass der mir genau an den wichtigen Stellen den Numlock aktiviert. Den Intervall von 1sec ist ohnehin zu lang, da ich eine Wait Zeit von 50ms habe und der bestenfalls in 1 sec mit dem gesamten Skript fertig ist. Ich stell mal das Beispiel Skript ein:

'Option Explizit

WScript.Sleep 50

Dim Fi, Fso

Set Shell = CreateObject("WScript.Shell")
Set WshShell = WScript.CreateObject("WScript.Shell")

Sub sk(Befehl)
'wscript.echo befehl
   WshShell.SendKeys(Befehl)
   WScript.Sleep 50 'Zeitangabe in Millisekunden


End Sub

'------------------------------------------------------------------------------------------------

'------------------------------------------------------------------------------------------------
Public Function WaitForWindow(WindowTitle)

Set WshShell = WScript.CreateObject("WScript.Shell")

success=0
I = 0
Do
I = I + 1
WScript.Sleep 300
success=WshShell.AppActivate(WindowTitle)
If I = 50 Then
x=MsgBox ("Fenster "+Chr(34)& WindowTitle &Chr(34)+" konnte nicht gefunden werden.",48,"Warnmeldung")
WaitForWindow = False
asyncConnection.Disconnect(2)
WScript.quit
Exit Do
End If
Loop Until success
If success Then
WaitForWindow = True
End If
End Function
'------------------------------------------------------------------------------------------------


'Dateinamen vorbereiten
sk "^s"

WaitForWindow("Objekt speichern")
sk "{Tab 5}"
sk "{BS 4}"
sk ".drw"
sk "+^{left}" <== Hier funktioniert die Umschalttaste nicht mehr
sk "^c"
sk "^a"
sk "^o"

WaitForWindow("Datei öffnen")


sk "^v"
sk "~"


WScript.Quit()


Ein verlängern der Wartezeit ist auch nicht sinnvoll, weil ich die ja mit dem Wait for Window befehl auf ein minimum reduzieren konnte und nicht wieder das gegenteil bewirken will. Außerdem ändert das nichts an dem Problem dass die Umschalttaste nicht geht wenn der Wait for Window befehl im Skript drin ist. Kann man das vielleicht irgendwie nach bedarf programmieren?

[Diese Nachricht wurde von neulermer am 04. Okt. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Manuku
Mitglied
Mechanical Engineer


Sehen Sie sich das Profil von Manuku an!   Senden Sie eine Private Message an Manuku  Schreiben Sie einen Gästebucheintrag für Manuku

Beiträge: 131
Registriert: 17.07.2003

erstellt am: 04. Okt. 2011 10:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für neulermer 10 Unities + Antwort hilfreich

   
Zitat:
Original erstellt von neulermer:
sk "+^{left}" <== Hier funktioniert die Umschalttaste nicht mehr
[/B]

Bei mir, unter Windows 7, funktioniert 'sk "+^{left}"' egal ob NUMLOCK aktiviert ist oder nicht. Ich weiss deshalb nicht was bei dir passiert wenn NUMLOCK nicht aktiviert ist.

Vielleicht geht aber so etwas, quasi doppelt gemoppelt:
sk "+^{left}"
sk "^c"
sk "{NUMLOCK}" 'aktiviert respektive deaktiviert Numlock
sk "+^{left}" 'oder right, je nach dem wie dein Computer auf das erste CTRL+C reagiert
sk "^c"
sk "{NUMLOCK}" 'Numlock ist wieder so wie vor dem Skript

HTHHope this helps (Hoffe, es hilft weiter)
Tobias

EDIT: System-Info angepasst (habe zu lange nichts mehr geposted) 
EDIT2: hat aber offenbar nicht funktioniert
[Diese Nachricht wurde von Manuku am 04. Okt. 2011 editiert.]

[Diese Nachricht wurde von Manuku am 04. Okt. 2011 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

arossbach
Mitglied
Ingenieur Masch.bau


Sehen Sie sich das Profil von arossbach an!   Senden Sie eine Private Message an arossbach  Schreiben Sie einen Gästebucheintrag für arossbach

Beiträge: 1181
Registriert: 13.06.2001

CREO 4
simufact.forming 13
Windows 7 Professional Service Pack 1 64 Bit
Dell Precision WorkStation T3500
32 GB RAM
Grafik: NVIDIA Quadro 4000

erstellt am: 04. Okt. 2011 15:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für neulermer 10 Unities + Antwort hilfreich

Ja klar ist das eine Extra Anwendung. War auch nur ein Beispiel. Schau mal rein (Texteditor) und schau Dir den "Quältext" im Form1 an. Ist VB nicht VB-Script.

Wenn Du das getan hast die Frage: Warum überwachst Du nicht mit
If GetKeyState(vbKeyNumlock) = 1 Then
blabla...

um dann bei Bedarf dei Funktion Ein-bzw.Ausschalten auszuführen ?

Ehrlich gesagt verstehe ich auch nicht so recht warum die Num-Lock Einstellung Dir das "...Tastenkombi Strg + Umschalt + Pfeiltaste Links ..." vermiesen sollte. Da stimmt irgend etwas anderes nicht. Bei mir funzt das optimal, auch mit Strg-V

Eigentlich ist das auch das falsche Forum hier. Hat ja nicht viel mit Pro/E zu tun. Wenn das hier länger dauert ziehen wir besser um.

Gruß

------------------
-Axel- 
CROSSFIRE

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Michael 18111968
Moderator
F&E & CAD




Sehen Sie sich das Profil von Michael 18111968 an!   Senden Sie eine Private Message an Michael 18111968  Schreiben Sie einen Gästebucheintrag für Michael 18111968

Beiträge: 4893
Registriert: 25.07.2002

Wildfire 4 M220 (+SUT 2012)
PDMLink 9.1 M050
NVIDIA Quadro FX 1700
Intel DualCore E8400 / 8GB
WinXP 64 Prof. SP2

erstellt am: 04. Okt. 2011 16:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für neulermer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von arossbach:
Eigentlich ist das auch das falsche Forum hier. Hat ja nicht viel mit Pro/E zu tun. Wenn das hier länger dauert ziehen wir besser um.

Sagt bei Bedarf Bescheid! 

------------------
CAD.DE macht Spaß!       
Wichtige Links für noch mehr Spaß: Richtig Fragen - Nettiquette - Suchfunktion - System-Info - Unities
Wichtige Links für noch mehr Spaß mit Pro/Engineer: 7er-Regel - Abstürze - Konfiguration - Stammtisch

Guten Morgen - und falls wir uns nicht mehr sehen - guten Nachmittag, guten Abend und gute Nacht!  (Truman Burbank in "Die Truman-Show")

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz