Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: WinCC - C-Scripte in Grafikobjekten via VBS bearbeiten

  1. #11
    Registriert seit
    25.02.2015
    Beiträge
    38
    Danke
    6
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Inzwischen hab ich's wieder kaputtgespielt, aber gestern hat's dann noch ein paar Runden ohne Fehler funktioniert - sprich: Es ist durchgerattert ohne zu meckern. Leider ohne den gewünschten Effekt.

    Ich befürchte, er schreibt zwar rein, was er reinschreiben soll, kann die Information aber nicht übernehmen / die aktion nicht erzeugen / den Code dann nicht von allein übersetzen nach dem Schreiben.

    Ich spiel mal trotzdem noch etwas mit rum.


    (prinzipiell kann ich PDLs auch mit dem Editor öffnen, dort liegen nebst Hiroglyphen die C-Skripte halbwegs offen; Dort Suchen&Ersetzen, abspeichern. Nur danach mag WinCC die Modifizierte Datei nichtmehr - nichtmal, wenn ich die Änderung rückgängig mache und die Datei quasi im Ausgangszustand wieder speichere)

  2. #12
    Registriert seit
    03.02.2015
    Ort
    Hatten
    Beiträge
    183
    Danke
    16
    Erhielt 32 Danke für 29 Beiträge

    Standard

    Hi,

    guck mal bitte unter diesem Link: https://www.google.de/url?sa=t&rct=j...,d.ZWU&cad=rja

    Da gibt es ein Handbuch mit der VBA-Referenz. Auf Seite 2372 ist die SourceCode-Eigenschaft beschrieben.
    In dem Beispielscript wird über die Compiled-Eigenschaft abgefragt, ob der Code in Ordnung ist und compiliert werden konnte. Vielleicht kannst Du damit Fehler finden.

  3. #13
    Registriert seit
    25.02.2015
    Beiträge
    38
    Danke
    6
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Problem war, dass wir mit der Aktuellen Idee nur in den Properties gesucht haben, man aber eine Stufe tiefer - in die Events - reinschauen muss, um an den eigentlichen Code zu kommen.

    Der Kollege Praktikant war heut mal da und hat's entdeckt und zurechtgebastelt - sieht nicht viel anders aus als vorher aber klappt jetzt

    Ich stell das fertige Konstrukt dann nachher mal hier rein.

    Besten Dank nochmals für die engagierte Hilfe!

  4. #14
    Registriert seit
    25.02.2015
    Beiträge
    38
    Danke
    6
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Inhalt von C-Skripten "Umverdraten"


    Sub SuchenErsetzen()

    'On Error Resume Next 'Fahre trotz Fehler erstmal fort

    Dim objHMIObject As HMIObject
    Dim objEvent As HMIEvent
    Dim objHMIScriptInfo As HMIScriptInfo

    Dim suchen
    Dim Ersetzen
    Dim count

    suchen = "Kontakt_0"
    Ersetzen = "KontaktP_0"
    count = 0

    For Each objHMIObject In ActiveDocument.HMIObjects 'Durchlaufe alle Objekte im aktivem Bild
    If objHMIObject.Type = "HMICustomizedObject" Then 'Überprüfe ob es ein Anwenderobjekt ist

    For Each objEvent In objHMIObject.Events 'Durchlaufe alle Ereignisse im Objekt
    If objEvent.EventName = "OnClick" Then 'Überprüfe ob es ein Maus-Ereignis ist

    For Each objHMIActionDynamic In objEvent.Actions 'Durchlaufe die Aktionen im Ereignis
    If objHMIActionDynamic.ActionType = hmiActionTypeScript Then 'Überprüfe ob ein Script in den Aktionen hinterlegt ist
    Set objHMIScriptInfo = objHMIActionDynamic

    If objHMIScriptInfo.ScriptType = hmiScriptTypeCScript Then 'Überprüfe ob dieses Script ein C-Script ist
    objHMIObject.Selected = True 'zur Sicherheit dieses Objekt nochmals anwählen
    objHMIScriptInfo.SourceCode = Replace(objHMIScriptInfo.SourceCode, suchen, Ersetzen) 'Durchsuche den SourceCode nach dem Schlüsselwort "suchen" und ersetze dieses mit "Ersetzen"
    count = count + 1

    MsgBox (objHMIScriptInfo.SourceCode) 'beliebige Ausgabe, die zeigt ob auch wirklich der Sourcecode geändert wurde
    End If
    End If
    Next
    End If
    Next objEvent
    End If
    Next objHMIObject

    MsgBox ("Geänderte C-Scripte: " & count)

    End Sub

    Ersetzt in einem Bild (Funktioniert in "ThisDocument (BILDNAME.pdl)" im Makro-Editor) in allen Objekten einen Teil des C-Codes im Mausklick-Event durch einen beliebigen neuen.
    Und gibt aus welche Skripts gefunden werden und erzählt einem am Ende, in wievielen Skripts die Ersetzung vorgenommen wurde.

    ... im Groben also das, was JSEngineering hier bereitgestellt hat.

    Der Kollege hat da seinen Spaß dran, daher kamen noch kleine Nettigkeiten dazu - ich werd versuchen das jetzt noch zu erweitern auf das Ersetzen verschiedener Einträge pro Bild.


    Falls es sonst noch wer gebrauchen kann: Viel Vergnügen damit. Freut mich, dass sich alle, die sofort meinten "Pah.. geht nich." oder (auch gelesen) "Du willst Apfelkompott aus Birnen machen...." geirrt haben


    Danke und

    Problem gelöst!
    Geändert von ThomasMaulwurf (02.03.2015 um 11:00 Uhr)

  5. Folgender Benutzer sagt Danke zu ThomasMaulwurf für den nützlichen Beitrag:

    Jarrymo (06.02.2017)

Ähnliche Themen

  1. WinCC flexible Scripte
    Von shainax im Forum HMI
    Antworten: 2
    Letzter Beitrag: 22.06.2012, 11:46
  2. WinCC flexible scripte tutorial
    Von d3nnis.c im Forum HMI
    Antworten: 0
    Letzter Beitrag: 13.04.2009, 11:17
  3. WinCC und VB Scripte
    Von Farinin im Forum HMI
    Antworten: 2
    Letzter Beitrag: 20.11.2007, 06:17
  4. WinCC + WebNavi + C-Scripte (Include)
    Von Krumnix im Forum HMI
    Antworten: 0
    Letzter Beitrag: 12.07.2007, 10:48
  5. WinCC 6.0 und Scripte
    Von fzwetz im Forum HMI
    Antworten: 0
    Letzter Beitrag: 15.07.2004, 19:10

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •