How To: Reference LabVIEW VIs in Memory from a Compiled Application?

Hello all! This is my first post on these boards despite the fact that I have been doing LabVIEW for almost 8 years...so go easy on me!
Basically my issue is this: I want to write a compiled application for my team to use to help us have a standardized tool to push VI help tip information. So I created a nice front panel, gave it memory storage via XML to remember info you might want to not have to type over and over again. I also gave it some formatting options, etc. Overall, a nice tool to speed up a repetitive task.
However, it runs great as a VI, but compiled does not work at all and I am sure many of you can see where this is going. I have cobbled together some snippets of code found on these boards to collect a list of references and names of all the VIs in memory that are not currently running. Then I use a ring control to parse which VI I want to target and then push the parsed and formatted help tip to that VI. But the reality is apparently that LabVIEW and a compiled application do not share the same memory allocation, because they are separate application instances.
Is there ANY way around this?
I tried one thing that seemed to make sense, but so far has resulted in the same thing. I tried to do a type def call by reference with an asynchronous call and a wait on asynchronous call function to return the reference list. However, even though this bit of code is still a VI and NOT part of the compiled code, it still somehow picks up the application instance of the owning app, and therefore does not see any of the open VIs in memory that LabVIEW controls.
Any help would be immense, as I am going nuts trying to figure this out!
Info: LabVIEW 2012.f3
I am also attaching a screen cap of the block diagram of the VI that collects the references.
Thanks in advance!
South West Applied Technologies
Senior LabVIEW Developer

Well you run into a security limitation of VI server here. Many methods and properties are not possible to be accessed through a remote application instance. Any Application instance that is opened with an address is considered a remote instance. Basically if you leave the address open in the Open Application, LabVIEW shortcuts to the internal instance. If you connect some address even if it is "localhost", LabVIEW goes through the TCP/IP socket for any and all methods and proeprties and the application instance is considered a remote instance.
Open your floating help window, and place your cursor above your property. Notice the text in there: Remote Access disallowed: Yes.
The reason for this is, that if this method was available over remote connections, anyone with access to your network could connect to that LabVIEW instance and basically discover any and every VI you have currently loaded and even download them to their own computer. And this can not be fixed. This security is not possible to circumvent other than hacking into LabVIEW itself.
I guess this kills your entire idea. An executable can't connect to another executable or the LabVIEW development environment other than through a remote connection! That is due to strict process isolation rules in all modern OSes. The only possible workaround I could think is to create VIs for all remote access protected methods and properties, copying them to every LabVIEW installation you want to access with your shell (and that likely would have to be done through the network as the according methods in the VI server interface are also remote access protected) and then call those VIs through VI server.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions

