Popular Post Sparkette Posted September 2, 2014 Popular Post Report Share Posted September 2, 2014 (edited) After digging around some more I found more hidden INI keys. Again, use these at your own risk. whileLoopSharedCloneOptions=True - adds an additional context menu option to the While loop; not sure what the different options do GenericsAreGo=True - enables the creation of generic VI's (danger!) by right-clicking a control or indicator and selecting "Generic" ActiveXMoreContainerOptions=True - Adds "Persist State To Edit Mode" and "Destroy And Recreate When Run" to the Advanced submenu of an ActiveX container AdvancedPlotLegendMenu=True - Adds a whole bunch of additional options to the context menu for a plot legend EnableStrictTypedefConstantConfiguration=True - Adds a new context menu item to constants based on strict typedefs called Act as Strict Typedef Constant. Function unknown. enableSecretPopups=True - Adds additional context menu items to custom control parts that configure how they scale with the control. Apparently some other hidden menu items are added somewhere too. (Thanks, hooovahh and Christina Rogers!) showRunAtAnyLoopMenuItem=True - Adds a new menu item to Property and Invoke nodes labeled "Run At Any Loop". When selected, the node turns brown as if a private property or method was selected, even if none are. Function unknown. ShowWireAddressMode=True - Adds some additional memory-related information to the context help window when you hover over a wire. Also adds a context menu item to wires called Select InPlace Signals, which likely selects wires that share a memory address. Seems like it could actually be pretty useful for optimization! SimShowCompanionDiag=True - Adds a context menu option to the Simulation structure called "Show Companion Diagram", which toggles showing what looks like a "behind-the-scenes" block diagram for the simulation. NEW! ShowHiddenLibraryItems=True - Shows hidden library items. (big surprise there!) So far I've only seen changes when editing a statechart library, but it seems most of the items in a statechart library are hidden, so it reveals a lot. There's also some more whose functions I'm not sure of (but look interesting) such as TotallySecretAndPrivateMSNCompanionDiagram, and growSubVI.enabled (might be pretty mundane, but it's false by default and might have something to do with creating subVI's that can grow like XNodes.) If I find any more interesting ones I'll post them here, but here's a list of every INI key loaded when LabVIEW starts, obtained by hooking the internal function that reads them: http://pastebin.com/j1iAEZXg. See here for information on finding the rest. In the meantime, if anyone knows what any of these do, please post! Edited September 7, 2014 by flarn2006 4 Quote Link to comment
hooovahh Posted September 2, 2014 Report Share Posted September 2, 2014 enableSecretPopups They are a secret that's why you can't use them...but seriously they help with custom control development. They are very incomplete but give some functionality that has been desired by the developers. The interface for getting these much desired features is quite lacking, which is probably why this isn't public yet. It can allow things like defining the behavior of a decal on a button, as the button changes size. By this I mean the decal can move as the button grows, or the decal can stretch. You can also define if the decal (or text) can be resized or moved independent of the control. Very neat stuff but yeah it can behave strangely if you enable some features at the same time which the interface doesn't restrict you from doing. Quote Link to comment
Popular Post Christina Rogers Posted September 2, 2014 Popular Post Report Share Posted September 2, 2014 enableSecretPopups - I put this token into LabVIEW 2011 for Silver control development, as a quick-and-dirty way to make low-level control edits. I've been giving it out to people on a very limited basis, but I guess since it's out here I'll widen the audience. I show a screenshot of the new menu items in https://decibel.ni.com/content/docs/DOC-17431 Once this token is enabled, you'll be able to see the settings on parts of the Silver controls to get an idea what they do. eg "Left Move" means the part will move left when its "master" part changes size via moving its left edge. "Left Grow" means the part will scale in that situation. Setting both the left and right move options will make the part stay centered. There are clearly combinations that don't make any sense and I suspect LabVIEW will behave badly if you use them. I recommend that you disable the token when you're not using the Control Editor, because it also enables other menu items that are not ready for prime time and you might use them later without realizing they're only there because of this INI token. 9 Quote Link to comment
Sparkette Posted September 2, 2014 Author Report Share Posted September 2, 2014 (edited) Thanks! I thought that one might have had its functionality removed, since "MathScriptFastPropTypes" is mapped to the same memory address, which is kind of strange. I'll add it to the list at the top. Do you happen to know off hand what other menu items it enables?Oh, another thing: that PDF you linked to mention some new decorations that aren't in the palette. If they're not in the palette, how do you place them? (I also know there are other decorations that aren't in the palette, that I've found by manually editing the image ID of an object in memory (thanks, whoever made Heap Peek show memory addresses); is there a special palette with all the images hidden somewhere?) I think there's actually more that just aren't loaded until they're needed. But there is a way to monitor every config token LabVIEW looks for. Download and install Cheat Engine (pay attention when installing it, as it may ask you to install "sponsored" stuff as well; CE itself is open-source and safe to use though.) Run the program and click the Memory View button without targeting any process. In the new window that appears, press Ctrl+L, or go to Tools->Lua Engine. In the box at the bottom of that window, paste in the following script, making sure to enter the path to LabVIEW.exe in the marked area, replacing every \ with \\: LVEXEPath = "PUT PATH HERE" createProcess(LVEXEPath, "", true) CfgGetDefault = getAddress("LabVIEW.CfgGetDefault") debug_setBreakpoint(CfgGetDefault) function debugger_onBreakpoint() if EIP == CfgGetDefault then local a, b, c, d = readBytes(ESP+4, 4, false) local size = readBytes(readInteger(ESP+8), 1, false) local str = readString(readInteger(ESP+8) + 1, size) local addr = readInteger(ESP+12) print(string.format("%s (0x%X) [%c%c%c%c]", str, addr, a, b, c, d)) end debug_continueFromBreakpoint(co_run) return 1 end Finally, make sure LabVIEW is not running, and press Execute. LabVIEW will open, and Cheat Engine will list every INI token as LabVIEW looks for them. This is how I found the tokens I mentioned in the post at the beginning. Edited September 3, 2014 by flarn2006 1 Quote Link to comment
Christina Rogers Posted September 3, 2014 Report Share Posted September 3, 2014 Do you happen to know off hand what other menu items it enables? To quote Greg McKaskle, "These obscure features are typically kind of like the attic or basement of a house, not finished out, not very interesting, and potentially harmful. [...] If you experiment with the .ini file and you crash mysteriously losing hours of work, I'd suggest putting the file back to the way LV left it. Don't ask tech support to fix it or complain that the LV attic has rusty nails and splinters." :-) But, if you really want to know, the token allows you to enable some features on subpanels that will most likely crash LabVIEW. Some of the decorations are now in the Silver Decorations palette in LabVIEW 2014. I wrote about them on my blog: http://blog.eyesonvis.com/?p=824 The other way to get to the decorations is to copy them out of the parts of the Silver controls using the Control Editor. Quote Link to comment
Sparkette Posted September 3, 2014 Author Report Share Posted September 3, 2014 (edited) Okay, thank you! Actually, come to think of it, how were those decorations initially placed on the Silver controls? The ones that aren't in the palette, I mean. Edited September 3, 2014 by flarn2006 Quote Link to comment
Rolf Kalbermatter Posted September 4, 2014 Report Share Posted September 4, 2014 Okay, thank you! Actually, come to think of it, how were those decorations initially placed on the Silver controls? The ones that aren't in the palette, I mean. They are part of the LabVIEW code base. Quote Link to comment
shoneill Posted September 4, 2014 Report Share Posted September 4, 2014 I wonder if the INI setting: RT.DeployInlineSubVIs is already in LV 2012 SP1...... I'm having trouble with deployment to RT involving inlined VIs and I think this might be a patch introduced to help the problem. Quote Link to comment
Popular Post Aristos Queue Posted September 4, 2014 Popular Post Report Share Posted September 4, 2014 Mwuhahahahaha! Three config tokens have escaped your grasp! I modified them specifically for folks like Flarn! They don't appear as plain text anywhere in the EXE (or in any VI for that matter). Do they guard any great secret of LabVIEW? I'm not telling! But you can have fun pouring through the code and looking for interesting bits and trying to figure out what you need to put in your config file. LabVIEW 2013 or later. Good luck. 7 Quote Link to comment
smenjoulet Posted September 4, 2014 Report Share Posted September 4, 2014 Mwuhahahahaha! Three config tokens have escaped your grasp! ... Do they guard any great secret of LabVIEW? I'm not telling! But you can have fun pouring through the code and looking for interesting bits and trying to figure out what you need to put in your config file. Not fair! not fair! It isn't fair, my precious, is it, to not tell us what it's got in it's nassty little pocketsess? Wicked, tricksy, false! 1 Quote Link to comment
Sparkette Posted September 4, 2014 Author Report Share Posted September 4, 2014 (edited) Mwuhahahahaha! Three config tokens have escaped your grasp! I modified them specifically for folks like Flarn! They don't appear as plain text anywhere in the EXE (or in any VI for that matter). Do they guard any great secret of LabVIEW? I'm not telling! But you can have fun pouring through the code and looking for interesting bits and trying to figure out what you need to put in your config file. LabVIEW 2013 or later. Good luck. If they are read by the same internal "CfgGetDefault" function, my script can find them. The only way they wouldn't be in that Pastebin dump I linked is if they are read by a different function or if they aren't read as soon as LabVIEW opens. If the former case, it'll take more work. If the latter, it's just a matter of running LabVIEW through Cheat Engine (with the Lua script running) and trying different things until it checks for that token. But I accept your challenge, provided you're not just trolling. Edited September 4, 2014 by flarn2006 Quote Link to comment
Aristos Queue Posted September 5, 2014 Report Share Posted September 5, 2014 No, they aren't checked at startup. And that's as much help as you'll get from me. :-) 1 Quote Link to comment
Sparkette Posted September 5, 2014 Author Report Share Posted September 5, 2014 (edited) Here's some more that may or may not have been in the initial Pastebin dump, found by doing random things in LabVIEW with the script running. Are any of these what you were talking about, Aristos? None of them seem too secret (with the exception of the misspelled "PaletteHidden..." ones, which are actually just lists of categories to hide), but you never know. AssistantsUseStrictTypes autoerr autoToolOn cacheAlignmentComplexityLimit cacheAlignmentStrategy cacheAlignmentUseReadsAndWrites CaseDiagramInplaceSharingEnable CloseHeapsAfterVISignatureCalc customizeFPPopupMenus DeepestAllowableRecursion defPrecision EditEventsDlgSize EnableExternalDataValueReference EnableRegisterCandidateDebugging EnableRegisterCandidateLoopIndex EnableSyntaxCheckrogressOutput fadeEphemeralWires failAutoRouter FindVIsOnDiskLastDir FindVIsOnDiskPosition GarbageCollectionAtVIClose grayOutMethod GSW_filter GSW_Pinned_Files GSW_Pinned_Templates GSW_Pinned_Templates_names GSW_RSSCheckEnabled hideBDPopupMenus hideEmptySubPalettes LaunchTimeBenchmarking leftClickPopupPalette loadAlwaysSearches LocalHost LVContextBannerPopUp LVLibraryThemeColor menu.4 NavigationWindowScrollInterval NewDlgBounds NewDlgCollapsed NewDlgLastSelected NewDlgRecentMainTemplates.pathList NewDlgRecentTemplates.pathList NewProj.maxNum NewProj.RecentLocationPaths NewProj.RecentTitles NI_GSWPosition NoAdvice070 NoAdvice080 OverrideDisabledCLFNs PaletteHidddenControlCategories_LocalHost PaletteHidddenFunctionlCategories_LocalHost PalMenuResized.1 PalMenuResized.2 PalMenuResized.3 ProbeDefaultCache_14_0 ProbeIniCache_14_0 project.BuildsViewActive project.DependenciesViewActive ProjectExplorer.ClassicPosition ProjectExplorer.ProjectItemsColWidth ProjectWindowCanSave PropPageBounds propPageDebug recentUserName RegExpMatchLimit resettingDlgDelay SaveChanges_ApplyToAll SaveChangesAutoSelection SaveChanges_ExpandedAffectedFileList saveFloaterLocations ScaledToFitLocation ScaledToFitWindowState SCCDisplayOnlySelected SCCDisplayWarningIfCheckedOut SCCIncludeInstrLibInGetDependents SCCIncludeVILibInGetDependents SCCPromptToAddToAddSubVIs SCCPromptToAddToProject SCCPromptToCheckOut SCCSelectCallersWhenCheckedOut SCCSelectHierarchyWhenAdd SCCUseDialogBox serviceLocatorTimeout showAllPalettes ShowDeferDecisionDialog ShowRemoteWindowsTargetWebDocRoot ShowRTTargetWebDocRoot showRunAtAnyLoopMenuItem ShowWelcomeOnLaunch ShowWireAddressMode SnapGridShowsOnBlockDiagram SnapGridShowsOnFrontPanel SnapGridSnapsOnBlockDiagram SnapGridSnapsOnFrontPanel tileUpDown ToolbarState UnitDialogGroups VISignature.ActiveDiagOnly VISignature.SkipCPTM VISignature.SkipFPDCO VISignature.SkipLinkRefs Edited September 5, 2014 by flarn2006 Quote Link to comment
ned Posted September 5, 2014 Report Share Posted September 5, 2014 I really hope one of them has an exciting-sounding name, but actually just introduces random crashes. Quote Link to comment
lordexod Posted September 5, 2014 Report Share Posted September 5, 2014 Mwuhahahahaha! Three config tokens have escaped your grasp! I modified them specifically for folks like Flarn! They don't appear as plain text anywhere in the EXE (or in any VI for that matter). Do they guard any great secret of LabVIEW? I'm not telling! But you can have fun pouring through the code and looking for interesting bits and trying to figure out what you need to put in your config file. LabVIEW 2013 or later. Good luck. You're talking about this? STR#_11400.bin.txt Quote Link to comment
Aristos Queue Posted September 5, 2014 Report Share Posted September 5, 2014 Nope. Quote Link to comment
GregSands Posted September 7, 2014 Report Share Posted September 7, 2014 Hope you all realize AQ is just using this thread to find out which doors might need to be closed.... Actually, I think these type of threads (and there's a few lately thanks flarn2006) are good to have on LAVA, even if I'm unlikely to want to use the details provided. They give more of a picture of the LabVIEW that is public by seeing bits of the scaffolding and ropes and pulleys holding it all together. The responses also confirm a sense I have that NI is becoming more open about the design and implementation decisions and tradeoffs that define LabVIEW, and that in itself provides a more stable and reliable product. And hopefully on LAVA it's parked enough away from the main flow to be seen only by those experienced enough to know how to handle it (i.e. very carefully!). 1 Quote Link to comment
Sparkette Posted September 7, 2014 Author Report Share Posted September 7, 2014 (edited) For anyone watching this thread, I've found another one's purpose. (ShowHiddenLibraryItems.) Unfortunately I don't think it's one of those super-secret ones AQ was talking about, as IIRC it gets checked on startup. But hopefully I'll find those soon! I've added this to the OP, but it basically shows a bunch of extra stuff when editing statechart libraries. Edited September 8, 2014 by flarn2006 Quote Link to comment
lordexod Posted September 8, 2014 Report Share Posted September 8, 2014 All methods and properties. ms_and_ps.bin.txt Quote Link to comment
hooovahh Posted September 8, 2014 Report Share Posted September 8, 2014 Actually, I think these type of threads (and there's a few lately thanks flarn2006) are good to have on LAVA, even if I'm unlikely to want to use the details provided. ... And hopefully on LAVA it's parked enough away from the main flow to be seen only by those experienced enough to know how to handle it (i.e. very carefully!). I enjoy posts like this. But with a moderator hat on it is difficult. We can't hide behind the fact that we are a forum of "advanced" developers. We are still a very public forum easily found. Searching "LabVIEW Password Crack" in Google results in the first hit being NI's forums, and the second being LAVA (thanks BTW flarn). There are topics we cannot talk about here, but then there are ones like this that are a grey area. I mean where would we be if the Super Secret INI key was never discussed? Would NI not have developed and released scripting as quickly, or at all? All methods and properties. ms_and_ps.bin.txt I am a man of few words...any questions? Quote Link to comment
Mike Le Posted September 8, 2014 Report Share Posted September 8, 2014 I am a man of few words...any questions? Maybe we all need to start learning Polish. 2 Quote Link to comment
Sparkette Posted September 8, 2014 Author Report Share Posted September 8, 2014 I enjoy posts like this. But with a moderator hat on it is difficult. We can't hide behind the fact that we are a forum of "advanced" developers. We are still a very public forum easily found. Searching "LabVIEW Password Crack" in Google results in the first hit being NI's forums, and the second being LAVA (thanks BTW flarn). There are topics we cannot talk about here, but then there are ones like this that are a grey area. I mean where would we be if the Super Secret INI key was never discussed? Would NI not have developed and released scripting as quickly, or at all? I am a man of few words...any questions? Well with the password cracking thing, I can understand not wanting it to be posted here, as that can actually theoretically cause harm to companies that rely on the password protection to hide code. My opinion on the matter is that they were asking for it by relying on such an insecure system, but I understand if some people don't share my opinion. Same with the thread about enabling native XNode development that I posted with the admin's permission (and later changed my mind about and had removed after seeing what a negative response it was getting) just because of the kind of program you use to perform the hack. As for this, however, it's not really stuff that could in any way hurt the reputation of the forums, or harm NI or anyone else. I'm just trying to find and expose stuff that NI didn't see fit to release for one reason or another, but that advanced users might like to play around with outside of important work. For science. (You monster.) 2 Quote Link to comment
Neil Pate Posted September 9, 2014 Report Share Posted September 9, 2014 For science. (You monster.) We do what we must because we can. Quote Link to comment
Benoit Posted February 28, 2018 Report Share Posted February 28, 2018 hi everyone, know it's an old post, but I realy need to do that in order to save time to my team. here is what I want to do: at LabVIEW lunch, running a vi that will configure some VI property in the LabVIEW pallet tools. Per example changing text in a label using VI script. My VI is working, but I wan LabVIEW to run it automatically on a LabVIEW start. Thanks Quote Link to comment
hooovahh Posted February 28, 2018 Report Share Posted February 28, 2018 This doesn't belong in this thread, but that being said why do you need to run the VI every time? Why doesn't it configure and save the palette in a way that the settings are retained? Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.