| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | 7 Tipps für die Konstruktion von Kunststoffteilen und Spritzgussformen, ein Webinar am 27.06.2025
|
Autor
|
Thema: Makros bei Parallelinstallation SW2008 und 2010 (1427 mal gelesen)
|
uncleH Mitglied

 Beiträge: 15 Registriert: 16.03.2006
|
erstellt am: 03. Mrz. 2011 15:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo Community, folgendes "Problem". Ich habe zuerst SW2008 und dann SW2010 installiert. Pfade sauber in der Registry gesetzt, Versionen laufen "sauber". Ich starte in SW2008 ein Makro, um Dateieigenschaften zu füllen. Jetzt wird aber im Hintergrund SW2010 gestartet mit dem Hinweis, dass keine Datei geladen ist. Wenn ich zuerst SW2010 und dann SW2008 installiere, startet das Makro aus SW2008 korrekt, arbeitet aber nicht mehr mit SW2010. Meine Idee: Ich gebe dem Makro mit, mit welcher Version es zusammenarbeiten soll. Hat hierzu jemand eine Idee? Danke für Eure Tipps. Gruß UncleH ------------------ Schüss mit "üss" UncleH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller Mitglied Masch. Ing. HTL / Betriebsing. STV
   
 Beiträge: 1151 Registriert: 11.04.2001
|
erstellt am: 03. Mrz. 2011 16:02 <-- editieren / zitieren --> Unities abgeben:          Nur für uncleH
Hallo UncleH. Ich könnte mir vorstellen, dass im Makro ein Verweis auf SWX  2010 enthalten ist und dieses darum gestartet wird. Vielleicht hilft es, wenn du 2 Makros hast, eines für 2008 und eines für 2010 jedes mit den entsprechenden Verweisen? Gruess Andy ------------------ Gruss Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uncleH Mitglied

 Beiträge: 15 Registriert: 16.03.2006
|
erstellt am: 03. Mrz. 2011 16:06 <-- editieren / zitieren --> Unities abgeben:         
Hi Andreas, es ist ein älteres Makro ohne Verweis auf SW2010. Aber Du beschreibst genau meine Lösungsidee, dass ich für jede Version ein Makro haben möchte. Nur: Welchen VB-Code muss ich ins Makro eintragen, damit ich dem Makro eine bestimmte SW-Version zuweisen kann? Jemand 'ne Idee? Danke und Gruß Heiko Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uncleH Mitglied

 Beiträge: 15 Registriert: 16.03.2006
|
erstellt am: 03. Mrz. 2011 16:08 <-- editieren / zitieren --> Unities abgeben:         
Nachtrag: Das Makro startet momentan immer die zuletzt installierte Version. Tests: 1. Zuerst SW2008, dann SW2010 installiert -> Makro startet SW2010 2. Zuerst SW2010, dann SW2008 installiert -> Makro startet SW2008 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3743 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 03. Mrz. 2011 19:23 <-- editieren / zitieren --> Unities abgeben:          Nur für uncleH
Hallo Heiko, könntest Du das Makro hier veröffentlichen? Irgendwo muß da ja zumindest was ähnliches wie CreateObject drin sein. Nur wird es wohl schwierig bis unmöglich sein, sowas rauszufinden ohne den Quelltext. Gruß, Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
   
 Beiträge: 1384 Registriert: 20.12.2003 SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 04. Mrz. 2011 07:49 <-- editieren / zitieren --> Unities abgeben:          Nur für uncleH
Hallo UncleH, ich hatte bei meinen Makros auch Probleme, als ich auf Win7 x64 umgestiegen bin. Da ich deinem Profil entnehmen kann, dass du auch Win7 im Einsatz hast, könnte folgendes helfen: Bin auf Daniels Seite http://mysldworks.de/Details.aspx?ThemaID=13&SnippetID=45 gestoßen und habe die Create-Object-Zeile, die bei dir im Code wahrscheinlich vorkommt, in "Set swApp = Application.SldWorks" umgewandelt. Und siehe da, ab da lief es dann. Es wird die aktuell gestartete Version genommen und das Makro abgearbeitet. ------------------ ========== Gruß Andreas ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)

 Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 04. Mrz. 2011 08:23 <-- editieren / zitieren --> Unities abgeben:          Nur für uncleH
