Find Jobs
Hire Freelancers

C# or VB.NET project: ''Macro Automation Manager''

$500-1500 USD

Anuluar
Postuar about 13 years ago

$500-1500 USD

Paguhet në dorëzim
See detailed requirements. ## Deliverables I need a complete Windows application written in either C# or VB.NET, potentially with a C++ dll to do required system-wide hooking (other languages/combinations also considered) with the following requirements: 1. A main form containing a list of saved macros. Note for the purposes of this application, a 'macro' is a sequence of steps performed by the user after launching an application. Executing the macro means launching the application, performing the sequence of user actions (keyboard and mouse) and then displaying a dialog box with text "Macro execution complete. Close XXXXXX?" where "XXXXXX" is the application's name. 1a. The list needs to show, for each application that has associated macros, the name of the currently active macro and, if there are other macros associated with that application, these should be listed in a separate list control when the application in question is selected in the main list. 1b. Your UI also needs to allow for setting a different stored macro as the active one for a given application iff that application has more than one macro associated with it. 2. The UI also needs to have a "Execute Macro" button, and the ability to replay the macro exactly, starting with launching the target application, then replaying the stored sequence of user actions both mouse and keyboard until complete. Then a dialog box should be displayed as described in (1). 3. The application (the one your writing, not the macro-related one) should minimise to tray rather than the taskbar. 4. While macro's are being executed, all actual keyboard and mouse events must be blocked. You might need a low level mouse + keyboard hook to do this. But any reliable method is fine. 5. When executing a macro you should check to see if the target application is already running, and ask the user to close it before continuing. Don't allow continuing without first closing the target application. 6. Clearly, you will also need to implement a "Record Macro" feature, where the user is prompted to select a target application (from the list of installed applications which you can get from the registry, or "Other..." to allow a specific .exe to be selected), then the application is launched and all keystrokes and mouse movements and mouse button downs and ups (i.e. clicks and dragging) must be recorded. Format is entirely up to you, but an XML file clearly describing the sequence would be my preference. This and any other application data should be stored in the user's roaming %appdata% directory in an appropriately named subdirectory, i.e. "Macro automation Manager" with a "_" and a guidgen generated guid string appended. 7. There should be a user preferences form, where the user can select not to show the dialog box on macro execution finish (described in (1) and (2)) and to either close the (target) application or not. 7a. There should also be a user preference whether to speed up the macro execution by skipping non-interacting mouse-movement (i.e.) instead of moving the mouse as the user did to click a button, just move the mouse directly to the button in one step and perform the click. This feature must be 100% reliable and not miss any user-interaction that did take place. 8. While macros are being recorded, the application must disable all other windows and prevent the target application from being minimised, deactivated or anything else. you might want to use a hotkey and inform the user what the hotkey is, so that they can use it to stop recording. Alternatively, a fade-up (almost transparent until mouse over) screen could be shown in one corner of the screen with buttons to stop recording etc. 9. Once a macro has been recorded it should be immediately saved (with UI including progress bar if process is time-consuming) and named useing a standard naming sequence, e.g. "Macro1", "Macro2" etc. The user should then be prompted to name the macro to something else if they want to. 10. Anything else you can think of to improve the application. 11. All string literals that are part of the UI must be stored separately so that translation to other languages is trivial. 12. Only the directory mentioned earlier should be used for user preferences (again XML preferred), registry use not permitted. 13. Using SystemParametersInfo() or .NET equivalent, you must make Windows think a screensaver is active while macros are being recorded or executed, to prevent interference from power management or actual screensavers. 14. How you recreate the events must be 100% reliable. You could use messages, e.g. WM_MOUSEMOVE, etc. or you could use a system-wide hook to log every UI-related message, or you could re-create using the just-above-driver level functions keybd_event() and mouse_event() provided by Windows. Whatever implementation method you use, you must test thoroughly to ensure reliability. 15. Must run on Windows 2000-Windows 7 inclusive. 16. ***CRUCIAL*** Your implementation of the macro capturing process MUST take into account the fact that programs load at different speeds and that the OS may have more or fewer resources when the macro is executed compared to when it was recorded. So you must not only log keydowns, keyups, mousedowns mouseups and mousemoves and times of these events, but also app becoming idle, windows created, windows activated, windows closed etc. Basically, every UI event must be captured so that when executing the macro, you know to e.g. wait for the target app to become idle, or having duplicated a mouse click, wait for a window to become active or whatever the response to the UI event was. This is tricky and the aim is for 100% reliability or as close to it as you can get, so that every macro is deterministic, with no possibility of 'misfires' e.g. a mouse click before a dialog box appears etc. If you aren't up for doing this, don't bid. That's it. Serious bidders only please. * * *This broadcast message was sent to all bidders on Saturday Jan 22, 2011 12:38:15 PM: Hello, thanks for your interest in this project. Please note I have added another requirement to the spec, which is an absolute must have. Many thanks, Chris * * *This broadcast message was sent to all bidders on Sunday Jan 23, 2011 11:52:28 AM: Another issue has been raised by a number of bidders: if you use window state information (e.g. what type of control the mouse was over when it was clicked) to verify that the target app is in the same state, this will not work on Mozilla (where the UI is rendered by Gecko), nor will it work on web pages in Internet Explorer or on WPF applications where the only window you're likely to see is an 'hwndwrapper'. Qt applications also have the same problem, and any application that uses painting and drawing to construct parts of it's UI... Using active accessibility is another option however this relies on the target application having implemented it. So, I think the only really reliable way to solve req #16 is to gather state information on the target app by trapping as many events as possible using system-wide hooks, so that you build up set of information that describes the target application's state as *_completely_* as possible and can check against that state information before attempting to reproduce a mouse or keyboard event. The kind of information could include things like: - number of windows owned by target app - number of windows *owned* by each of those windows - number of child windows of each of the windows enumerated by the above - possibly the positions of windows, however this would need to allow for the user making changes to the system such as using a different theme or turning themes off or changing the DPI setting, so you'd need to convert pixels to DLUs and allow a small tolerance margin. Also, window styles and extended styles, window class names etc. etc. Basically you could then organise this so that at every mouse or keyboard event you have an extensive 'snapshot' of the target application's state, which you can compare to its state when executing a stored macro in a standardised way. The more variables recorded for this state information the better. This is a non-trivial requirement and will need significant testing to achieve anything close to 100% accuracy, so I need a coder who is willing to be dedicated enough to go into this at the level of detail I have described above and also pick out any pitfalls or other issues. Thanks, Chris
ID e Projektit: 3047224

