Contributed Content

These items may be useful for specific purposes and have been gleaned from various sources. Rather than being included in the common library, these are available as direct downloads. Most have been cleaned up or at least tested for general consumption.

If you know what you are looking for, jump directly to the Contributed Code Directory and grab what you want. Otherwise the listing below may help.


Keyboard Capture

This program captures raw keyboard input by intercepting Window's keyboard driver.

Downloads: KeyboardHook.zip - contributed by Georg Nied 21FEB2024. Derived from John Dumais' work in the late 1990's. Included are a DLL and sample VEE programs. KeyboardTest.vee is the basic working example, while Keyboard Hook Example.vee and KeyboardtestComplete.vee eliminate dependencies by incorporating the DLL within VEE.

Tested On: VEE 7, Win 10/64

Should Work On: VEE 5+, Win XP+

Known Issues: As with any DLL, once imported, the DLL becomes part of VEE. As such the DLL file on disk is locked by Windows as long as the VEE code itself is actively calling any of the DLL procedures. These VEE examples include embedded IO tables so will give errors when you first run them. Ignore these errors since no IO is needed.


Sliding Puzzle

Puzzel V2
This program is an updated version of a very old game - a classic sliding puzzle.

Author: Majed Ali. Contributed February 2024.

Downloads: puzzel_v2.vxe and Tested on: VEE 7.0, Windows 10

Should work on: VEE 7.0+, Windows XP+

Known issues: When the VEE editor (vee.exe) loads a file it does an integrity check, looking for external files, required instruments and so on. This program uses external graphics that are installed only at runtime. Hence loading the source code ( puzzel_v2.vee ) into VEE for the first time causes an error. After being run the needed graphics are installed. Note that the runtime engine bypasses this type of error and runs the code anyhow. Hence it is suggested that you run the VXE above (which triggers runtime behavior) or use vee.exe -r (which explicitly activates runtime).

Editor's Note: A cleaner (albeit slightly convoluted) way around the external file issue is to embed the external files and the program itself in a wrapper which takes care of the dependencies. The wrapper itself has no dependencies so the VEE editor finds no problems. A wrapper has other benefits also, such as determining where external files should be placed on a given system.


GPIB Programming Tutorial

A good introduction to GPIB programming, contributed by Detlef Baranski December 2017. Dated January 2000 but still quite valid as GPIB programming has changed very little since then.

Encryption/Decryption

VEE program with encrypt and decrypt functions. Works with strings inside of VEE.

This uses .NET calls to mscorlib to accomplish key-based encryption/decryption. Original code posted to VRF by David Watling in 2007. NOTE that to use this code you will need to first create a .NET reference to mscorlib and import the "system" and System.Security.Cryptography" namespaces. Then either import the VEE functions or copy them into your program. If you copy note that there are auxiliary functions needed also.


Note that the website that David's work references  no longer exists, so a copy is provided here for reference.

Downloads:   encrypt_decrypt.vee

Tested on: VEE 7.0, Windows XP

Should work on: VEE 7.0+, Windows XP+

Known issues: since this is .NET and Windows install details vary, the downloaded code may give you path errors when you try running it. This since the code includes absolute path to the Windows DLL. If you find this problem go ahead and re-import the .NET assembly and name spaces as noted above so that your copy of the program will match your Windows install.


Non Modal Dialogs

VEE natively provides limited pop-ups (dialog boxes) but they are modal (i.e. VEE cannot continue while the dialog is up) in nature. One can use UF's to create crude non-modal dialogs, but there are also multiple dotNET controls that do a more complete and flexible job. This collection of Non Modal Dialogs was originally posted to VRF in July 2014 by Dave Anderson. These are very basic dialogs but are quite functional. Typical example is:

Note that the original submission had hard-coded paths in multiple Description fields. These have been changed to generic paths for portability.

UPDATE: 20151029: Dave Anderson submitted new version with various improvements and additions for portability, new examples. Should work on VEE 7.5+.

Downloads: NonModalDialogs.vee, 20151029_nonModalDialogs.vee

Tested On: VEE 9.32, Windows 7/32

Should Work On: VEE 8+.

Known Issues: If you have Windows installed anywhere other than C:\windows you will need to modify the dotNET references accordingly. Most reliable way to do this is via the VEE dotNET Assembly Reference dialog. You can of course also edit the source directly if you are certain of paths.


Fisher-Yates Shuffle

A long-term standard algorithm for shuffling items in a list. Contributed by William Drago 5NOV2015.

Downloads: fisherYates.vee

Tested On: VEE 7

Should Work On: all versions of VEE

Known Issues: In William's original code it is noticed that there's a strong nonlinear scaling. Per William, regarding nonlinear observed behavior: "It's not the algorithm, it's the feedback loop. If you do Fisher-Yates without using feedback then it's linear." Given that, there's little reason to not get rid of the feedback.

20151105: experimentation shows that the algorithm in the linearized code has a bias toward leaving early elements near the front. William suggests that this is implementation issue, as discussed at https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Potential_sources_of_bias
20151105: followup shows that indeed there's a bias. In particular, Fisher Yates wants j to be random integer with 0 ≤ j ≤ i, but j = asInt32(round(random(0, i))) has a range of "1" that rounds to most integer values, but only a range of 0.5 that rounds to 0 so introduces a biased stat. The final posted code fixes this.
20151106: experimentation with Fisher-Yates and veeos's randomReorder() (the engineering version) shows good flat statistics. This chart is the output distribution of a linear ramp so essentially shows the odds of values staying where they start before the shuffle. 100M trials so max scale is e-9. Note that the result is quite flat with no obvious bias.



C Programming Notes

Discussion of general C programming issues on Windows. This is of great use for VEE users when interfacing with C code. Originally posted by Shawn Fessenden ca 2005.

Downloads:

Tested On: N/A

Should Work On:  all versions of VEE and all platforms

Known Issues: N/A


Windows Forms - Data Grid

Tabular data can be presented in a fast and professional manner using native Windows capabilities. This offers far more controls than using native VEE objects. This does not offer the myriad computational capabilities of Excel but also has far less overhead. See author's notes inside program for more detailed discussion.

Downloads: dataGrid.vee

Tested On: VEE 9.32/Windows 10/64

Should Work On: VEE 8+, Windows 7+

Known Issues: since this is .NET and Windows install details vary, the downloaded code may give you path errors when you try running it. This since the code includes absolute path to the Windows DLL. If you find this problem go ahead and re-import the .NET assembly and name spaces as noted above so that your copy of the program will match your Windows install.


psftp

This is a basic sftp for VEE based on Putty's "psftp" executable. The end user specifies user name and password along with server and port and a set of commands to use inside of ftp. As provided the code uploads the executed commands.

Downloads:  psftp.vee

Tested On:Windows XP/32

Should Work On:all 32 or 64 bit Windows

Known Issues:You may need to run psftp manually once in order to register the server's encryption fingerprint.


wget

This function allows one to download an arbitrary URL to a local directory. This is a full-featured wget so is capable of downloading multiple files- even entire sites. Note- to see list of available wget options, enter "--help > wgetHelp.txt" for the URL and you'll end up with a list of options in the file wgetHelp.txt.

Downloads: wget.vee

Tested On: XP/32

Should Work On: all versions of Windows >=XP

Known Issues:


title

description

Downloads:

Tested On:

Should Work On:

Known Issues:


© 2015-2025. All Rights Reserved. Stan Bischof (stan@worldbadminton.com). Last updated 23 February 2024 18:28.