User32.dll GetGuiResources handle issue

Hi,
I need help in my LabVIEW 2009 vi.I am basically trying to get GDI object count for a process and log the same for certain amount of time (something like Windows task manager-but I intend to use LabVIEW for this purpose as a learning)
I have a prototype vi which gets process ID from a process name (say, notepad.exe), gets a handle to this ID and calls user32.dll [GetGuiResources] method to get the GDI object count. When I use c# for programming, I am able to get the GDI count, but when I follow the same steps in LabVIEW, I do not get the same. I have narrowed the problem to the last step where the 'handle' gets passed to user32.dll. I do not know what Iam doing wrong in the vi. The call to the method also seems fine- No error is reported! I am I doing something wrong while using type cast step?
Steps to reproduce issue: Launch notepad application and run c# file or LabVIEW vi. Observe we do not get the GDI count in case of LabVIEW.
Please suggest me a solution. I have attached both c# code and LabVIEW vi for reference.
Solved!
Go to Solution.
Attachments:
prototype.vi ‏13 KB
Program.txt ‏2 KB

Well, I really doubt that the .Net Object Handle is directly the Windows Handle value itself. This is rather a LabVIEW refnum wrapping the actual object which may or may not be the handle itself. So you can't just typecast this and hope for Windows to recognize it as a valid process handle.
Instead you should treat it as object and execute a Method on it to convert its internal value into a LabVIEW datatype such ans an Int64. ;-)
And btw. running your VI repeatedly will cause a huge memory leak. You have to close every object refnum properly in order to not have LabVIEW and .Net keep creating objects that stay lingering around until you close your LabVIEW app.
.Net has an automatic object deletion that marks all objects whose last referencing variable goes out of program flow scope for deletion. So there is no obj.dispose() or similar method necessary. LabVIEW handles that a little different for various reasons and only deletes objects automatically when the top level VI in whose hierarchy an object refnum was created goes idle.
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions
Attachments:
prototype.vi ‏15 KB

