What I would consider is this: if possible, create a component shared by the windows application and the web application that returns the expected results in the same form to both apps. For example, you could create a component that returns a recordset/dataset based on values stored in public properties, or perhaps, stores information in a database and returns a value indicating success or failure. The alternative is awkward and a bit kludgey -- you could install the windows application on the server and have your web application impersonate a user account that has permission to execute the application, then use something like the Windows Scripting Host or Winbatch to launch the app and "animate" the correct sequence of events to start the application, produce the correct series of mouse clicks and keystrokes to complete the desired action. I think that performance could be an issue: it is probably not possible to have the app sitting there waiting for activity, so each new user request, in effect, starts a new instance of the app on the server, which, depending on the number of users, could kill your server.