Add menu item in .exe-File

Is there any way, that i can add a menu item in the .exe-File?
I need a menu which is expandable for the customer!
thanks wiesi

Wiesi,
I thought this was an interesting question, because I noticed a number of people with previous questions who had serious difficulty with .rtm files and executables, and they weren't even trying to add or remove menu items dynamically. Are you using .rtm files to define your custom menus both in the development envuronment and in the EXE?
If so, I think I agree with Dennis and suggest that you abandon that approach and just build your menu programmatically, as shown in the example he points out. That way, you can create an arbitrary menu each time the VI or EXE is run. One wrinkle is that you now have to create some extra logic for constructing, saving, and loading your run-time menus. I put together an example (attached, LV 7.0) that demonstrates one way to go about it. I tested both in the development environment and after creating an EXE, and it works fine.
I'm interested in something else: how do you plan to make your EXE flexible enough to actually respond correctly to newly-introduced menu items? I guess you'll have to take some kind of a "plug-in" approach, where the anticipated menu choices will lead to the execution of additional code that you are packaging alongside the executable?
Regards,
John
Attachments:
Dynamic Menu Example.zip ‏57 KB

Similar Messages

  • Page Forward & Reverse buttons do not work & are "grayed-out" after upgrading to, as is the Main-Menu Items such as File-Edit-view etc...

    After upgrading to Firefox 3.6.12 all functionality appeared to be intact. Then after a few days it lost the ability to "page forward" or to "page back" and are "grayed-out". Additionally, the Main menu items such as File, Edit, View, History, Bookmarks, Tools & Help are also grayed-out and non-functioning.
    Also, the "Search Window" does not search, Web Searches need to be performed from within the URL window instead, for some crazy reason. If the URL window is blank when I enter a search into the actual search window the following appears in the URL window, "Search Bookmarks and History", which makes no sense.
    I have noticed similar complaints in this Forum in the past but I have not seen any posted resolution to these issues. Is there a solution?

    Create a new profile as a test to check if your current profile is causing the problems.<br />
    See [[Basic Troubleshooting#Make_a_new_profile|Basic Troubleshooting&#58; Make a new profile]]
    There may be extensions and plugins installed by default in a new profile, so check that in "Tools > Add-ons > Extensions & Plugins"
    If that new profile works then you can transfer some files from the old profile to that new profile (be careful not to copy corrupted files)
    See http://kb.mozillazine.org/Transferring_data_to_a_new_profile_-_Firefox

  • How to add menu item in Virtual Folders Actions Menu

    Hi ,
    I am writting a custom component which will add some action on documents and virtual folder.
    I am able to add the menu item for DocInfo, but not able to add Menu Item in Virtual Folders Actions Menu.
    Please help!!
    thanks

    I am able to add the menu item for DocInfo, but not able to add Menu Item in Virtual Folders Actions Menu.What exactly you are trying to modify? If web GUI, it should be following the same principles as your "DocInfo" changes (only the basis service is COLLECTION_DISPLAY). If you are trying to modify Desktop Integration Suite, I'm afraid there is no help (at least, I have not heard that DIS could be modified by custom components).

  • Need to add Menu Item to Search Result Template page

    Hi Guys,
    I am using UCM 11g and I am customizing serach result page.
    When we do search on UCM, we get a search result page. This search result page has a two drop downs (on the top right) "Change View" and "Search Action" in the blue strip.
    I have to add one customized dropdown option in "Publish Selected", it worked well with 10g by overriding searchapi_result_menus_setup include but not working in 11G.
    Appreciate your help on this, Thank you
    Thanks,
    Ashok

    Reunion1980 wrote:
    ..I need to add item "About" to frame's system menu.
    Is there any way to solve this problem?Try this link - [http://pscode.org/jh/bin/helpsetter-apidocs.jnlp]. It is sand-boxed, like an applet. It should prompt if you want to create shortcuts, click OK/Yes.
    After you run it, open the 'All Programs'/system menu. There should be an item under the 'JavaHelp System' menu for the 'JavaHelp System JavaDocs'. That link is to launch the application again. [Java Web Start|http://www.java.com/en/download/faq/java_webstart.xml] *(<- link)* is what installs the menus. JWS can also install menus specifically for application help.
    Older applications declared the required menu items and desktop shortcut in the JNLP launch file, but JRE 1.6.0_18+ offers the IntegrationService *(<- link)* to applications, and provides feedback on success/failure. Note that some systems will ignore requests for desktop integration. Ubuntu Linux will allow for the creation of desktop shortcuts, but silently ignore requests for menu items.

  • Can't add menu item to showMenu panelCollection facet

    Is that a bug ? JDev does not allow to add a menu item inside a showMenu panelCollection's facet. If you manually add it, it shows an error:
    "Element at af:commandMenuItem not expected (missing required ancestor)".
    The application runs fine. That error also shows up on the searchUI.jsff page from the Handbook sample code.
    Jdev version is 11.1.1.2.0.
    Thanks & Regards.

    No, it's not a bug. You need a af:menu ancestor for your af:commandMenuItems:
                <af:panelCollection id="pc1">
                  <f:facet name="menus">
                    <af:menu text="Actions" id="m2">
                      <af:commandMenuItem text="Delete" id="cmi1"
                                          actionListener="#{deptBean.deleteRow}"
                                          partialSubmit="true" immediate="true"
                                          accessKey="D" accelerator="control alt R"
                                          partialTriggers="deptTable"/>
                      <af:commandMenuItem actionListener="#{bindings.Last.execute}"
                                          text="Last" accelerator="ctrl alt L"
                                          accessKey="L" partialSubmit="true"
                                          id="cmi2" partialTriggers="deptTable"/>
                    </af:menu>
                  </f:facet>
    {code}
    Whenever you have a doubt on how to use a component you can always check the  ADF Rich Faces Demo: http://jdevadf.oracle.com/adf-richclient-demo/faces/index.jspx
    HTH,
    Maiko                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Add menu item for Batch Sequence?

    Hello,
    I've created a folder level script that will execute when Acrobat starts. The script adds a menu item, that when clicked, will call another function.
    I'm wondering if I can create a batch sequence and add a menu item for that as well? I basically just want to avoid going through the whole Advanced -> Doucment Processing -> Batch processing... -> and then find the batch sequence and click Run.
    I've seen plenty of examples for adding menu items that call folder level scripts, but nothing on batch sequences. Has anyone ever done this?
    Many thanks in advance!

    You can't create a menu item to a specific batch sequence. The closest you
    can get is to open the batch sequences window, using the execMenuItem()
    method and "BatchEdit" as the name of the command (I'm not sure it's still
    the same in Acrobat X).

  • Add menu item or icon to PA30

    Hello,
    Is it possible to add a menu item or an icon in the toolbar to add your own functionality to transaction PA30? I am trying enhancement PBAS0002 but I don't think that's it...
    Gr,
    Jaron Frenk

    Hi Jeron,
    Depends on what you want to do.  To change icons, you can use SE51-Screen Painter if you have a Developer Key.  Adding new tabs and and infotypes to those tabs is simple configuration - IMG: Personnel Management --> Customizing Procedures --> Infotype Menus --> Infotype Menu --> Infotype Menu.  Here you set up which infotypes appear on which tabs.  In the second step Determine Choice of Infotype Menu, you define which tabs appear in PA30. 
    So the question is - What are you trying to accomplish in PA30?
    Paul

  • There is no Exit menu item on my Files menu, can't add Adobe Acrobat Document to Applications.

    Firefox 3.6.12, Reader 9.4, (reinstalled).
    Firefox downloads a pdf file rather than opening it.
    Adobe Acrobat Document is not listed as an application (Tools>Options>Applications from FF menu).
    FF support page suggests opening profile, then File>Exit and deleting a file. However, there is no Exit option on my File menu.
    The Adobe forum feels that this is a Firefox problem, especially since Reader works file with both IE8 and Chrome.
    I want to make it work in Firefox....any ideas?
    Thanks.

    Solved with a workaround. Initial confusion was that Exit was referring to the main Firefox browser, not the window that opened with File. Then had to delete the dll file suggest by Mozilla support. There was also an apparent conflict between Adobe Acrobat and Reader.
    Working for now.

  • Missing menu items in the 'File' menu? Missing 'Place..' option?

    Hello there!
    I use photoshop everyday to edit pictures and thumbnails for Youtube and videos, but recently I've noticed that the 'Place' option from the File Menu has gone missing? I've checked to see if I might have accidentally hidden the visibility of 'Place' within the File Menu, but it doesn't even appear in the Hidden Menu settings? I have no idea how this happened, but I think it may be a plugin issue, because I cannot find one trace of it within the Photoshop application! Any help would be fantastic!
    Thank you!

    Have a read of this: Photoshop CC 14.2 update – Linked Smart Objects
    Glad I could help.
    Also always worth looking at "Whats new in the Help menu" Photoshop Help | New features summary

  • Foreach output from get-command, add menu item

    Hi
    I'm making a script to configure some basic settings for new servers, and one of the features in the script is to set ip-address on the network interface. 
    At some servers there are several network interfaces, and I would like to create a menu based on the output from a get-query(Get-NetAdapter | select Name). Setting the ip-addresses is okay, but I'm having a problem creating a menu.
    What I want to do: If there is more than one NIC, create a menu with each network interface.
    Any clues?

    I didn't work that in, because I had no clue what you were trying to do when I initially wrote it.
    This version returns an object that you can work with ($selectedNIC) :
    $i = 1
    $menuList = @()
    $menuList = Get-NetAdapter | ForEach {
    $props = [ordered]@{
    'NIC Number'=$i
    Name=$_.Name
    InterfaceDescription=$_.InterfaceDescription
    ifIndex=$_.ifIndex
    Status=$_.Status
    MacAddress=$_.MacAddress
    LinkSpeed=$_.LinkSpeed
    New-Object PsObject -Property $props
    $i++
    $menuList | Format-Table -AutoSize
    $nicChoice = Read-Host 'Enter the NIC Number to process'
    $selectedNIC = Get-NetAdapter -InterfaceIndex ($menuList[$nicChoice-1]).ifIndex
    $selectedNIC
    Don't retire TechNet! -
    (Don't give up yet - 12,420+ strong and growing)

  • I want to access the "Page Setu " menu item of the "File" menu of the Netscape using Applet or JavaScript so that i can remove the header and footer from the page that will be printed.

    A print command should be given from a button on the page. Hope someone helps me

    If you have secondary hard drives or other writable volumes connected to your Mac, each contains an invisible Trash folder named .Trashes at the root (top) level of the volume, which in turn contains an invisible Trash folder for each user.
    -from -> Solving Trash Problems.
    Clinton

  • How to remove the menu items when remove Add-On

    I have built an SAP B1 add-on. Now when I remove the add-on the exe is still running as a process and the menu items are not removed. How do I take care of them

    hi.
    I am using below code... for killing the exe at process
    but i am not understood menu items.
    what type of menu items..
    once close the b1 where is menu items..
    can u plz explain..
      Private Sub app_AppEvent(ByVal EventType As SAPbouiCOM.BoAppEventTypes) Handles objApplication.AppEvent
            Try
                Select Case EventType
                    Case SAPbouiCOM.BoAppEventTypes.aet_ShutDown
                        objApplication.MessageBox("A Shut Down Event has been caught" & _
                            Environment.NewLine() & "Terminating 'Add Menu Item' Add On...")
                        '// terminating the Add On
                        ' oApplication.SetMessage("SAP Business One is Shutting down..", SAPbouiCOM.BoStatusBarMessageType.smt_Warning)
                        System.Windows.Forms.Application.Exit()
                    Case SAPbouiCOM.BoAppEventTypes.aet_CompanyChanged
                        objApplication.MessageBox("A Shut Down Event has been caught" & _
                            Environment.NewLine() & "Terminating 'Add Menu Item' Add On...")
                        'oApplication.SetMessage("Company has been changed.", SAPbouiCOM.BoStatusBarMessageType.smt_Success)
                        System.Windows.Forms.Application.Exit()
                    Case SAPbouiCOM.BoAppEventTypes.aet_ServerTerminition
                        objApplication.MessageBox("A Shut Down Event has been caught" & _
                            Environment.NewLine() & "Terminating 'Add Menu Item' Add On...")
                        'oApplication.SetMessage("All Add-on are Shutting down..", SAPbouiCOM.BoStatusBarMessageType.smt_Success)
                        System.Windows.Forms.Application.Exit()
                    Case SAPbouiCOM.BoAppEventTypes.aet_LanguageChanged
                        objApplication.MessageBox("A Shut Down Event has been caught" & _
                           Environment.NewLine() & "Terminating 'Add Menu Item' Add On...")
                        ' oApplication.SetMessage("System Language has been changed.", SAPbouiCOM.BoStatusBarMessageType.smt_Success)
                        'Case SAPbouiCOM.BoAppEventTypes.aet_CompanyChanged, SAPbouiCOM.BoAppEventTypes.aet_LanguageChanged, SAPbouiCOM.BoAppEventTypes.aet_ServerTerminition, SAPbouiCOM.BoAppEventTypes.aet_ShutDown
                        '    System.Windows.Forms.Application.Exit()
                End Select
            Catch ex As Exception
                'oApplication.StatusBar.SetText(ex.Message)
            Finally
            End Try

  • "open recent file" menu item - 2 issues / aspects (Mac & Windows)

    regarding the  "open recent file" menu item in the File menu.
    1)   should have a way to "clear recent items".  Most software solves this by appending an item "Clear Recent Items" to the bottom of the list of aliases that springs forth from the menu.
    2) Further, in the preferences it should be able to be set to 0 to prevent the function entirely, not just natural #s 1-99.  This is the case in Windows Adobe REader, and on the Mac it was the case the last time I was able to check, but due to the bugs in 9.1.x regarding the ability to handle a case-sensitive file system I haven't been able to even open the preferences on the mac for a while.

    Michael:
    Thanks for your quick reply.
    Please note that this issue:  "open recent file" menu item that is not clearable, nor is the system preference able to be set to retain 0 files,
    has absolutely nothing to do with the file system issue.  It is just a design choice (or oversight or bug depending on your point of view).
    It is an issue of security/privacy to not have the Reader keep a list of recently viewed files, or to at least allow the user to clear the list.
    Thanks again for your time, interest, and speedy reply.
    Cheers!

  • Add-on menu item not added

    Applies to: Firefox 33.0 and 34.0 (beta)
    Platform: Android 4.4.4 on Nexus 5 32 GB
    When I install an add-on that should add an item to the Firefox menu such as Quitnow or LastPass, the new menu item does not show up. With LastPass, that breaks the add-on entirely since you can't log into the service. With Quitnow, the add-on is rendered similarly useless.
    I have tried clearing app cache/data, uninstalling and reinstalling Firefox, and doing a factory reset on the phone. Results were always the same. No other add-ons were installed.
    Is there a method to get these sorts of add-ons to install correctly?

    The issue isn't that I can't close Firefox. I know that can be accomplished other ways, as you stated. The issue is that add-ons such as the ones listed that SHOULD be able to add menu items aren't installing properly/completely. Thus, the LastPass add-on is entirely broken because I can't log in and set it up as this is done via selecting a menu item that isn't there.
    I only brought up the QuitNow add-on because it's another add-on that should add a menu item, but doesn't. Thus it seems to be a general problem with installing FireFox add-ons and not limited to just one add-on.
    There are no Developer Options enabled. I installed Firefox and the extension on a freshly reset phone using the factory image from Google and had the same issue.

  • [TUTORIAL] Context Menu to export EML files

    Hello there folks!
    I'm pretty new to the topic of C3PO, GW and all the Novell stuff and one of my tasks was to "code an export mechanism for GW8 thats lats us save e-mails to our storage system". Ok, that was a hammer. But wrapping my head around it and starting to error out the things got me pretty far and I guessed it was tutorial material. So here we go:
    @Moderators: This is the thread that has everything in it. the other one can be deleted.
    This tutorial is intendend for C# only. I don't like VB and I'm too dumb for C++ so if you need it for another dialect you need to work it out your self.
    Agenda:
    Needed packages
    C3PO wizard
    Loading to Visual Studio 2010
    Needed Imports/References
    Simple MessageBoxing
    Export Code
    Registering and caching the .DLL
    Testing (please help me with a better way here)
    1. Needed packages
    the novell-gwc3po-devel-2012.11.15.zip file (unzip this after downloading)
    an installed version of Visual Studio 2012 C# (or if you want to work with a different dialect choose another)
    cmd access to some of the registering tools:
    It may be the best thing to set tose paths up in you env variables. Allthough when running the cmd with administrator privileges you can't use regasm from env variables and need to cd to the directory.
    RegAsm (regasm.exe): C:\Windows\Microsoft.NET\Framework\v4.0.30319 (the version depends on the target)
    GACUtil (gacutil.exe): C:\Program Files(x86)\Micrsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ (this path is also dependent on your target framework version, I chose .NET4)
    StrongName (sn.exe): C:\Program Files(x86)\Micrsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ (this path is also dependent on your target framework version, I chose .NET4)
    a good beverage :D (you should obtain multiple of these :D)
    2. The C3PO wizard
    In my case I wanted to add the functionality via the context menu. So the code executes when right-clicking on one or multiple messages displays another menu item and is clickable.
    This is pretty easy to realize via the C3PO wizard. You'll find it in the downloaded and extracted novell-gwc3po-devel-2012.11.15.zip from above. Start it (it is located in extracted-zip-folder/gwc3po-FILES/C3POWizard/C3POWizard.exe) and setup your project:
    Setup the project in the wizard step 1
    I usually setup the Wizard inside my Visual Studio 2010 projects folder, create a new folder there with the name of the project and check the options i want to have.
    In the next step I chose which type of View should display my custom context menu. Since I was only interested in exporting and working with e-mails I chose "GW.MESSAGE.MAIL" and added it to the bottom list via, you guessed it, "Add".
    Setup theView that invokes the new context menu item
    In the next step you I had to setup a new entry for the context menu. You could make side-droppable menus here etc. But for me a simple "Add Menu" was enough. Give it a name of your choice (beware: I'm yet to find out where to change this setting in the source files).
    Creating a Menu Item in step 3
    Click through next and the wizard will sum up you choices. In the next dialog window you will be prompted to specify the language you want the code to be generated. I chose .NET C#.
    In the prompt after that you will be asked if the wizard should create a .DLL-project. You click yes.
    Quit the wizard with the "Done" button.
    3. Loading to Visual Studio 2010
    Open up your Visual Studio and go to File -> Open Project. Navigate to the folder where you just created the files with the C3PO-Wizard. and open up the .csproj file.
    All the files get loaded and it seems quite well. but now it's time for some other stuff: Signing, or better, providing a key for signing.
    Allthough the README.txt (also in your project folder) states this is not neccessarily needed I did not get it to work without a key file.
    Open up a terminal and tpye in sn /? to see if the environment variables work. If not you can yuse the abolute path to sn (see: 1: Needed packages). If everything works as expected you can generate your keyfile with sn -k <PathToYourProject>\Archive.snk.
    In Visual Studio, go to Project -> <ProjectName>-Properties -> Signing -> Sign assembly [x] -> Search and pick the .snk-file you just created.
    Good. A first compilation of the project with F6 should rumble through without problems. Go to <ProjectFolder>\bin\Release and copy the .dll files to <GroupWiseInstallPath>.
    After that you need to open a cmd windows as administrator and cd to the RegAsm.exe directory and execute the following: [I]regasm "<GroupWiseInstallPath>\<TheDllName>.dll". Then execute gacutil -i "<GroupWiseInstallPath>\<TheDllName>.dll".
    RegAsm will register the extension to the Windows registry and GACUtil will cache the .dll content to make it available to GroupWise.
    You need to re-cache the .dll everytime you compile in VS. So basically the workflow is Compile -> Copy dll to GroupWise directory -> re-cache with gacutil -i -> Start Groupwise
    I have not found a method to post-build execute a script that does that. Problem is the copying and the gacutil caching (both must be done as administrator).
    IIf everything worked you see a new entry in the context menu when right-clicking a mail in Groupwise. When you click it, there will appear a message box.
    The MessageBox is defined in GWCommand.cs L. ~125
    4. Needed Imports/References
    Since we got the skeleton to compile and function properly, it's time to get our own code in there. FOr rapid prototyping I do all the stuff in GWCommand.cs.
    Go to Project -> add Reference -> COM and select "C3POTypeLibrary", "GroupWareTypeLibrary, "GroupWiseCommander", "GroupWiseConnectorLibrary" and click OK. The selected entries now appear in the project explorer.
    5. Simple MessageBoxing
    A thing I like to do (because I'm not a very good programmer) is to get all sorts of infos to get displayed with
    Code:
    MessageBox.Show();
    Just fling it in the code and see what get's where etc. An important thing is allready in the comments of the file.
    It is this line:
    Code:
    C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    . Uncomment it and play around with the myCL-object in your code.
    The myCL has some properties we will use later on such as myCL.SelectedMessages which is exactly what we need for our archive functionality.
    6. Export Code
    Now we get to the code:
    With the
    Code:
    ClientState
    dug up in the code we can pass the
    Code:
    SelectedMessages
    into a
    Code:
    MessageList
    . Over this MessageList we will iterate and save each
    Code:
    Message
    with the so called
    Code:
    GroupWiseCommander
    to our disk. well that sounds simple. And, well after digging through a lot of threads here on the forum and the documentation, it is.
    Here is the Execute() method from GWCommand.cs:
    It has comments that should serve as a documentation.
    Code:
    public void Execute()
    try
    switch (m_PersistentID)
    case WIASSArchivButton.vWIASS:
    //C3PO WIZARD Put execute command code here for WIASS Context menu.
    /* this was in the comments and is essential!
    * the myCL object provides us everything we need to interact with the messages */
    C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    // get the selected messages
    object o = myCL.SelectedMessages;
    // and convert the SelectedMessages to a MessagesList
    MessageList ml = (MessageList)o;
    // iterate over all the selected Messages
    // this was tricky: the index of the MessageList starts by 1 and not at 0
    for (int i = 1; i <= ml.Count; i++)
    // the .Item() method expects either a string or a long
    // see http://www.novell.com/documentation/developer/groupwise_sdk/gwsdk_gwobjapi/data/h20s5bdo.html
    long index = (long)i;
    // instantiate a Message object to get access to the different properties like subject, sender etc
    GroupwareTypeLibrary.Message oMessage = (GroupwareTypeLibrary.Message)ml.Item(index);
    // instantiate a GroupWiseCommander
    // this is the interface to the TOKEN API
    // TOKENS: https://www.novell.com/developer/documentation/gwtoken/index.html
    GroupWiseCommander.GWCommander cmdr = new GroupWiseCommander.GWCommander();
    // the GWCommander has an Execute() method that is able to take certain tokens kind of like SQL
    // lets build the token (the complete list is huge and awesome) to save our Messages
    // ItemSaveMessage(): https://www.novell.com/developer/documentation/gwtoken/gwtokens/data/hbt0bd7x.html
    string tokenCommand = "ItemSaveMessage(\"" + oMessage.MessageID + "\"; \"C:\\archiv\\" + oMessage.MessageID + ".eml\"; 900)";
    /* what happens here ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ is that we build us a TOKEN command that the
    * GWCommander is able to execute.
    * the actual command is ItemSaveMassge()
    * everything between the semi-colons are the parameters:
    * \"" + oMessage.MessageID + "\" : builds an ANSISTRING of the MessageID which we get from the oMessage onject
    * \"C:\\archiv\\" + oMessage.MessageID + ".eml\" : build an ANSISTRING of the output filename
    * 900 is the type we want to export. 900 stands for Mime
    * CAUTION:In this example I use C:\archive\ as the destination folder. It must exist and be writable to the program
    // now that we have setup our command we can get it executed by the commander
    // the result is sort of a callback variable
    string result ="";
    cmdr.Execute(tokenCommand, out result);
    /* here can the error handling be done with the result string
    break;
    default:
    MessageBox.Show("Unsupported Case", "Error", MessageBoxButtons.OK);
    break;
    //A way to get the GroupWise client state with newest interface
    //C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    //uncomment the code below to unblock the base command
    //IGWCommand baseCmd = (IGWCommand)WIASSArchivButton.g_C3POManager.CreateGWCommand(m_objBaseCmd);
    //baseCmd.Execute();
    catch (Exception e)
    MessageBox.Show("Error Executing GWCommand: " + m_PersistentID.ToString() + " Error: " + e.Message);
    return;
    7. Registering and caching the .DLL
    After that you need to open a cmd windows as administrator and cd to the RegAsm.exe directory and execute the following: regasm "<GroupWiseInstallPath>\<TheDllName>.dll". Then execute gacutil -i "<GroupWiseInstallPath>\<TheDllName>.dll".
    RegAsm will register the extension to the Windows registry and GACUtil will cache the .dll content to make it available to GroupWise.
    You need to re-cache the .dll everytime you compile in VS. So basically the workflow is Compile -> Copy dll to GroupWise directory -> re-cache with gacutil -i -> Start Groupwise
    8. Testing (please help me with a better way here)
    Is there a good way to hook every thing up together to jsut stay in VS , compile, files get copied, registered, cached and GW starts?
    Thanks for reading!
    I wrote this up to have a documentation for myself and others. please let em know if you need help or anything is missing or not clear. It's certainly not a total noob guide and I expect a bit of knowledge to be honest.
    Regards
    Sebastian

    Originally Posted by Username951
    Multiple email selection should be possible, but only those emails that are fitting some requirements should be stored finally in database.
    One requirement is for example that a keyword like "ISSUE" appears in the email subject
    (followed by a ":", a "space" and some characters that can be converted to an integer value),
    multiple, leading "Fwd: " and/or "Re: " should be handled well,
    subject should be handled case-in-sensitive.
    This sounds like you should implement some sort of SelectedMessagesValidator class just to keep it clean.
    Originally Posted by Username951
    So here are my find outs, remarks, etc.:
    1.) Visual Studio should be started under admin. rights.
    Then you can write a post-build event (batch) that copies, "regasm"s and "gacutil"s everything.
    As said this works fine for me.
    But note that unfortunately the paths to "regasm" and "gacutil" changed
    (compared to the time where you wrote your tutorial).
    Definitely. That way, as you mentioned, the post build scripts integrate very well.
    Originally Posted by Username951
    2.) The "Novell C3PO" wizard was downloaded and worked out as described in our tutorial.
    One important step was to use "GW.MESSAGE.MAIL" and not "...BROWSER..." or something else.
    I can not figure out, where you have the GW.BROWSER thing from, but in my examples I allways used GW.MESSAGES.MAIL
    Originally Posted by Username951
    The wizard created finally the basic C# (.NET framework 2.0) project.
    This project was loaded in Visual Studio 2013, automatically converted to "newest version"
    and finally was a ".sln" made.
    Yes. You can leave it at 2.0. I just have the 4.5 installed so i will target this version
    Originally Posted by Username951
    "oracle.dataaccess"
    -> Note that the "Copy Local" property must be set to "true"!
    (This property will be reset to "false" after a successful (re)build.
    So check this and change it to "true" for the first build!
    This must be made only once because after a successful build is this .dll known;
    keywords: GAC -> cached
    But note that "successful" means also that the post-build event ran flawless!)
    This is quite specific to your case since my example on exports a flat EML file to the hard drive
    Originally Posted by Username951
    2.) regasm.exe needs strong names.
    So a "cmd" with admin. right was opened,
    a
    "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\sn.exe" -k "C:\Users\<username>\Documents\Visual Studio 2013\Projects\GWSaveToDatabase\GWSaveToDatabase.sn k"
    fired
    and the created "GWSaveToDatabase.snk" file added to the solution.
    I don't want to be picky, but it's gacutil that needs the strong names. ragasm is not complaining
    Originally Posted by Username951
    (Development) Remarks
    1.) While I used the "C3PO" wizard first time I used "Add Menu" item - as you said in your tutorial! :-(
    And that is definitely wrong!
    See:
    The result was a C# project that does not show any new context menu entry.
    So I tried at the next wizard run "Add Menu Item".
    The wizard created again a C# project but still no new context menu entry in the GroupWise client.
    (And that after all needed steps
    like
    copy to GroupWise installation path,
    regasm and gacutil over all .dlls
    etc.
    were successful be made).
    It took a complete day to get the idea to "merge" the two wizard created projects!
    Why merging?
    Because the second project contained a "const" which were used in the switch statement of the "Execute()" method
    (with the same meaning like your "WIASSArchivButton.vWIASS" - see your code snippet above!)
    and the "CustomizeContextMenu(...)" method in "CommandFactory.cs" looked also different
    while the first project does not contained something similar.
    ( For example:
    The "CustomizeContextMenu(...)" method had more statements.
    And that made more sense to me compared to the first wizeard created C# project.
    Since I uploaded a better example this is obsolete.
    Originally Posted by Username951
    So I ASSUME that the second project would work but it does not because of regasm / gacutil behaviour.
    Means I believe it would work when all
    with regasm registered
    and
    with gacutil to the cache added "things"
    would be "un-registerd" and "un-cached".
    This is, as I assume, due to the Interop.C3POTypeLibrary.dll. This must me cached every time the project is build. maybe you could use gacutil -i Interop.C3POTypeLibrary.dll -f to force the recaching
    Originally Posted by Username951
    So, finally I took the second, wizard created C# project and copied the "const", adjusted the "Execute()"
    and "CustomizeContextMenu(...)" methods, etc.
    After that the context menu were shown in the GroupWise client!
    Thats is correct. But I never had to do this. The thing is, that the "Add Menu Item" is giving you the opputunity to specify a command, which the "Add Menu" doesn't.
    Originally Posted by Username951
    2.) The next issue was that the context menu was added as often as many emails were selected.
    Means: For example: Three selected emails ends up in three time added context menu.
    Solution:
    Checking
    var existsAlready = menuItems.Item("...");
    if (existsAlready != null)
    return;
    in "CustomizeContextMenu(...)" method and leaving the method under shown circumstances.
    I added a fix for this in the second post, but it isn't working in GW2012 anymore. I have a very ubly fix for that in my new code.
    Originally Posted by Username951
    3.) The by the wizard created registry path contained the version number "5.0".
    This may confuse but it is finally ok. No need to change here anything!
    On the other side:
    It will NOT work when the registry entry
    "SOFTWARE\\Novell\\GroupWise\\5.0\\C3PO\\DataTypes \\...."
    will be changed/"adjusted to that GroupWise client version you are currently using"!
    This is all part of the official documentation and wasn't touched by Novell since quite a long time.
    I think i will make a github repository in the futer as a proof of concept and kind of a accessable documentation for everyone.

Maybe you are looking for

  • Photoshop Elements 8.0 Error 6

    I recently reinstalled windows 7 on my PC and now my Adobe photoshop elements 8.0 won't work when I try reinstalling it. It comes up with this error message "This product has encountered a problem which requires you to restart your computer before it

  • X79 Motherboard for drives

    First let me think the many knowledgable folks who answer questions here. I have been reading for weeks. I am buying for a new build which I will use for LR, Photoshop, and Premier Pro,  (plus ProShow Producer.) I am an enthusiast who does projects f

  • Transporting Georaster Data using datapump

    Hi all, I'm trying to use datapump to transport my schema from one database to another. However i have problem with my georaster data. MAP Name Null? Type ID NUMBER(38) GEOR SDO_GEORASTER MAP_RDT Name Null? Type RASTERID NOT NULL NUMBER PYRAMIDLEVEL

  • Texts changed from phone number to email?

    Recently a contact informed me that my texts are being sent out with my email address instead of my phone number?  Does anyone know how to change this so that the phone number is sent out instead of my email address?

  • [SOLVED] /dev/root is not a valid block device

    After trying to boot my system after a few days of it remaining off, it fails to boot with: Booting the kernel. ERROR: resume: hibernation device '/dev/sda9' not found mount: /dev/root is not a valid block device You are now being dropped into an eme