Hallo uncleH, das, was du als Problem hast, ist eigentlich verhältnismäßig einfach und sehr clever gemacht um eben mit mehreren Versionen arbeiten zu können. Ich zitier mich mal selbst aus dem Thread http://ww3.cad.de/foren/ubb/Forum2/HTML/016254.shtml#000006 : Zitat: Stefan Berlitz schrieb [Beim Starten] trägt sich die SolidWorks mit seiner zur Version passenden CLSID im allgemeinen Schlüssel für Sldworks.Application ein, darüber sucht Windows dann die passende Applikation (es schaut also auf die CLSID, sucht die in der Registry, in dem Schlüssel gibt es dann den Key LocalServer32, der dann auf den Pfad zu der Datei zeigt, die dann per CreateObject erzeugt werden soll).Bei Start von SolidWorks schreibt jede Version dann immer seine eigene CLSID in den Schlüssel Sldworks.Application ... wenn dein Makro also eine zusätzlichen SW2009 Prozess aufmacht steht genau dessen CLSID in diesem Key. Und das kann eigentlich nur bedeuten, dass du entweder keine Schreibrechte auf dem Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SldWorks.Application\CLSID hast oder die SW2007 nicht zuletzt von Hand gestartet hattest.
Wenn eine Datei per Doppelklick geöffnet wird, sucht also Windows in der Registry, welche SolidWorks Version interaktiv das letzte Mal gestartet worden ist und macht das auf. Wenn es schon eine laufende Session dieser Version gibt klinkt es sich da ein, wenn nicht, macht es diese Version neu auf. In deinem Fall vermute ich stark, dass du nach der Installation (und Probieren) der 2008/2010 und eingedenk der Tatsache, dass ein normaler Anwender keine Schreibrechte in HKLM hat. Das führte dann dazu, dass immer noch die 2008/2010 als "letzte interaktiv gestartete Version" in der Registry stand (eben die, die von einem User mit Adminrechten ausgeführt wurde) und Windows eben treu und brav die auch gestartet hat. Einfache Lösung also: gib deinen Anwendern Schreibrechte in der Registry (zumindest auf diesen Ast), log dich an allen Maschinen als Admin ein und starte einmal die 2008 (dass musst du dann natürlich noch mal machen, wenn die 2010 dann gelten soll) oder verteil den entsprechenden Regeintrag (siehe oben) remote auf alle Rechner, je nachdem, was du brauchst. Die Alternative ist nicht mit CreateObject in den Makros zu arbeiten, sondern wie oben von Daniels Seite zitiert mit SldWorks.Application Ciao, Stefan
------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
uncleH Mitglied

 Beiträge: 15 Registriert: 16.03.2006
|
erstellt am: 04. Mrz. 2011 09:40 <-- editieren / zitieren --> Unities abgeben:         
|
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 04. Mrz. 2011 10:40 <-- editieren / zitieren --> Unities abgeben:          Nur für uncleH
|

| |
uncleH Mitglied

 Beiträge: 15 Registriert: 16.03.2006
|
erstellt am: 04. Mrz. 2011 15:34 <-- editieren / zitieren --> Unities abgeben:         
Hi Leute, die Infos von Stefan haben geholfen. Es waren tatsächlich Rechtevergaben für den CLSID-Eintrag in der Registry. Makro musste also diesbzgl. nicht angepasst werden und läuft jetzt sauber unter allen Versionen. Das nächste Problem "Makro im Hintergrund" konnte mit Hilfe dieses Forums auch gelöst werden. Konnte über ältere Beiträge ein paar Zeilen ergänzen, die das Makro jetzt immer im Vordergrund ablaufen lassen. Vielen Dank an Stefan und den Rest der tollen Gemeinde. Schönes Wochenende und beste Grüße Heiko
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |