Macro Prozess muss manuell gekillt werden

Comprehensive CAN monitor for Windows® and its add-ins: Plotter, CANdb Import, Instruments Panel, and J1939
Post Reply
AndreasZ
Posts: 15
Joined: Mon 28. Jan 2013, 11:38

Macro Prozess muss manuell gekillt werden

Post by AndreasZ » Tue 5. Feb 2013, 13:00

Hallo,

wenn ich mein Macro laufen lasse (über Button mit Befehl: MacroFkt ) und diesen dann wieder beende, ist der Prozess nicht ganz weg. Ich sehe diesen noch unter "Werkzeuge->Status Display" und muss diesen manuall killen.

Das Problem hierbei ist, dass mein PCAN Explorer bzw weitere Skript-Starts nicht funktionieren weil schon zu viele Makros laufen.

Kann ich die Makros beim Stopen auch gleich killen? Durch einen Button oder ein Kommando im Skript evtl?

MfG

Andi

User avatar
PEAK-Support
Sales & Support
Sales & Support
Posts: 1646
Joined: Fri 10. Sep 2010, 19:34

Re: Macro Prozess muss manuell gekillt werden

Post by PEAK-Support » Tue 5. Feb 2013, 13:33

Normalerweise wird das Macro durch den STOP Button sauber beendet. Senden Sie uns doch bitte die Seriennummer Ihrer PCAN-Explorer Version sowie, wenn möglich, das Macro. support@peak-system.com - wir schauen dann drüber und melden uns umgehend bei Ihnen.
--------------------------------
PEAK-System Technik
Technical Support Team
support[at]peak-system.com
-------------------------------

AndreasZ
Posts: 15
Joined: Mon 28. Jan 2013, 11:38

Re: Macro Prozess muss manuell gekillt werden

Post by AndreasZ » Tue 5. Feb 2013, 16:45

Hallo,

Problem gelöst.

MyClient muss lokal angelegt werden. Wenn Global wird dieser nicht sauber getrennt und das Makrofile ist noch aktiv.
Muss dann auch mit "Sub SetCellMsg(MyClient) " an andere Funktionen übergeben werden.

Vielen Dank Hr. Wilhelm

Mfg

User avatar
PEAK-Support
Sales & Support
Sales & Support
Posts: 1646
Joined: Fri 10. Sep 2010, 19:34

Re: Macro Prozess muss manuell gekillt werden

Post by PEAK-Support » Wed 6. Feb 2013, 08:34

Genau so ist es. Wenn Objekte nicht innerhalb von Subs erzeugt werden, dann werden diese nicht wieder freigegeben. Also bitte das Erzeugen von Objekten wie z.B.:

Code: Select all

Dim MyClient
Set MyClient = CreateObject("PCAN3.PCANClient")
bitte immer innerhalb einer Sub machen. Wenn man dann in anderen Funktionen das Client Objekt benötigt, kann man es ja als Parameter übergeben:

Code: Select all

Call MyOwnFunction(MyClient)
Damit ist sichergestellt, dass nach dem Beenden des Macros das Object von der internen VBS Engine freigegeben wird. Wenn man hingegen im globalen Teil das

Code: Select all

Dim MyClient
setzt, so wird das Objekt NICHT wieder freigegeben...und nach dem X-ten Aufruf geht nichts mehr (Ressourcenmangel - in diesem Fall können nur max. 32 Clients an einen Treiber angemeldet werden)
--------------------------------
PEAK-System Technik
Technical Support Team
support[at]peak-system.com
-------------------------------

Post Reply