Rreth projektit

50 propozime
Projekt në distancë
Aktive 12 yrs ago

Po kërkoni të fitoni para?

Përfitimet e ofertës për Freelancer

Vendosni buxhetin dhe afatin tuaj
Paguhuni për punën tuaj
Përshkruani propozimin tuaj
Është falas të regjistrohesh dhe të bësh oferta për punë
50 freelancers are bidding on average $1 001 USD for this job
Avatari i Përdoruesit
See private message.
$850 USD në 14 ditë
4,9 (40 përshtypje)
6,5
6,5
Avatari i Përdoruesit
See private message.
$1 020 USD në 14 ditë
4,9 (16 përshtypje)
6,1
6,1
Avatari i Përdoruesit
See private message.
$935 USD në 14 ditë
4,9 (69 përshtypje)
5,7
5,7
Avatari i Përdoruesit
See private message.
$1 200 USD në 14 ditë
5,0 (36 përshtypje)
5,3
5,3
Avatari i Përdoruesit
See private message.
$1 275 USD në 14 ditë
5,0 (9 përshtypje)
4,9
4,9
Avatari i Përdoruesit
See private message.
$1 105 USD në 14 ditë
4,8 (19 përshtypje)
5,1
5,1
Avatari i Përdoruesit
See private message.
$1 275 USD në 14 ditë
4,6 (47 përshtypje)
5,3
5,3
Avatari i Përdoruesit
See private message.
$1 275 USD në 14 ditë
5,0 (31 përshtypje)
5,0
5,0
Avatari i Përdoruesit
See private message.
$1 105 USD në 14 ditë
4,9 (15 përshtypje)
4,8
4,8
Avatari i Përdoruesit
See private message.
$637,50 USD në 14 ditë
4,9 (28 përshtypje)
4,7
4,7
Avatari i Përdoruesit
See private message.
$700,40 USD në 14 ditë
5,0 (29 përshtypje)
4,1
4,1
Avatari i Përdoruesit
See private message.
$850 USD në 14 ditë
4,9 (5 përshtypje)
4,2
4,2
Avatari i Përdoruesit
See private message.
$850 USD në 14 ditë
5,0 (6 përshtypje)
4,3
4,3
Avatari i Përdoruesit
See private message.
$1 200,20 USD në 14 ditë
3,8 (9 përshtypje)
5,0
5,0
Avatari i Përdoruesit
See private message.
$800 USD në 14 ditë
5,0 (13 përshtypje)
3,5
3,5
Avatari i Përdoruesit
See private message.
$1 020 USD në 14 ditë
5,0 (7 përshtypje)
3,2
3,2
Avatari i Përdoruesit
See private message.
$1 275 USD në 14 ditë
5,0 (6 përshtypje)
2,4
2,4
Avatari i Përdoruesit
See private message.
$1 105 USD në 14 ditë
5,0 (1 review)
2,5
2,5
Avatari i Përdoruesit
See private message.
$935 USD në 14 ditë
5,0 (1 review)
2,5
2,5
Avatari i Përdoruesit
See private message.
$600,10 USD në 14 ditë
5,0 (1 review)
2,2
2,2

Rreth klientit

Flamuri i UNITED KINGDOM
Leeds, United Kingdom
5,0
30
Mënyra e pagesës u verifikua
Anëtar që nga mar 28, 2011

Verifikimi i klientit

Faleminderit! Ne ju kemi dërguar me email një lidhje për të kërkuar kredinë tuaj falas.
Ndodhi një gabim gjatë dërgimit të email-it tuaj. Ju lutemi provoni përsëri.
Përdorues të regjistruar Punë të postuara
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Po ngarkohet shikimi paraprak
Leja u dha për Geolocation.
Seanca e hyrjes ka skaduar dhe ke dalë. Hyr sërish.