Externe Anwendung/ schließen & in Vordergrund bringen.../ Winccflex 2007 auf MP377

Thomas R

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag zusammen,

ich habe eine Frage zum Thema WinCCflexible 2007 in Verbindung mit einem MP377 Bediengerät.
Mein Problem ist im Moment, dass ich eine Anwendung PDF_Reader starte mit dem Kommando "Starte Programm".
1. Problem
Dieser Vorgang kann je nach zu öffnender Dateigröße etwas länger dauern 5-10s. In dem Zeitraum bleibt der Focus weiterhin auf der Wincc Runtime.
Ein Bediener könnte jetzt auf die Idee kommen den Button zum Öffnen nochmals zu drücken und wird so bereits die zweite Instanz öffnen.
2. Problem
Sollte die Datei nun im Programm geöffnet sein, dann wird der Focus zum
PDF_Reader gewechselt und der gewünschte Zustand besteht. "Ich kann mir das Dokument ansehen"
Nun ist es aber so, dass wenn nach diesem Zeitpunkt Focus auf PDF_Reader ein Systemereignis in der Runtime auftritt, der Focus automatisch wechselt zur Runtime.

Nun habe ich bisher zwei Möglichkeiten gefunden, wie ich wieder zurückwechseln kann zu dem geöffneten PDF_Reader. Beide halte ich
nicht für gute Lösungen.
1.) Ich beende die Runtime per Systemfunktion
2.) Aufruf des Taskmanager. Dieser gibt einem die Möglichkeit zu einer bestimmten Anwendung zu wechseln. Finde ich schon mal gut.
Leider ist es aber auch möglich die Runtime damit zu beenden. Finde ich nicht so gut.

Meine Frage ist nun gibt es eine Möglichkeit eine Funktion zu kreieren mit der ich Anwendungen wechseln kann. (keine Tastatur angeschlossen)
Also eine Art Taskmanager mit ausschließlich Anwendungen wechseln kann und die Möglichkeit Anwendungen schließen nicht funktioniert?

Schön wäre es eigentlich ein Control in WinCC flex zu haben in dem ich die Anwendungen starten könnte. Gibt es aber glaube ich nur für WinCC flex 2008 in Verbindung mit dem Pocket InternetExplorer.

Vielleicht hat jemand diese Herausforderung ja mal genommen und kann mir helfen.

Gruß
Thomas
 
Damit dieser Beitrag nicht nur Unnützen Speicherplatz verbraucht

Ein Beispiel mit
'Notepad Exe
Dim Computer,oWmi,colProcessList,WshShell
Dim ProgrammName,Programm, Fenstername


ProgrammName = "notepad.exe" 'Name der Anwendung
Programm = "C:\windows\system32\" & (ProgrammName)
Fenstername = "Unbenannt - Editor" 'Name des Windowsfenster


'****************************************************************************************************************
Computer = "." ' nutzer "." für einen lokalen PC
Set oWmi = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
Set colProcessList = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & ProgrammName & "'")
'Set colProcessList = oWmi.instancesOf("win32_process")
'******************************************************************************************************************
If colProcessList.Count >< False Then
Set WshShell = CreateObject("WScript.Shell")
With WshShell
.AppActivate (Fenstername)
End With
Else
StartProgram (Programm),"",hmiShowNormal, hmiNo
End If
Set oWmi = Nothing
Set WshShell = Nothing
-------------------------------------------------
Getestet mit WinXP,Win7 32 und 64 Bit
Gruß Waldi :cool:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hat noch gefehlt

'Externes Programm schließen
Dim Wmi,system,Process,Computer
Programm = "%windir%\system32\notepad.exe"
'Abfrage ob der WMI Dienst gestartet ist
On Error Resume Next
Set Wmi = GetObject("winmgmts:")
If Err.Number<>0 Then
'WMI nicht gestartet
Set Wmi = Nothing
Exit Sub
End If
On Error GoTo 0
Computer = "." 'Lokal
Set Wmi = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & Computer & "\root\cimv2")
Set system = Wmi.instancesOf("win32_process")
For Each Process In system
If LCase(Process.name)=(Programm) Then
Process.Terminate (0)
End If
Next

Gruß Waldi ;)
 
sorry

Fehler bei Programm

Programm = "notepad.exe"
Notepad.exe läuft ja!!
PS
Programm ist ein Parameter von Sub

Gruß Waldi ;)
 
Hallo

Ich hol das Thema nochmal hoch.

Mein Panel ist ein MP377

Ich muss via https-Request in einer cloud einen 'Vorgang' starten welcher letztendlich eine sms versendet.
Dazu rufe ich den ie über die Funktion 'Starte Programm' mit dem Parameter auf.
Das klappt auch soweit.

Nur ist es leider so, daß der ie immer in den Vordergrund geholt wird. Auch wenn ich bei Darstellung minimiert oder minimiert und inaktiv wähle.
Der Versuch die Runtime durch einen Bildwechsel in den Vordergrund zu holen funktioniert auch nicht.

Kennt jemand eine Möglichkeit den ie automatisch zu schließen? Taskkill wie bei einem PC-System gibt es ja bei win-ce nicht.
Obiges Beispiel von Waldi1954 funktioniert (wie zu erwarten war) nicht.
Fehler 445. Objekt doesn't Support this Action.

evtl ein externens Programm welches auf das Panel kopiert wird?

Habe zwar wenig Hoffnung aber Fragen kostet nix. ;)
 
Zurück
Oben