Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Toolbar will nur einmal sauber starten

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Toolbar will nur einmal sauber starten (483 mal gelesen)
Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


Sehen Sie sich das Profil von Frank_Schalla an!   Senden Sie eine Private Message an Frank_Schalla  Schreiben Sie einen Gästebucheintrag für Frank_Schalla

Beiträge: 1731
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 16. Mai. 2006 14:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Also nun ganz doll durchgeatmet.
Bin 2 3 Stunden an einer simplen Toolbar am werkeln.
Beim ersten Kompilieren (auch beim Registern auf fremden Maschinen)
ist die Tollbar da.
Beim nächsten Start ist sie da aber leer.
Wenn ich nun im VS2003 die Versionskennung um 1 erhöhe geht das Spiel von vorne los.

Weiss jemand einen rat.
Anbei der Activate Teil weil da meiner Meinung nach der Hund begraben liegt.

*********************************************************************
Public Sub Activate(ByVal AddInSiteObject As Inventor.ApplicationAddInSite, ByVal FirstTime As Boolean) Implements Inventor.ApplicationAddInServer.Activate
            'the Activate method is called by Inventor when it loads the addin
            'the AddInSiteObject provides access to the Inventor Application object
            'the FirstTime flag indicates if the addin is loaded for the first time
            'initialize AddIn members
            moApplication = AddInSiteObject.Application
            moAppEvents = moApplication.ApplicationEvents
            AddHandler moAppEvents.OnActivateDocument, AddressOf ApplicationEvents_OnActivateDocument
            ' TODO:  Add ApplicationAddInServer.Activate implementation
            'e.g. event initialization, command creation etc.
            ' Create the GUI.
            Dim oCommandBar As Inventor.CommandBar
            Dim oControlDefinitions As ControlDefinitions
            Dim oControlDefinitions2 As ControlDefinitions
            Dim oControlDefinitions4 As ControlDefinitions
            Dim oControlDefinitions3 As ControlDefinitions
            'If FirstTime = True Then
            Try
             
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition = oControlDefinitions.AddButtonDefinition( _
                                          "Stempel Erstellen", "make_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Erstellt manuell den Stempel", "Erstellt manuell den Stempel", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions2 = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition2 = oControlDefinitions.AddButtonDefinition( _
                                          "Stempel ausblenden", "hide_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Schaltet den Stempel unsichtbar", "Schaltet den Stempel unsichtbar", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions4 = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition4 = oControlDefinitions.AddButtonDefinition( _
                                          "Stempel einblenden", "show_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Blendet einen bestehenden Stempel ein", "Blendet einen bestehenden Stempel ein", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions3 = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition3 = oControlDefinitions.AddButtonDefinition( _
                                          "Info ERP_STAMP", "about_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Shows Release Notes", "Shows Release Notes", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            'Make the Command Bar
            oCommandBar = _
              moApplication.UserInterfaceManager.CommandBars.Add("IV_ERP_STAMP", "IV_ERP_STAMP_tlb", _
            Inventor.CommandBarTypeEnum.kRegularCommandBar, _
            "{163A5DEA-7F55-446E-8AEB-74283ECCDB69}")
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            'Make the Butonsto the Bar
            oCommandBar.Controls.AddButton(oButtonDefinition)
            oCommandBar.Controls.AddButton(oButtonDefinition2)
            oCommandBar.Controls.AddButton(oButtonDefinition4)
            oCommandBar.Controls.AddButton(oButtonDefinition3)
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            ' End If
            'Display the Toolbar
            oCommandBar.Visible = True
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
End Sub 

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 16. Mai. 2006 14:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frank_Schalla 10 Unities + Antwort hilfreich

Hallo Frank,

du musst die FirstTime Variable benutzen. CommandBar „adden“ kannst du nur einmal. Bei nächsten Versuch kracht es ab, und die Buttons werden nicht hinzugefügt. Würde das AddIn hier:

Code:

Make the Command Bar
            oCommandBar = _
              moApplication.UserInterfaceManager.CommandBars.Add("IV_ERP_STAMP", "IV_ERP_STAMP_tlb", _
            Inventor.CommandBarTypeEnum.kRegularCommandBar, _
            "{163A5DEA-7F55-446E-8AEB-74283ECCDB69}")

nicht abkrachen, hättest du immer den ganzen Satz von Buttons dazu… (weil die Buttons "adden" sollte auch nur ein mal statt finden).

Also, den hier:

Code:

            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            'Make the Command Bar
            oCommandBar = _
              moApplication.UserInterfaceManager.CommandBars.Add("IV_ERP_STAMP", "IV_ERP_STAMP_tlb", _
            Inventor.CommandBarTypeEnum.kRegularCommandBar, _
            "{163A5DEA-7F55-446E-8AEB-74283ECCDB69}")
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            'Make the Butonsto the Bar
            oCommandBar.Controls.AddButton(oButtonDefinition)
            oCommandBar.Controls.AddButton(oButtonDefinition2)
            oCommandBar.Controls.AddButton(oButtonDefinition4)
            oCommandBar.Controls.AddButton(oButtonDefinition3)
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            ' End If
            'Display the Toolbar
            oCommandBar.Visible = True
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

sollte von einer If (FirstTime) eingeklammert werden.

Ist aber nur eine Ferndiagnose.   

PS: Und bei weitern Versuchen (während der Entwicklung) immer brav den Schlüssel 163A5DEA-7F55-446E-8AEB-74283ECCDB69 aus OwnerId löschen, sonst ist die FirstTime auf false.


------------------
Grüße daywa1k3r

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


Sehen Sie sich das Profil von Frank_Schalla an!   Senden Sie eine Private Message an Frank_Schalla  Schreiben Sie einen Gästebucheintrag für Frank_Schalla

Beiträge: 1731
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 16. Mai. 2006 16:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Das mit dem löschen während der Entwicklung habe ich so gelöst
Dim regKey As RegistryKey
            Try

                regKey = Registry.CurrentUser.OpenSubKey("Software\Autodesk\Inventor\RegistryVersion10.0\UI Customization V3\Command Owner IDs", True)
                regKey.DeleteSubKeyTree("{163A5DEA-7F55-446E-8AEB-74283ECCDB69}")
                regKey.Close()
            Catch ex As Exception
'MsgBox(ex.ToString)
            End Try

            Try
'HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion10.0\UI Customization V3\ToolBars\IV_ERP_STAMP_tlb
                regKey = Registry.CurrentUser.OpenSubKey("\Software\Autodesk\Inventor\RegistryVersion10.0\UI Customization V3\ToolBars", True)
                regKey.DeleteSubKeyTree("IV_ERP_STAMP_tlb")
                regKey.Close()
            Catch ex As Exception
'MsgBox(ex.ToString)
            End Try

Wenn man dies in ACTIVATE packt ist nicht so mühsam.
Vor dem Kompilieren nimm ich's dann raus

*******************************************************************

Aber die eigentliche Sache macht mich fertig.
First Time ist nun gesetzt und beim Debuggen kommt die Tollbar immer.
Wenn ich aber die DLL einbinde kommt sie genau einmal beim nächsten Start sind die
ButtonDef's noch da,
aber die Toolbar ist leer
Langsam wird GRAUSIG

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 16. Mai. 2006 17:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frank_Schalla 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Frank_Schalla:
First Time ist nun gesetzt und beim Debuggen kommt die Tollbar immer.

Erst jetzt nach der Benutzung von FirstTime oder hat es in DebugModus auch zuvor funktioniert?

Zitat:

Das mit dem löschen während der Entwicklung habe ich so gelöst

Schon Ok, aber nur manuell ausführen, weil wenn das immer ausgeführt wird hat die FirstTime keinen Sinn. Dann ist die FirstTime immer auf true und der Zustand ist der gleiche wie du es zuvor gehabt hast.

------------------
Grüße daywa1k3r

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Frank_Schalla
Ehrenmitglied
CAD_SYSTEMBETREUER


Sehen Sie sich das Profil von Frank_Schalla an!   Senden Sie eine Private Message an Frank_Schalla  Schreiben Sie einen Gästebucheintrag für Frank_Schalla

Beiträge: 1731
Registriert: 06.04.2002

DELL M6800
Cad Admin
Methodikentwickler 3D

erstellt am: 16. Mai. 2006 18:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Igor


erst nach der Benutzung von
FirstTime

Hier die aktuelle Version


***********************************
  Public Sub Activate(ByVal AddInSiteObject As Inventor.ApplicationAddInSite, ByVal FirstTime As Boolean) Implements Inventor.ApplicationAddInServer.Activate
            'the Activate method is called by Inventor when it loads the addin
            'the AddInSiteObject provides access to the Inventor Application object
            'the FirstTime flag indicates if the addin is loaded for the first time
            'initialize AddIn members
           

            moApplication = AddInSiteObject.Application
            moAppEvents = moApplication.ApplicationEvents
            AddHandler moAppEvents.OnActivateDocument, AddressOf ApplicationEvents_OnActivateDocument
            ' TODO:  Add ApplicationAddInServer.Activate implementation
            'e.g. event initialization, command creation etc.
            ' Create the GUI.
            Dim oCommandBar As Inventor.CommandBar
            Dim oControlDefinitions As ControlDefinitions
            Dim oControlDefinitions2 As ControlDefinitions
            Dim oControlDefinitions4 As ControlDefinitions
            Dim oControlDefinitions3 As ControlDefinitions
            '
            Try

                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition = oControlDefinitions.AddButtonDefinition( _
                                          "Stempel Erstellen", "make_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Erstellt manuell den Stempel", "Erstellt manuell den Stempel", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions2 = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition2 = oControlDefinitions.AddButtonDefinition( _
                                          "Stempel ausblenden", "hide_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Schaltet den Stempel unsichtbar", "Schaltet den Stempel unsichtbar", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions4 = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition4 = oControlDefinitions.AddButtonDefinition( _
                                          "Stempel einblenden", "show_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Blendet einen bestehenden Stempel ein", "Blendet einen bestehenden Stempel ein", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                oControlDefinitions3 = moApplication.CommandManager.ControlDefinitions
                oButtonDefinition3 = oControlDefinitions.AddButtonDefinition( _
                                          "Info ERP_STAMP", "about_stamp", CommandTypesEnum.kShapeEditCmdType _
                                          , "163A5DEA-7F55-446E-8AEB-74283ECCDB69", _
                                          "Shows Release Notes", "Shows Release Notes", _
                                          , , ButtonDisplayEnum.kDisplayTextInLearningMode)
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            If FirstTime = True Then
                'Make the Command Bar
                oCommandBar = _
                  moApplication.UserInterfaceManager.CommandBars.Add("IV_ERP_STAMP", "IV_ERP_STAMP_tlb", _
                Inventor.CommandBarTypeEnum.kRegularCommandBar, _
                "{163A5DEA-7F55-446E-8AEB-74283ECCDB69}")
                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                'Make the Butonsto the Bar
                oCommandBar.Controls.AddButton(oButtonDefinition)
                oCommandBar.Controls.AddButton(oButtonDefinition2)
                oCommandBar.Controls.AddButton(oButtonDefinition4)
                oCommandBar.Controls.AddButton(oButtonDefinition3)

                '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

            'Display the Toolbar
            oCommandBar.Visible = True
            End If
            '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
            Dim splash As New splash
            splash.Show()

            splash.TB_Splash.AppendText(("Modul: IV_ERP_STAMP.Net is loading" & vbNewLine))

            splash.Show()
            splash.Refresh()
            'Try
            splash.TB_Splash.AppendText("Modul: IV_ERP_STAMP.Net Enviroment is loading" & vbNewLine)
            splash.Refresh()
            splash.TB_Splash.AppendText("Modul: IV_ERP_STAMP.Net is activated")
            splash.TB_Splash.AppendText("!!!! BETAVERSION !!!!")
            splash.Timer_splash.Start()


        End Sub

------------------

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Elektrotechniker (m/w/d) Automatisierungstechnik Chemieanlagenbau
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: Wir realisieren spannende Projekte für namhafte Kunden im Anlagenbau und arbeiten mit an anspruchsvollen Lösungen für die Industrie.

Elektrotechniker (m/w/d) Automatisierungstechnik ...
Anzeige ansehenElektrotechnik, Elektronik
daywa1k3r
Moderator
Softwareentwickler




Sehen Sie sich das Profil von daywa1k3r an!   Senden Sie eine Private Message an daywa1k3r  Schreiben Sie einen Gästebucheintrag für daywa1k3r

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 16. Mai. 2006 19:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Frank_Schalla 10 Unities + Antwort hilfreich

Hallo Frank,

ehrlich gesagt, glaube ich nicht, dass es an der Funktion liegt. Schließlich funktioniert die jetzt auch in DebugModus. Folgende Möglichkeiten gibt es noch IMHO...

1. Die DLL, die du benutzt, ist nicht die neu kompilierte Datei.
2. Der Regeintrag OvnerId ist noch vorhanden, oder wird immer wieder gelöscht (dein Funktionen) <- Mein Favorit
3. Die neue Datei ist bei OS nicht registriert (regasm).
4. Debug und Release Ordner verwechselt
5. Erstellen / Projektmappe neu erstellen oder Erstellen / (Projekt) neu erstellen mal probieren.

Seit .NET erstelle ich auch für jede Kleinigkeit ein INNO Setup. Dann bin ich sicher, dass alle Einträge weg sind, bevor es installiert wird. Wenn die alten Dateien nicht überschrieben werden können, kommt auch eine Meldung, und letztendlich wird alles auf jeden Fall bei OS registriert.

------------------
Grüße daywa1k3r

FX64 Software Solutions

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz