Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Remove CommandBar

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:  Remove CommandBar (472 mal gelesen)
buchi2k
Mitglied


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

Beiträge: 4
Registriert: 21.11.2006

erstellt am: 21. Nov. 2006 17:01    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

Hallo,

ich habe folgende Problemstellung:

ich möchte, dass mein Menüpunkt (File  View  MeinMenüPunkt)
bei jedem Start von Inventor geladen wird, und mit einer variablen Anzahl von Menüeinträgen dargestellt wird. Ich habe aber folgendes Problem:

Die Menüpunkte werden nur beim ersten Laden der .dll geladen.
if(FirstTime == VARIANT_TRUE)
InsertControlsInMenuBars();

wenn ich nun bei diesem Start weniger Menüpunkte lade als zuvor zeigt es mir bei dem betroffenen Menüpunkt nur ein Symbol an das der Menüpunkt nicht ordnungsgemäß geladen wurde.

Wenn ich die If-Abfrage entferne habe ich multiple Menüeinträge
(File  View  MeinMenüPunkt MeinMenüPunkt MeinMenüPunkt).

Meine genaue Frage lautet daher wie kann ich dieses Verhalten realisieren???

Mein Ansatz war: bei jedem Start von Inventor das Menü (mit x Menüpunkten) entfernen und danach das Menü (mit y Menüpunkten) erneut hinzufügen .
Habs aber nicht geschafft das Menü ordentlich zu entfernen, ich wäre sehr dankbar falls wer Code oder Ansätze zum Richtigen entfernen des Menüs oder einen alternativen Lösungsansatz bieten kann.

mfg Stefan

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: 22. Nov. 2006 08:49    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 buchi2k 10 Unities + Antwort hilfreich

Hi Stefan,

ich gehe mal davon aus, dass du ein normale Werkzeugleiste (CommandBar) hast. Und die sollte sich schon mit Delete löschen lassen. Wie versuchst du es denn? Und wovon hängt es ab, ob ein Eintrag in dem Menü drin ist oder nicht? Notfalls die Registry vor dem Start manipulieren. Aber das ist wirklich gar nicht sauber.

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

FX64 Software Solutions

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

buchi2k
Mitglied


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

Beiträge: 4
Registriert: 21.11.2006

erstellt am: 22. Nov. 2006 12:09    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,

Ich habe einfach zu den Standard Menüpunkten  (File, View,...)
einen eigenen Menüpunkt hinzugefügt.
Der Eintrag soll bei jedem Start hinzugefügt werden (die Menüeinträge die angezeigt werden stehen in einem Textfile und werden vorher ausgelesen)
Da ich momentan Probleme habe diese Anzuzeigen habe ich mir vorgestellt die Menüeinträge vorher zu löschen und dann neu hinzuzufügen.

Als vorlage zum hinzufügen der Menüpunkte diente mir das Beispiel LoftWithRailings das bei Inventor dabei ist.

Das ist der Codeausschnitt in dem ich den Menüpunkt löschen wollte, funktioniert aber irgendwie nicht so wies soll.

Code:
ATLASSERT(m_pApplication);

ATLASSERT(m_pAddInSite);

CComPtr<CommandBarBase> pCmdBarDef;

CComPtr<UserInterfaceManager> pUserInterfaceMgr;
HRESULT hr = m_pApplication->get_UserInterfaceManager(&pUserInterfaceMgr);
ATLASSERT(SUCCEEDED(hr));

CComPtr<CommandBars> pCmdBars;
hr = pUserInterfaceMgr->get_CommandBars(&pCmdBars);
ATLASSERT(SUCCEEDED(hr));

CComVariant vtAddInId(L"{37E7CBC7-F0F7-455B-85B4-668E0674C9DE}");
CComBSTR InternalNameBSTR(L"LoftWithRailingsCmdBar_CIMGRAPH");
CComBSTR displayNameBSTR(L"&CIMGraph Explorer");

CComPtr<CommandBar> pCmdBar;
hr = pCmdBars->get_Item(CComVariant(InternalNameBSTR),&pCmdBar);
hr= pCmdBar->Delete();


mfg Stefan

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: 22. Nov. 2006 16:12    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 buchi2k 10 Unities + Antwort hilfreich

Hm, der Code scheint OK zu sein. Allerdings ob er auf der richtige Stelle steht, kann ich von hier nicht sagen(FirstTime und so...) Bekommst du da eine Fehlermeldung? Eins kannst du  noch probieren, und zwar den Code innerhalb der FirstStart zu schreiben, und bevor du den Inventor + AddIn startest, deine CLSID aus dem:

HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion11.0\UI Customization V4\Command Owner IDs

Schlüssel zum löschen. Das bewirkt, dass der Code innerhalb der FirstTime IF ausgeführt wird. Sollte das funktionieren musst du es mit Code automatisieren.

------------------
Grüße Igor

FX64 Software Solutions

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

buchi2k
Mitglied


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

Beiträge: 4
Registriert: 21.11.2006

erstellt am: 22. Nov. 2006 16:26    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

Naja, also der part mit hr=pCmdBar->Delete() liefert S_OK, allerdings wird pCmdBar nicht NULL, sondern bleibt gleich.

Das mit dem Firsttime hab ich schon probiert indem ich das if auskommentiert habe also die Funktion jedesmal aufgerufen wird, also jedes mal löschen und danach neu hinzufügen.
(Müsste eigentlich den selben Effekt haben wie deine Variante mit dem regkey löschen)
Allerdings scheint das mit dem löschen nicht zu funktionieren, da sie mir die Commandbar doppelt einträgt.

File View myCMD myCMD ...

naja, hab irgendwie die fragestellung schon paar mal entdeckt, aber nie eine passende Lösung 

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: 22. Nov. 2006 16:31    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 buchi2k 10 Unities + Antwort hilfreich

Schon probiert direkt die Toolbar aus:

HKEY_CURRENT_USER\Software\Autodesk\Inventor\RegistryVersion11.0\UI Customization V4\ToolBars

zu löschen?

------------------
Grüße Igor

FX64 Software Solutions

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

buchi2k
Mitglied


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

Beiträge: 4
Registriert: 21.11.2006

erstellt am: 22. Nov. 2006 17:07    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

Wow, wie kommt man nur auf sowas, k

aber es funktioniert 

Danke sehr, jetzt muss ich nur noch bissi coden damit ich effektiv die Sachen aus der Reg lesen und schreiben kann, thx

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