This project is read-only.

Installation and Usage

See also

To use ProdUI, simply download and extract the latest build to your computer. For any project that you wish to include the Prod functionality, add a reference to the ProdUI.dll file.

Prods are invoked in one of 2 ways:

  • Through a set of static methods
  • Through a set of instance methods managed by a ProdSession

    Static Methods – Prods can be invoked upon a control by passing the handle to the container window and either the name of the control, or its resource ID

    Assuming "Calculator" is running, this will press the "7" button
    ProdWindow win = new ProdWindow("Calculator");


    IntPtr hand = ProdFunctions.GetControlHandle(win.Handle,"7");

    These methods are intended as “one-shot” ways of accessing a control, and do not provide logging or verification.


    Managed by a ProdSession – This is the preferred method for working with anything but the simplest of projects. The syntax for creating and invoking Prods is similar to the instance method example above, however, within a session, logging of actions as well as verification that an action has been performed (such as a click) or a value has been set (a TextBox , for example) are provided. More information about running via a session, as well as descriptions of logging and verification can be found

    /* Assuming "Calculator" is running, this will press the "7" button */
    ProdWindow win = new ProdWindow("Calculator")
    ProdButton button = new ProdButton(win, "7");



    When an action is performed by a Prod (selecting, clicking, toggle, etc.) an event listener is placed to verify that the Prod did indeed take place. If the event listener times-out, ProdUI will attempt to reach the control via native methods. If, in the end, the system cannot verify that the event occurred, an exception is raised and logged.

    In addition, when the action involves setting a value (a CheckBox to “checked”, or adding text to a TextBox, for example), the Prod system verifies that the current value matches the one that was requested by the user. If this cannot be verified, an exception is thrown.

    In most Prods, there are “fallback” methods of sending messages to the controls to see if they respond to that. If so, they are verified and things continue.

  • Last edited Jun 8, 2011 at 2:20 AM by hroark, version 2


    No comments yet.