Similar Messages

  • How do you use the windows User32.dll Library functions to read variables from other applications that are running

    I am trying to read a text box from a programme running at the same time as my Labview application using calls to the Windows
    User32.dll. I believe I need to find the window handle for the 'form' containing this text string and use this together with
    various other defined input variables to access the sting.
    I have no experience of using this 'Call Library Function Node', but have an understanding of the 'C' programming language. Does anyone have
    example Labview code showing how this might be done.
    Thanks

    If you're trying to access information that's being displayed in the window of another application and that application has no ActiveX interface, then yes, Windows calls can be used. There's a very good example on calling DLLs that ship with LabVIEW. Open the Example Finder (Help->Find Examples) and switch to the Search tab. Enter "Call" in the search box and open the VI "Call DLL". Run the VI, select any of the examples, and click the "Open Example VI..." button. That shows you how to call a DLL.
    Now, given that you have no experience in calling DLLs, have only an "understanding" of C (which to me means you have never written something like a DLL), and don't seem to know that much about what Windows functions you may need, you're going to find this route pretty difficult, especially since you have to deal with Windows API calls, which are not always that easy to do from LabVIEW.
    Let me propose an alternate solution. Go over to http://www.autoitscript.com/autoit3/ and download AutoIt. This is an automation tool that allows you to automate just about anything you want. It has an ActiveX interface that you can call from LabVIEW. I've attached an example VI that shows you how to use it to get the value of a text box from one of the tabs in the computer "System Properties" control panel applet.
    Attachments:
    AutoIt Example (v7).vi ‏25 KB

  • I am getting this error message" firefox.exe entry point not found, the procedure entry point is ThreadDesktopComposited could not be located in the dynamic link library user32.dll" before Firefox opens up

    this is the only error message that comes up, then Firefox opens up

    This issue can be caused by a problem with the file c:\windows\system32\dwmapi.dll
    The file dwmapi.dll is a Vista file and should not be present in Windows XP.
    http://support.microsoft.com/kb/969155 - On a Windows XP-based computer with Family Safety installed, you receive an error message: “The procedure entry point IsThreadDesktopComposited could not be located in the dynamic link library USER32.dll”

  • When I click on the Mozilla Firefox icon on my desktop I get a message that says "The procedure entry point is Threaddesktopcomposited could not be located in the dynamic link library USER32.dll.

    When I click on the Mozilla icon on my desktop, I get the error message "The procedure entry point is Threaddesktopcomposited could not be located in the dynamic link library USER32.dll.
    == This happened ==
    Every time Firefox opened
    == I upgraded to the new version of firefox today (7/16/10)

    This issue can be caused by a problem with the file c:\windows\system32\dwmapi.dll
    The file dwmapi.dll is a Vista file and should not be present in Windows XP.
    http://support.microsoft.com/kb/969155 - On a Windows XP-based computer with Family Safety installed, you receive an error message: “The procedure entry point IsThreadDesktopComposited could not be located in the dynamic link library USER32.dll”

  • Webutil_c_api with user32.dll (ShowWindow method) crashes

    Hello,
    I am trying to hide a window by using the method ShowWindow of user32.dll.
    So I use the package webutil_c_api.
    It works, my window becomes hidden, but just after that, the Forms applet crashes with Internet Explorer.
    Here is the code :
    declare
         v_args webutil_c_api.ParameterList;
         v_param webutil_c_api.ParameterHandle;
         v_res pls_integer;
    begin
      v_args := webutil_c_api.create_parameter_list;
      v_param := webutil_c_api.add_parameter(v_args, webutil_c_api.C_LONG, webutil_c_api.PARAM_IN, 66152);
      v_param := webutil_c_api.add_parameter(v_args, webutil_c_api.C_INT, webutil_c_api.PARAM_IN, 0);
      v_res := webutil_c_api.invoke_long('user32.dll', 'ShowWindow', v_args);
      MESSAGE('ShowWindow -> ' || v_res);
    EXCEPTION
         WHEN OTHERS THEN
           message('Error code: '||to_char(sqlcode)||'  Txt: '||sqlerrm);
           PAUSE;
           raise form_trigger_failure;
    end;Notice : I had to hardcode the Window Handler 66152 because I'm not able to find it (there is another problem).
    Do you have some hints?
    Thanks,
    Nicolas.

    When it crashes, it produces a file that is placed on my desktop :
    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x2
    Function name=(N/A)
    Library=(N/A)
    NOTE: We are unable to locate the function name symbol for the error
          just occurred. Please refer to release documentation for possible
          reason and solutions.
    Current Java thread:
         at oracle.forms.webutil.cApi.CFunc.callInt(Native Method)
         at oracle.forms.webutil.cApi.CApiFunctions.invokeCApi(CApiFunctions.java:837)
         at oracle.forms.webutil.cApi.CApiFunctions.getProperty(CApiFunctions.java:144)
         at oracle.forms.handler.UICommon.onGet(Unknown Source)
         at oracle.forms.engine.Runform.onGetHandler(Unknown Source)
         at oracle.forms.engine.Runform.processMessage(Unknown Source)
         at oracle.forms.engine.Runform.processSet(Unknown Source)
         at oracle.forms.engine.Runform.onMessageReal(Unknown Source)
         at oracle.forms.engine.Runform.onMessage(Unknown Source)
         at oracle.forms.engine.Runform.processEventEnd(Unknown Source)
         at oracle.ewt.lwAWT.LWComponent.redispatchEvent(Unknown Source)
         at oracle.ewt.lwAWT.LWComponent.processEvent(Unknown Source)
         at java.awt.Component.dispatchEventImpl(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
         at java.awt.Container.dispatchEventImpl(Unknown Source)
         at java.awt.Window.dispatchEventImpl(Unknown Source)
         at java.awt.Component.dispatchEvent(Unknown Source)
         at java.awt.EventQueue.dispatchEvent(Unknown Source)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
         at java.awt.EventDispatchThread.run(Unknown Source)
    Dynamic libraries:
    0x00400000 - 0x00419000      C:\Program Files\Internet Explorer\IEXPLORE.EXE
    0x77F50000 - 0x77FF7000      C:\WINNT\System32\ntdll.dll
    0x77E60000 - 0x77F46000      C:\WINNT\system32\kernel32.dll
    0x77C10000 - 0x77C63000      C:\WINNT\system32\msvcrt.dll
    0x77D40000 - 0x77DCC000      C:\WINNT\system32\USER32.dll
    0x77C70000 - 0x77CB0000      C:\WINNT\system32\GDI32.dll
    0x77DD0000 - 0x77E5D000      C:\WINNT\system32\ADVAPI32.dll
    0x78000000 - 0x78086000      C:\WINNT\system32\RPCRT4.dll
    0x70A70000 - 0x70AD5000      C:\WINNT\system32\SHLWAPI.dll
    0x71700000 - 0x71849000      C:\WINNT\System32\SHDOCVW.dll
    0x71950000 - 0x71A34000      C:\WINNT\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.10.0_x-ww_f7fb5805\comctl32.dll
    0x773D0000 - 0x77BC2000      C:\WINNT\system32\SHELL32.dll
    0x77340000 - 0x773CB000      C:\WINNT\system32\comctl32.dll
    0x771B0000 - 0x772D1000      C:\WINNT\system32\ole32.dll
    0x74720000 - 0x74764000      C:\WINNT\System32\MSCTF.dll
    0x71500000 - 0x715FD000      C:\WINNT\System32\BROWSEUI.dll
    0x72430000 - 0x72442000      C:\WINNT\System32\browselc.dll
    0x75F40000 - 0x75F5F000      C:\WINNT\system32\appHelp.dll
    0x76FD0000 - 0x77048000      C:\WINNT\System32\CLBCATQ.DLL
    0x77120000 - 0x771AB000      C:\WINNT\system32\OLEAUT32.dll
    0x77050000 - 0x77115000      C:\WINNT\System32\COMRes.dll
    0x77C00000 - 0x77C07000      C:\WINNT\system32\VERSION.dll
    0x76670000 - 0x76757000      C:\WINNT\System32\SETUPAPI.dll
    0x5AD70000 - 0x5ADA4000      C:\WINNT\System32\UxTheme.dll
    0x63000000 - 0x63096000      C:\WINNT\system32\WININET.dll
    0x762C0000 - 0x76348000      C:\WINNT\system32\CRYPT32.dll
    0x762A0000 - 0x762B0000      C:\WINNT\system32\MSASN1.dll
    0x76F90000 - 0x76FA0000      C:\WINNT\System32\Secur32.dll
    0x10000000 - 0x1012D000      c:\program files\google\googletoolbar1.dll
    0x1A400000 - 0x1A47A000      C:\WINNT\system32\urlmon.dll
    0x71AD0000 - 0x71AD8000      C:\WINNT\System32\WSOCK32.dll
    0x71AB0000 - 0x71AC5000      C:\WINNT\System32\WS2_32.dll
    0x71AA0000 - 0x71AA8000      C:\WINNT\System32\WS2HELP.dll
    0x76C30000 - 0x76C5B000      C:\WINNT\System32\WINTRUST.dll
    0x76C90000 - 0x76CB2000      C:\WINNT\system32\IMAGEHLP.dll
    0x76B40000 - 0x76B6C000      C:\WINNT\System32\WINMM.dll
    0x76380000 - 0x76385000      C:\WINNT\System32\MSIMG32.dll
    0x6D510000 - 0x6D58D000      C:\WINNT\System32\DBGHELP.DLL
    0x71C20000 - 0x71C6E000      C:\WINNT\System32\netapi32.dll
    0x71B20000 - 0x71B31000      C:\WINNT\system32\MPR.dll
    0x75F60000 - 0x75F66000      C:\WINNT\System32\drprov.dll
    0x71C10000 - 0x71C1D000      C:\WINNT\System32\ntlanman.dll
    0x71CD0000 - 0x71CE6000      C:\WINNT\System32\NETUI0.dll
    0x71C90000 - 0x71CCC000      C:\WINNT\System32\NETUI1.dll
    0x71C80000 - 0x71C86000      C:\WINNT\System32\NETRAP.dll
    0x71BF0000 - 0x71C01000      C:\WINNT\System32\SAMLIB.dll
    0x76EE0000 - 0x76F17000      C:\WINNT\System32\RASAPI32.DLL
    0x76E90000 - 0x76EA1000      C:\WINNT\System32\rasman.dll
    0x76EB0000 - 0x76EDB000      C:\WINNT\System32\TAPI32.dll
    0x76E80000 - 0x76E8D000      C:\WINNT\System32\rtutils.dll
    0x75F70000 - 0x75F79000      C:\WINNT\System32\davclnt.dll
    0x722B0000 - 0x722B5000      C:\WINNT\System32\sensapi.dll
    0x75A70000 - 0x75B15000      C:\WINNT\system32\USERENV.dll
    0x76990000 - 0x769B4000      C:\WINNT\System32\ntshrui.dll
    0x76B20000 - 0x76B35000      C:\WINNT\System32\ATL.DLL
    0x76170000 - 0x761F8000      C:\WINNT\System32\shdoclc.dll
    0x74770000 - 0x747FF000      C:\WINNT\System32\mlang.dll
    0x63580000 - 0x63830000      C:\WINNT\System32\mshtml.dll
    0x75E90000 - 0x75F37000      C:\WINNT\System32\SXS.DLL
    0x6B700000 - 0x6B790000      C:\WINNT\System32\jscript.dll
    0x746F0000 - 0x74716000      C:\WINNT\System32\msimtf.dll
    0x746C0000 - 0x746E7000      C:\WINNT\System32\MSLS31.DLL
    0x76390000 - 0x763AC000      C:\WINNT\System32\IMM32.DLL
    0x76620000 - 0x7666E000      C:\WINNT\System32\cscui.dll
    0x76600000 - 0x7661B000      C:\WINNT\System32\CSCDLL.dll
    0x325C0000 - 0x325D2000      C:\Program Files\Office2003\OFFICE11\msohev.dll
    0x71A50000 - 0x71A8B000      C:\WINNT\system32\mswsock.dll
    0x71A90000 - 0x71A98000      C:\WINNT\System32\wshtcpip.dll
    0x76F20000 - 0x76F45000      C:\WINNT\System32\DNSAPI.dll
    0x76FB0000 - 0x76FB7000      C:\WINNT\System32\winrnr.dll
    0x76F60000 - 0x76F8C000      C:\WINNT\system32\WLDAP32.dll
    0x02C70000 - 0x02C83000      C:\Program Files\Labtec\Labtec Mouse Software\2.0\MOUDL32A.DLL
    0x76FC0000 - 0x76FC5000      C:\WINNT\System32\rasadhlp.dll
    0x6D350000 - 0x6D35D000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\npjinit13118.dll
    0x6D130000 - 0x6D15B000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\beans.ocx
    0x6D300000 - 0x6D316000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\jpishare.dll
    0x6D3F0000 - 0x6D4C7000      C:\PROGRA~1\Oracle\JINITI~1.18\bin\hotspot\jvm.dll
    0x6D220000 - 0x6D227000      C:\PROGRA~1\Oracle\JINITI~1.18\bin\hpi.dll
    0x6D380000 - 0x6D38D000      C:\PROGRA~1\Oracle\JINITI~1.18\bin\verify.dll
    0x6D250000 - 0x6D268000      C:\PROGRA~1\Oracle\JINITI~1.18\bin\java.dll
    0x6D390000 - 0x6D39D000      C:\PROGRA~1\Oracle\JINITI~1.18\bin\zip.dll
    0x6D020000 - 0x6D12B000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\awt.dll
    0x73000000 - 0x73023000      C:\WINNT\System32\WINSPOOL.DRV
    0x6D1E0000 - 0x6D21C000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\fontmanager.dll
    0x5ED00000 - 0x5EDC6000      C:\WINNT\System32\OPENGL32.dll
    0x68B20000 - 0x68B3E000      C:\WINNT\System32\GLU32.dll
    0x73760000 - 0x737A4000      C:\WINNT\System32\DDRAW.dll
    0x73BC0000 - 0x73BC6000      C:\WINNT\System32\DCIMAN32.dll
    0x0DD70000 - 0x0DFA2000      C:\WINNT\System32\ialmgicd.dll
    0x0DFB0000 - 0x0E02B000      C:\WINNT\System32\ialmgdev.dll
    0x6D340000 - 0x6D348000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\net.dll
    0x0FFA0000 - 0x0FFC1000      C:\WINNT\System32\dssenh.dll
    0x6D370000 - 0x6D37A000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\packager.dll
    0x0E860000 - 0x0E870000      C:\Program Files\Oracle\JInitiator 1.3.1.18\bin\JNIsharedstubs.dll
    0x76BF0000 - 0x76BFB000      C:\WINNT\System32\PSAPI.DLL
    Local Time = Tue Aug 29 08:53:29 2006
    Elapsed Time = 4
    # The exception above was detected in native code outside the VM
    # Java VM: Java HotSpot(TM) Client VM (1.3.1_04-b02 mixed mode)
    #

  • Does anyone have an example VI about how to call the animatewindow function in the user32.dll using CLN in Labview?

      I want to call the WinAPI function-animatewindow in user32.dll to produce some special effect when showing or hidding windows, but i don't know how to using this Win API to achieve my purpose?
      Does anyone have an example VI about this application?
      Thanks in advance for your help.

    You have to use the Call Library Function Node to call Windows API functions. The animatewindow function itself has some pretty simple parameters. You first need to get the window handle. There are a set of Windows API Function Utilities (32-bit) for LabVIEW that you can use. In there there is a VI (Get Window Refnum) that gets the window handle. It's a simple call to a Windows API function. You would call the animatewindow function in the same way. In this case there are 3 parameters: the window handle (returned by a FindWindow API call), a DWORD (32-bit integer) for the duration, and another DWORD for the flags.

  • Windows API dll (user32.dll) cause fatal error

    Hi,
    On a setup, we using a touch screen. The LabView Software is running on full screen. I need to deactivage my front panel if the screensaver is on to prevent user start anyting. I use SystemParametersInfoA from user32.dll and this is working good, except, if I quit the software. "myexe a fin a error and need to close" (someting like that, my XP is in french).
    I don't have issues in debug mode, this error happen in exe mode.
    I use LV 8.6.1. Do you have any idea why?
    Thank you
    Solved!
    Go to Solution.
    Attachments:
    test.zip ‏10 KB

    CFiset wrote:
    Thank, I will take care of this details. But, unfortunly, this not working.
    uint32_t SystemParametersInfoA(uint32_t SPI, uint32_t 0, uint32_t *value, uint32_t False);
    SPI = 114 = SPI_GETSCREENSAVERRUNNING
    If *value != 0, screensaver ON, else scresaver OFF
    Still have the fatal Windows error.
    Thank
    I noticed the Call Library Node having a rather strange path to user32.dll on the initial load. Do you happen to have copied that DLL somewhere and referencing it with full path in your VI?
    That is a very big NO-NO! user32.dll and many other Windows system DLLs do weird things to the system and are utterly bad behavioured if you try to load another copy from somewhere else on disk than the system directory. Just change the library name to user32.dll only and let Windows pick the right DLL from its system directory.
    Another problem with specifying the full path to a copy of such a DLL is that LabVIEW will think you need to have this specific DLL in a built application and will include it in the build. However your user32.dll is almost 200% VERY incompatible to just about any other Windows system out there, because of Windows version, Service Pack, and bug fix upgrades as well as different language versions of Windows.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • When trying to start firefox a message comes up " the procedure entry point IS Thread Desktop composited could not be located in the dynamic link library user32.dll" I then tell it okay as this is the only button it has abd it then takes me into the Add-o

    When trying to start firefox a message comes up " the procedure entry point IS Thread Desktop composited could not be located in the dynamic link library user32.dll" I then tell it okay as this is the only button it has abd it then takes me into the Add-on window and freezes up and I then have to reboot and avoid using firefox
    == This happened ==
    Every time Firefox opened
    == After trying to install Firefox upgrade and IE8 ==
    == User Agent ==
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4

    Taken at face value, you're having trouble with an Apple Application Support program file there. (Apple Application Support is where single copies of program files used by multiple different Apple programs are kept.)
    Let's try something relatively simple first. Restart the PC. If you're using Vista or 7, now head into your Uninstall a program control panel, select "Apple Application Support" and then click "Repair". If you're using XP, head into your Add or Remove Programs control panel, select "Apple Application Support", click "Change" and then click "Repair".
    If no joy after that, try the more rigorous uninstall/reinstall procedure from the following post. (If you've got XP, although the procedure is for Vista and 7, just read "Computer" as "My Computer", read "Uninstall a program control panel" as "Add or Remove programs control panel" and assume the system is 32-bit, and you'll be doing the right things.)
    Re: I recently updated to vista service pack 2 and I updated to itunes 10.2.1 and ever

  • With java how to call a function offered by user32.dll?

    Hi,everyone.
    Please think about my question.Now i want to retrieve all the user's
    information in NT OS.will it be possible? could it be done by calling a method
    of dll? i have tried to define a native method,but i got java.lang.UnsatisfiedLinkerror when i execute the class, what will be the problem?
    can you please offer me a piece of code like it. but the dll should be available with the OS,such as user32.dll,kernal32.dll ...ect, not the one using jni to generate.
    Thank you for suggestions.

    can you please offer me a piece of code like it. but
    the dll should be available with the OS,such as
    user32.dll,kernal32.dll ...ect, not the one using jni
    to generate.You cannot directly call C functions in this way. You have to use JNI. Have your native method written to normal JNI standards call the functions in the OS. Your native method will also have to take care of creating the data structures needed to make the OS call and also creating the Java data structure you want to return.

  • Win32 API user32.dll SendInput function help

    I'm looking for and example that uses the Win32 API user32.dll SentInput function.

    Hi, you find the required information in the MSDN online:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winprog/winprog/windows_api_reference.asp
    and more specific the "SendInput" at:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/sendinput.asp
    Regards,
    Mattias Ericsson
    Endevo (www.endevo.se)
    Gothenburg, Sweden

  • What are analogous shared libraries that can be called using a call library function to user32.dll and lvtoolbox.dll when using Linux and Mac?

    I am wondering if anyone is familiar with how to get similar information with a LV program using a Linux shared library as well as the corrolate Mac library to the Windows user32.dll and lvtoolbox.dll.  I specifically am trying to get system metrics such as screen resolution information and cursor information as well as being able to set mouse position.   I am trying to convert a LV Windows program to these other operating systems and I am unfamiliar with these platforms.
    Thanks for your time - I really appreciate it.

    There is no simple answer to that. On Linux you will likely have to call into X Server, which would be a pain to do, due to various versions and implementations of that. On the Mac there would be the difficulty that you can't call into the native ObjectiveC API but would need to find a Carbon API or something like that to do what you want.
    If you seriously want to do something like this for multiplatform, you should bite the bullet and start coding an intermediate shared library in C. This library would export a LabVIEW friendly C API and access whatever system API you need to have for the particular functions. But multiplatform programming on this level is a pain in the ass, no matter what.
    Message Edited by rolfk on 04-21-2010 08:26 AM
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • User32.dll Causing Error on Application Exit

    I have an application built into an exe with LabVIEW 8.2. It uses 1 simple call to user32.dll to determine if caps lock is on. When I build the application, it copies user32.dll to the 'data' subdirectory of my application. Everything works fine, however when I exit the program it throws a Windows error, "... has encountered a problem and needs to close..."
    Now the fun part. If I remove user32.dll from this directory, everything works fine. I guess it just goes out and finds the original user32.dll in the system directory and there are no errors when I exit. Replacing the file in \data causes the error again.
    The simplest thing would be to remove the call in my program as it isn't absolutely necessary (it just shows a warning when entering a password if caps lock is on), but there seems to be something weird going on because it only throws the error when using the dll it copied.
    Is there any way to stop the application builder from copying dlls? I couldn't find anything.
    Is there a way to force LabVIEW to release and cleanup any dlls it is using? If I could do this when the user exits, maybe whatever is causing this won't get left behind.

    Marc A wrote:
    I have an application built into an exe with LabVIEW 8.2. It uses 1 simple call to user32.dll to determine if caps lock is on. When I build the application, it copies user32.dll to the 'data' subdirectory of my application. Everything works fine, however when I exit the program it throws a Windows error, "... has encountered a problem and needs to close..."
    Now the fun part. If I remove user32.dll from this directory, everything works fine. I guess it just goes out and finds the original user32.dll in the system directory and there are no errors when I exit. Replacing the file in \data causes the error again.
    The simplest thing would be to remove the call in my program as it isn't absolutely necessary (it just shows a warning when entering a password if caps lock is on), but there seems to be something weird going on because it only throws the error when using the dll it copied.
    Is there any way to stop the application builder from copying dlls? I couldn't find anything.
    Is there a way to force LabVIEW to release and cleanup any dlls it is using? If I could do this when the user exits, maybe whatever is causing this won't get left behind.
    You should not copy system DLLs to other systems. That is a recipy for troubles. Make sure to reference user32.dll form inside the Windows System directory in your Call Library Node. LabVIEW will then see this as system library and not include it in the build. Any Windows system will have user32.dll in the system directory so there is really absolutely no need to distribute that with your app, (and actually it is legally not even correct).
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • User32.dll error in Safari 4

    I installed Safari 4 about a week ago. (previous Firefox user)
    everytime i click onthe Safari icon, either on the desktop,
    or in the quicklaunch toolbar, i get this window:
    *"safari.exe entry point not found"*
    "The procedure entry point IsThreadDesktopComposited could not be located in the dynamic link library USER32.dll."
    I click okay to get out of that window, and then Safari opens as usual.
    Works okay. But I don't know what those error messages are about.
    I've uninstalled and re-installed Safari 4 twice, but problem persists.
    Anyone know why this is happening? And how to correct this?
    thanks!

    Try this link: http://support.mozilla.com/tiki-viewforum_thread.php?locale=en-US&commentsparentId=378981&forumId=1
    The same thing happens with Firefox. The culprit seems be a Vista system32 file called DWMAPI.DLL that should not be in XP system32.
    Do what the link says and it should solve the problem.

  • Proxy 3.6 and user32.dll

    Hi,
    We just upgraded our proxy-servers to version 3.6. The specs of the
    servers are:
    - Compaq Proliant ML370
    - Pentium III 666 Mhz
    - 512 MB Memory
    - Compaq Smart 3200 controller
    - Madge Token ring controller
    - NT 4 server with sp 6a
    - raid 5 config
    On all our servers we get a user32.dll error (initialisation failed). It
    happens almost every day and causes loads of problems. The adminserver
    is not reachable anymore with the browser, the logfiles are not
    rotating, etc. Microsoft is looking into it as well, but hasn't come up
    with a solution.
    Is there anybody who experienced the same problem before? Does anybody
    have a solution?
    Many thanks,
    MJ

    I have the problem as well.

  • LabVIEW 2010 crash when calling user32.dll

    Interesting LabVIEW 2010 "feature" I discovered this morning.
    Attached are two identical VIs, one saved in 2010 and one saved in 2009.  These VIs were specifically written to demonstrate the bug I stumbled upon this afternoon.  Each VI when run should allow you to find a specific program (window) open in Microsoft Windows and bring it to the foreground.  It relies on "user32.dll" to perform this operation.  It also allows you to specify the calling convention for the function call.
    In LV 2009, either calling convention works, without error.  However, in LV 2010 the calling convention for the function must be "stdcall (WINAPI)" and not the default "C".  If the calling convention is "C" then LabVIEW crashes and closes without warning.
    If you happen to have both LV 2009 and LV 2010 on your computer, I would love to hear if this phenomenon is duplicated so that I can pinpoint whether the bug is LV 2010 related or is more specific to my personal setup.
    Thanks,
    ~David
    Solved!
    Go to Solution.
    Attachments:
    LV2010 test.vi ‏13 KB
    LV2009 test.vi ‏14 KB

    221113
    Return
    CLFN with the wrong calling convention may siliently crash LabVIEW.
    LabVIEW 8.5 through 2009 could adjust the calling convention at run time if the user selected the wrong option. In 2010 this no longer happens. More information is found in KnowledgeBase 59KB14WI
    Workaround: Use the correct calling convention
    Reported Version: 2010 32-bit
    Resolved Version: N/A
    Added: 07/23/2010
    From 2010 release notes.
    Paul Falkenstein
    Coleman Technologies Inc.
    CLA, CPI, AIA-Vision
    Labview 4.0- 2013, RT, Vision, FPGA

Maybe you are looking for

  • Can't print from Firefox - "Printer Error- An unknown error occured while printing"

    I am unable to print anything from Firefox! I am using Firefox 19.0.2. I performed a "Reset To Default State" for Firefox yesterday to fix some performance issues. Those issues are resolved, but now I can't print! I am able to print to 'Microsoft XPS

  • Import Song Question

    I am running Itunes 6.0.4 and had a question about importing music into ITunes. There is a setting under the Pref options in Advanced that talks about "Filter Freq. under 10Hz". Does this setting have to be checked? And if not, what does this option

  • How to remove archive log files using Enterprise Manger

    Hi, I took backup of the archive log files and i deleted those files at OS level but it is not reflecting in the Enterprise Manager it is showing the same. Can any one help in how to delete the archive log files by using Enterprise Manger. version 10

  • Are there any Client/Server Application (using sockets) design patterns?

    Hi, The title of the post nearly says it all. I am searching for different design patterns related with the development of a client/server application. I understand that there must be any different ways on how a client/server application can be devel

  • Commit on each iteration

    I have a problem here with transactions and I'm not to sure how to handle this with Java/JDBC. I have a loop like this: [begin transaction] setAutoCommit(false); [select some rows from table a joined with b] while( there are stil rows ) { [update tab