Similar Messages

  • How do I put all the songs from a compilation album into the same /album/folder in Itunes v12

    How do I put all the songs from a compilation album into the same /album/folder in Itunes v12 i know in other versions it was via get info but as all of the tunes have the same album title , I am not sure what tio change to achieve this ?

    I don't see your screenshot but I assume you're starting with something like this, i.e., the compilation split into multiple albums:
    If you select all the items that you want to be in a single album, right-click > Get Info you'll see this:
    As you say, in iTunes 12 you don't see a field to enter a distinct Album Artist value.  You can, however, address this by clicking the Add Field button and selecting Album Artist:
    That makes the field available in the metadata dialog so that you can enter the required value:
    You can also show the pre-iTunes 12 version of the dialog by holding the SHIFT key when selecting Get Info - this allows you to enter the Album Artist directly:

  • How do I invoke a Adobe Plugin from another Client application

    Hi,
    I have written a plug in for Adobe.
    I need to know how do i invoke this plug in from an external application
    For
    e.g a VB.NET Form has a button which on clicked would invoke this plug in
    Thanks for your suggestions in advance

    Leonard
    I would like to know how to do it
    I know that you can use IAC to call a plug-in
    I need to know the function call that i need to make in order make it happen
    MenuItemExecute doesnt seem to work for me.. or maybe i am doing something wrong there
    I can call menuitemexecute("SaveAs") but menuItemExecute("MyMenuItem")
    doesnt work
    Please advise

  • How do you pass an ActiveX Variant from an external application to LabVIEW?

    Background: I created a LabVIEW ActiveX server. I can access it with my external application (Matlab). I have a control variable in my LabVIEW executable. I want to use Active X to set the value of my control variable from my external application.
    Documentation: The only reference in the documentation for this task is in the Using ActiveX with LabVIEW in the LabVIEW 2009 help. It simply says "Use the variant control and indicator to pass data to or from ActiveX controls." I also went through all the ActiveX examples in the example finder and did not find any vis that passed variables using ActiveX.
    Questions:
    What should my control variable look like in LabVIEW? Should it be a refnum, a variant, or a data type? Does it have to be wired to a vi connector?
    Do I need to do any magic on this variable, such as change its properties?
    How do I pass the value from my external application to the variable in my LabVIEW executable?
    Thank you.

    Hello Lyn,
     The control variable should be a refnum and it would have to be wired to Automation Open with the correct reference.
    Here are some great examples of using ActiveX Server in LabVIEW
    LabVIEW Executable Used as ActiveX Server in LabVIEW
    http://decibel.ni.com/content/docs/DOC-9647
     Calling ActiveX Code from LabVIEW
     http://decibel.ni.com/content/docs/DOC-9073
    Andy Chang
    National Instruments
    LabVIEW Control Design and Simulation

  • How can i call a jasper report from a java Application

    Hi,
    i am chiranjit , currently i working in a web based ERP project, in this project as a report building tool we are using JasperReport wih eclipse plugin . in eclipse report's are generating very well but i am unable to call that report from a java application because i have no idea about the How to call a Jasper Report from a Java Application . so please send me the necessary class names, jar files names and programe code as early as possible.
    Chiranjit

    Ahh, kind of a duplicate thread:
    http://forums.java.sun.com/thread.jspa?threadID=631642
    @OP. You could have clarified your original post and the relationship of your question to java. You did not need a new thread.
    � {�                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to write to an XML file from JDE batch application?

    Hello everyone,
    I need to write data from a batch application to an XML file. I don't know how to use the XML business functions.
    I tried to use XML Publisher but the format is not the same as the client XML. The XML file has some customized format.
    I need to do it manually with business functions and ER. Please help me out.
    Some business functions I saw are Create XML document, XML Add element and XML Add attribute but the parameters are complex to
    use.
    Thank you very much.
    Edited by: Lovvy on Sep 8, 2010 2:58 AM

    The XML DB forum is better suited to your question.
    It also has a FAQ which details how to read and shred XML into tables as well as other common XML based questions...
    XML DB FAQ

  • How to fill out POST HTML forms from my Java Application?

    Hi -
    I am writing a little Java GUI program that will allow a user to fill out data from the GUI and then submit that data. When they submit the data (two text fields) I want to take the two text fields and submit them via the POST form method of a HTML document over the web.
    Here is what I got so far:
    host = new URL("http", "<my_address>", web port, "/query.html");
                InputStream in = host.openStream();
                BufferedInputStream bufIn = new BufferedInputStream(in);
                for (;;)
                    int data = bufIn.read();
                    // Check for end of file
                    if (data == -1)
                        break;
                    else
                        System.out.print ( (char) data);
                }What that code does is makes a URL, opens a stream, and reads the HTML source of the file at the specified URL. There is a form that submits data via the POST method, and I would like to know how to write data to specific forms and specific input types of that form.
    Then, I'd like to be able to read the response I get after submitting the form.
    Is this possible?
    Thanks,

    Here is how one of my e-books go about Posting
    I tryied in one of my projects and it works ok
    (Tricks of the Java Programming Gurus)
    There's another reason you may want to manipulate a URLConnection object directly: You may want to post data to a URL, rather than just fetching a document. Web browsers do this with data from online forms, and your applets might use the same mechanism to return data to the server after giving the user a chance to supply information.
    As of this writing, posting is only supported to HTTP URLs. This interface will likely be enhanced in the future-the HTTP protocol supports two ways of sending data to a URL ("post" and "put"), while FTP, for example, supports only one. Currently, the Java library sidesteps the issue, supporting just one method ("post"). Eventually, some mechanism will be needed to enable applets to exert more control over how URLConnection objects are used for output.
    To prepare a URL for output, you first create the URL object just as you would if you were retrieving a document. Then, after gaining access to the URLConnection object, you indicate that you intend to use the connection for output using the setDoOutput method:
    URL gather = new URL("http://www.foo.com/cgi-bin/gather.cgi");
    URLConnection c = gather.openConnection();
    c.setDoOutput(true); Once you finish the preparation, you can get the output stream for the connection, write your data to it, and you're done:
    DataOutputStream out = new DataOutputStream(c.getOutputStream());
    out.writeBytes("name=Bloggs%2C+Joe+David&favoritecolor=blue");
    out.close();
    //MY COMMENT
    //This part can be improved using the URLEncoder
    //******************************************************You might be wondering why the data in the example looks so ugly. That's a good question, and the answer has to do with the limitation mentioned previously: Using URL objects for output is only supported for the HTTP protocol. To be more accurate, version 1.0 of the Java library really only supports output-mode URL objects for posting forms data using HTTP.
    For mostly historical reasons, HTTP forms data is returned to the server in an encoded format, where spaces are changed to plus signs (+), line delimiters to ampersands (&), and various other "special" characters are changed to three-letter escape sequences. The original data for the previous example, before encoding, was the following:
    name=Bloggs, Joe David
    favoritecolor=blue If you know enough about HTTP that you are curious about the details of what actually gets sent to the HTTP server, here's a transcript of what might be sent to www.foo.com if the example code listed previously were compiled into an application and executed:
    POST /cgi-bin/gather.cgi HTTP/1.0
    User-Agent: Java1.0
    Referer: http://www.foo.com/cgi-bin/gather.cgi
    Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    Content-type: application/x-www-form-urlencoded
    Content-length: 43name=Bloggs%2C+Joe+David&favoritecolor=blue
    Java takes care of building and sending all those protocol headers for you, including the Content-length header, which it calculates automatically. The reason you currently can send only forms data is that the Java library assumes that's all you will want to send. When you use an HTTP URL object for output, the Java library always labels the data you send as encoded form data.
    Once you send the forms data, how do you read the resulting output from the server? The URLConnection class is designed so that you can use an instance for both output and input. It defaults to input-only, and if you turn on output mode without explicitly setting input mode as well, input mode is turned off. If you do both explicitly, however, you can both read and write using a URLConnection:
    c.setDoOutput(true);
    c.setDoInput(true); The only unfortunate thing is that, although URLConnection was designed to make such things possible, version 1.0 of the Java library doesn't support them properly. As of this writing, a bug in the library prevents you from using a single HTTP URLConnection for both input and output.
    //MY COMMENTS
    When you doing URL encoding
    you should not encode it as one string becouse then it will encode the '=' signes and '&' signes also
    you should encode all the field names and values seperatly and then join them using '&'s and '='s
    Ex:-
    public static void addField(StringBuffer sb,String name, String value){
       if (sb.length()>0){
          sb.append("&");
       sb.append(URLEncoder.encode(name,"UTF-8"));
       sb.append("=");
       sb.append(URLEncoder.encode(value,"UTF-8"));
    }

  • How do I remove an "orphaned" window from a closed application?

    Hi,
    Every now and then, I end up with an "orphaned" window on my desktop, left over from a closed application. Currently, I have a login window from the Screen Sharing application that's been spinning the spoked progress wheel next to "Connecting..." for an hour or so. I've already closed the Screen Sharing app, so it's not a straightforward thing to go into Activity Monitor and kill the process. I know that I can reboot the machine to fix this, but I'm wondering if someone might know how to fix this sort of thing without a reboot. Is there some app that I can use that can tell me what process is the "owner" of this window? Since the progress wheel is spinning and I can drag the window around, it would seem that some process has control of it, but I just don't know which one.
    Thanks,
    Ken

    Hi Carolyn,
    Thanks for the information, but maybe I didn't clearly explain what happened. I had the Screen Sharing app open, and then I properly closed it down by quitting the application. But one of its windows remained on the desktop. I went into Activity monitor, and the Screen Sharing app wasn't listed in the process list at all. So I'm guessing that this window isn't owned by the Screen Sharing app itself, but from some other process that was spawned by the Screen Sharing app that didn't close when I shut down the Screen Sharing app. Granted, this situation doesn't come up very often, but I've also seen it happen with Norton Antivirus, if I dismount a volume while there's a popup window doing a "scan on mount", with the result that the "scan on mount" window doesn't go away. So given that the process with the "friendly" app name no longer appears in Activity monitor, can you suggest any way to determine which of the running processes "owns" the still-present window?
    Thanks,
    Ken

  • Why does Labview hang when switching from one TestStand application to another?

    I have several 2013 TestStand applications that use a number of LabView 2013 VIs on a test computer.  When the operator closes one TestStand program and opens another often Labview does not close properly and so when TestStand tries to load the LabView VIs it hangs or just runs and every test that is affected by LabView fails.  The only potential issues that I know about are that two of the applications were created in LabView 2009 and then updated to 2013.  Then two other TestStand applications that were created in 2013 use the function "UnloadAllModules". 
    Are there any known issues with LabView 2013 that cause this or any ideas of what I might be doing wrong?
    Solved!
    Go to Solution.

    Hello Michael,
    I did find my issue.  In my case a VI was not getting closed properly in cleanup due to the previous command not passing the handler out correctly.  Thus this VI would remain open and when I ran another TestStand Sequence, when it tried to load that LabView VI it would just hang.  But the result of this error could be seen when I closed TestStand and LabView stayed open (since it was frozen) or when done running the sequence and closing it.  Then if you tried to pop-up LabView it would not show the starting splash screen because it had froze.
    I found the problem by turning on the show VI front panel option in TestStand for all of the VI calls.  The VI that stayed open was the problem VI.
    Thanks everyone who responded for your help!
    Kurtus

  • How do you run a (Word) Document from a Swing application

    I want to create a Word Document and then open it from a Swing application. If you can't do that directly, what else can you do to get that result.

    gwils wrote:
    How do you recover a word document on a macbook pro?
    Just as you do it on a Mac Pro or a Mac Mini.
    What version of Mac OS X? What version of MS Word?
    If you're thinking of the AutoRecover feature, you have to enable it first. If it was enabled, this
    <http://kb.iu.edu/data/ahnd.html#FindingfilesMac>
    will tell you what to do.

  • How to access a Portal User Info from a J2EE application?

    Hi,
    I have deployed a j2ee application in portal and its running fine.
    from that application i need to assign some roles to some users.i have the user id.
    so my doubt is can i access the portal user info from this j2ee application?i have some servlets in the j2ee application....can i get the portal user info from this servlet?
    plz help me
    regards,
    Visweswar

    Hi,
    Please check out this to get the portal user information from Java -
    WdClientUser class/Interface to aciehve this.
    Please check out these links on the same -
    WDClientUser.getClientUser IUser
    help needed
    Regards
    Lekha

  • How to move ADF HumanTask (ADF Project) from One BPM Application to ANother

    Good DAy!
    Problem
    We've created huge Project on ADF with difficult form and now we have to create the same (95%) form in another BPM Application
    Is it possible to migrate ADF Project from one BPM Application to Another???

    Hi,
    You can deploy the ADF Project as an ADF Library Jar file and reuse the taskflow from that jar file in another BPM Application.

  • How can i call a VB6 project from my java application using JNI

    hi
    can anyone tell me the procedure of calling a VB6 project from any java application using JNI
    if anyone does know then tell me the detail procedure of doing that. I know that i have to create a dll of that VB6 project then to call it from the java application.
    if anyone know that procedure of creating dll file of an existing VB6 project please reply
    please if anyone know then let me know

    Ahh, kind of a duplicate thread:
    http://forums.java.sun.com/thread.jspa?threadID=631642
    @OP. You could have clarified your original post and the relationship of your question to java. You did not need a new thread.
    � {�                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • How to make use of Windows authentication from my Java application

    I have a Java application, Instead I design one more login page for my application, I want to make use of Windows Authentication.
    How should I use that windows authentication in my java application
    can any help me in suggesting a solution

    How will they be able to access your application if they aren't users of the system?

  • How can access MS Outlook Calender information  from my Java application.

    People schedule meeting with some data on regular basis.
    I need to access the Exchange server from my Java application and get the meeting dates along with other data pertaining to meeting.

    I had the same problem, and I dont think (as far as my knowledge goes) there is any freeware that will enable Java to access Exchange server. But there are some commercial products that are available.
    Chk this link as an example: http://www.compoze.com/products_hme_desc.html
    good luck in the research
    -kms

Maybe you are looking for

  • 2.5mm to 3.5mm adapters difference

    Hello, does anybody know what the difference between AD-44 (http://europe.nokia.com/A4486274) and AD-54 (http://europe.nokia.com/A4487137)? they look very similar, but compatibility list is absolutely different... another thing I cannot understand -

  • Function Module to identify Where-Used list

    Hi All, Is any one aware of any Function Module(s) to identify where-used list of any given Info Object(s). I would like to use this in an ABAP Report. I do not want to use RSD1/metadata repository way. I was thinking of a way to write multiple selec

  • Harassment phone calls using Skype function (i.e. ...

    Note: I have sent an e-mail to the Support Team. Pending reply. Based on call history, my home and mobile numbers have been bombarded by phone calls (using Skype) from Skype user, who resides in another country. For example Time: 02:20 till 22:33 30-

  • JMS5007: Illegal connection factory access

    Hi, I'm getting this warning when my MDB is creating a connection to a queue to start consuming messages (onMessage method). The application works, but I'd like to know what this message really means and how to avoid it: JMS5007: Illegal connection f

  • Need help with a compilation errors

    Here is my code import javax.swing.*; import java.awt.*; import java.net.*; import java.awt.event.*; public class piratepanel extends JPanel implements Runnable      int appletx = 500;      int applety = 500;      Image blackpearl;      Image ship1p;