Application aus WinCC 7.2 öffnen und auf Bildschirm 2-4 anzeigen

BNick

Level-1
Beiträge
31
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Tach,

mein Problem:

Der Kunde möchte vom WinCC aus den Taschenrechner aufrufen, mein Code

Code:
Dim objWMIService, colProcessList, colProcessesDim objShell
Dim objExplorer
        
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'CALC.EXE'")


Set objShell=CreateObject("WScript.Shell")


If colProcesses.Count = 0 Then 'läuft nicht, also starten


    objShell.Run ("calc.exe")    


Else    'läuft, also in den Vordergrund holen
    
    Set objShell=CreateObject("WScript.Shell")
    objShell.AppActivate "Calculator"


End If


'jetzt san ma fertich
Set objWMIService=Nothing
Set objShell=Nothing

Leider öffnet sich der Taschenrechner immer auf Monitor 1, nun soll aber wenn der Button auf Monitor 2 gedrückt wird der Taschenrechner auch auf Monitor 2 geöffnet werden. Jemand nen Vorschlage wie ich das umsetzen kann? Meine Script-Kenntnisse reichen dazu leider nicht aus und googlen führte bisher nicht zum erfolg.
 
Benutzt du Basic Process Contol?
Da kannst du dir mit SSMGetScreen den Monitor abfragen auf dem das Bild das im Parameter spezifiziert ist angezeigt wird. Dann weißt du schonmal auf welchem Bildschirm jemand geklickt hat.

Der nächste Schritt ist dann, calc.exe zu starten, sich über die Windows-Api das Handle zu dem Fenster zu holen, und es ebenfalls mit Windows-Api SetWindowPos an die passende Position zu schieben.
Die Koordinaten für Bildschirmnummern von SSMGetScreen musst du dir überlegen, bzw. sind abhängig von der Konstellation der Bildschirme (über- oder nebeneinander).

Zumindest prinzipiell wird es so funktionieren. Ich glaube aber du kannst die Funktionen mit VBS nicht aufrufen, sondern musst auf C wechseln.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Ansatz, werd mal mit GetScreen spielen, glaub aber es läuft auf eine riesige Bastelei raus weil 16 Clients dranhängen und die Monitorconfi bunt gemischt ist. (Also 1-4 Monitore über/nebeneinander)
 
Zurück
Oben