Jump to content

VBScript: Numlock schaltet sich aus


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo liebe Gemeinde

 

Ich habe hier ein VBScript laufen, welches mit sendkeys arbeitet.

Seltsamerweise schaltet sich dabei jedesmal NUMLOCK aus, obwohl es nicht im Script vorkommt.

 

An was kann das bitte liegen?

 

Ich füge das Script hier mal an.

Es prüft, ob ein oder mehrere gleiche Prozesse laufen und schickt ihnen dann 2 Tasten (Pfeil links + Pfeil rechts).

Das funktioniert soweit auch. Es geht mir nur um dieses verflixte NUMLOCK. :confused:

Für jeden Tip dazu wäre ich natürlich herzlich dankbar!

 

LG

Creepy

 

 

On Error Resume Next

Set WshShell = Wscript.CreateObject("WScript.Shell")
Set args = WScript.Arguments
strComputer = "."
num = args.Count
if num = 0 then
  n = 200000
else
  n =  args(0)
end if

Do
  Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process")
  numCount = 0
  For Each objProcess in colProcessList
    If Instr(1, objProcess.Name, "XYZ.exe") then
      numCount = numCount + 1
    End If
  Next
  If numCount = 0 then
    Exit Do
  End If
    
  For Each objProcess in colProcessList
    colPID = objProcess.processID
    colName = objProcess.Name
    
    If Instr(1, colName, "XYZ.exe") then
      WshShell.AppActivate colPID
      WshShell.sendkeys "%{left}"
      WshShell.sendkeys "%{right}"
    End If
  Next  
    Wscript.sleep n
Loop

MsgBox "No running instance of XYZ found.",0,"myscript"

 

Link zu diesem Kommentar

Das Script testet alle X Sekunden, ob ein bestimmtes Programm gerade läuft (kann auch mehrfach laufen), holt es in den Vordergrund und schickt ihm/ihnen die 2 Tasten (Steuerkommandos).

Wenn kein Prozess läuft, oder wenn der User das Programm beendet hat, soll sich auch das Script beenden.

Das Script läuft in einer Ablaufsteuerung und wird per cronjob alle 3 Stunden neu ausgeführt, falls es nicht noch selbst läuft.

An der Tastatur hier ist das zwar kein echtes Problem, aber sehr lästig, wenn man nebenbei noch Abrechungen machen will, dabei blind auf dem Ziffernblock tippt und

dann hinterher feststellen muss, daß die Zahlen nicht eingegeben wurden.

 

Wie kann man denn einem Programm, außer mit Sendkeys, noch einen Tastendruck übermitteln?

 

Vielen lieben Dank schon mal. ;)

bearbeitet von Creepy
Link zu diesem Kommentar

Ich hatte überlegt ob es vielleicht eine Möglichkeit mit VB.NET gibt, da müsste man sich allerdings mit dem Programm auseinandersetzen und prüfen ob man evtl. etwas 'abkürzen' kann. Schau dir diese Beispiele für Access an, evtl. kannst Du etwas 'umsetzen': http://www.donkarl.com?FAQ6.6

 

Setz doch mal den Parameter, von dem hier gesprochen wird: http://www.donkarl.com?FAQ7.8 Ist zwar Access, VB-Script sollte nicht so weit weg davon sein.

Link zu diesem Kommentar

Danke für die Links. :)

 

Den Parameter gibt es laut MSDN nicht in VBS.

http://msdn.microsoft.com/en-us/library/8c6yea83%28v=vs.84%29.aspx

 

Auch sowas wie Postmessage oder Sendmessage fällt vermutlich flach.

Zumindest kann ich dazu kein funktionierendes Beispiel "ergoogeln".

 

Werd ich wohl mit der "dunklen LED" leben müssen.

So weltbewegend tragisch ist das ja nicht.

 

Trotzdem vielen Dank nochmal für die nette Hilfe. ;)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...