August 4, 2006

What do people use Macro Scheduler for?

Filed under: General — Marcus Tettmar @ 12:41 pm

It’s always fascinating and useful to find out how other people use Macro Scheduler. As you probably know I frequently post Success Stories here on this blog. There’s also a really interesting topic on the forums, here, where people can post information about how Macro Scheduler helps them.

I’ve just scanned through the forum post and made a short list summarising some of the ways people are using Macro Scheduler:

  • Creating an Automated Ticketing System
  • Caption Competition Tool
  • Automated backups and file management
  • Anti-phishing Tool
  • Automated admin tasks and unlocking files
  • Backing up a MySQL database
  • Transferring data from Oracle to UPS Worldship
  • Automating an ERP Shipping System
  • Order email retrieval, parse and input to ERP system
  • Automation of e-commerce tasks
  • Automated report writing
  • EDI Scheduling
  • Integrating Word and Excel macros
  • Harvesting data from websites
  • Stress and load testing ERP software
  • Automated provisioning system for a telecommunications company
  • To automatically broadcast and archive daily conference calls
  • Retrieval from corporate databases and report production where no ad-hoc reporting tool exists.
  • “entering data where there are multiple steps over a number of pages & especially where the application does not have keyboard command options. I load the data into a xls, then MS will enter the data quickly & accurately.”

Read more, or post your own experiences here: Tell us how Macro Scheduler helps you, what you use it for.

If you have a Macro Scheduler Success Story and would like to see it included on this blog please contact me. At the end of the year we will choose our favourite story and the winner will receive $100 worth of Amazon Vouchers.

August 3, 2006

How to Get Support – Help us Help You

Filed under: General — Marcus Tettmar @ 12:04 pm

As a company that strives to provide good support I find it frustrating when we receive requests for support that make it hard for us to give it. What do I mean? Well here’s an example. The other day I received an email that had no subject line but a short message. The sender had also embedded an image in the email. The image didn’t get through because it wasn’t a proper attachment. I replied and asked them to resend the image as an attachment. Later that day I got another email, not a reply – a new email, again with no subject and this time with just an attachment of an image. Now because it wasn’t a particularly busy day for support and because I was the one who replied to this person’s previous email and recognised the email address I was able to mentally piece the two emails together. So I was able to reply to the second email.

Later that day we received yet another email – again, not a reply – containing new information, with no reference to the original problem. It took me a while to figure out what the email was about, which I only did because I vaguely recognised the sender as being the one that had emailed us earlier. Had someone else answered it they wouldn’t have had a clue what the problem was and the whole process would have been restarted. All this occurred despite the fact that our autoresponders and replies clearly ask for follow up information to be sent as a reply with the original message intact.

Each time a new email comes in it is assigned a ticket number. By replying to an email and leaving the message intact it stays on the same ticket and we can see the history of messages, so we can see the support history and know what the new information is referring to. But if a new email is sent each time we don’t know what it is about. If it were a busy day with lots of emails coming in we’d have no idea what the new email is about, especially if the original problem is not even mentioned in it. Furthermore if a different support rep reads the email, then as far as he is concerned it’s a new problem with no helpful information. The long shot is it takes longer for the customer to get a useful response.

So, here are my tips for sending a support request by email and ensuring you get a quick and helpful response. This list is valid whoever you are contacting, not just for us.

  • Provide a clear subject line.
  • State the product name and version you are using.
  • Describe the problem clearly.
  • Provide follow up information by replying to the original response/autoresponder – that way your reply is tagged on to the original ticket.
  • Send images as attachments and use jpg, or zip them up to keep them small. Don’t paste images into the body of emails because not all email systems support that.
  • Don’t send duplicate messages – it actually slows down the response time, not speed it up.
  • Remember that the support staff are dealing with other emails and other issues, not just you.
  • Oh, and, please be nice …

I hope this helps you help us help you 🙂

August 1, 2006

July 31, 2006

Software Cracks

Filed under: General — Marcus Tettmar @ 11:21 am

I suppose cracks are an occupational hazard. Sooner or later someone is going to crack your software. It is just a fact of life. There’s actually no way to prevent it. Some protection methods are better than others but the best hackers will always find a way round them. There’s a limit to how much time should be spent on beefing up protection that can never be 100% secure anyway.

But cracks can be dangerous. Many contain viruses or Trojans. The hacker will insert malicious code and the cracked software becomes a trojan horse for the unwitting and will infest their computer. Even those that don’t have viruses in them may have problems. Sometimes the hacker may miss hidden protection mechanisms which don’t manifest themselves clearly. When these surface the software is likely to crash and could potentially harm your computer. The crack could cause instability due to insecure modifications to the executable. It is therefore unwise to rely on cracked software. Furthermore, don’t expect to get support from the developer if you are using illegally obtained software.

How can you tell if the software you have downloaded is cracked? First, look to see if the Digital Signature is intact. Right click on the file in Windows Explorer. Is there a Digital Signature tab? For example you will see MJT Net Ltd in the list of signatures if you right click on the Macro Scheduler executable. If the file has been tampered with in some way the signature won’t be there. Without the signature Windows XP will pop up warnings when you try to run it. If the signature is not there it means someone has modified the executable and it could therefore be buggy or virus ridden. Delete it and download the authorised version from the official source instead.

What really annoys me about hackers is not their ability to hack the software itself. Ethical hackers tell you they have circumvented the protection but do nothing more. They deserve respect for their abilities. But those that then post the software on download sites deserve nothing. These people are potentially stealing developers’ livelihoods. What they often don’t consider is who is behind the software they have cracked. Not all developers are huge, faceless corporations like Microsoft. Many developers are small companies, working long hours to pay their mortgages and bills. People like us. Small companies who develop their wares to make an honest buck and ensure the security and safety of their families. Not rich people. Ordinary people selling their software to make ends meet. By hacking our software and making it available to people on the web hackers are sending the message that it is alright to take income away from us. I ask you – what have we ever done to these people? What makes them think it is alright to take income away from us honest, hard working people?

A far more worrying trend is the increase in credit card fraud, and fully registered versions of software appearing on file download sites and file sharing networks. Why bother trying to hack software when all you need to do is buy the full version with a stolen credit card and then give it away? But if you ever find full versions on file sharing networks consider how it got there. Credit card fraud is organised crime. Stolen credit card numbers are obtained/sourced by networks of organised criminals. One thing is for sure – these people don’t just deal in stolen credit cards. They are often involved in far worse – drug trafficking, people smuggling, violent crime etc. Ok, the person that used the stolen credit card to obtain the software might not be one of these people. But chances are the credit card was obtained by someone who is, or at the very least is linked to someone who is.

So next time you consider downloading an illegal copy of some piece of software, think about how it got there. Think about what you are endorsing and who you are supporting. Think about the ordinary software author who works hard every day, just like you do, to pay his mortgage. And think about the victims of those that steal credit cards – ordinary people just like you.

July 26, 2006

New Feature Suggestions

Filed under: General — Marcus Tettmar @ 12:17 pm

I read this interesting article the other day: “Don’t give in to feature demands!”.

It is true that we can’t always add all the features everyone wants. If we added everything ever requested the product would get bloated in all directions. There’s no point adding a complicated new feature if only 1% of users will use it. So how do we decide what new features to add? Well, we listen to all feedback/suggestions and try to implement those that enhance the core of the product for the benefit of the majority. Stuff that will only benefit one or two users is better off as an external library.

We read all the posts in the Enhancement Suggestions forum and in Bugtracker and try to incorporate as many of those suggestions as possible into future releases. Major changes, such as new script commands and interface changes usually get added only to major updates. Smaller changes often make it into point releases. So if you have a feature suggestion post it to Enhancement Suggestions. If you like you can also create a poll there to see what other people think.

If you look at the history list you will see we are continuously adding new script commands and constantly improving the product. The product is very much moulded by its users and any longstanding customer will tell you how most new features are a result of customer feedback. Macro Scheduler really wouldn’t be here today were it not for the user feedback that guides us.

But how do you know which of the suggested features are being worked on right now? Well, when appropriate we will make an announcement. You can also view the status in Bugtracker to see if it is assigned or fixed in next release. But initially we prefer not to make any promises. If we were to promise a newly suggested feature without first looking at the feasibility and analysing its impact on the product we may end up breaking our promise. I don’t believe in making promises that can’t be kept, so, just in case, I prefer not to make promises at all, and then over-deliver 😉 One thing I will say is that Macro Scheduler 9.0 will be even easier to use, both for newcomers and experienced scripters. And there are some other exciting developments in the works …

July 24, 2006

WebRecorder 1.74 Update

Filed under: Announcements, Testing — Marcus Tettmar @ 9:04 am

A new version of WebRecorder is now available with the following changes:

– New function ContainsText added to IEAuto.DLL. This function simply determines whether or not the specified text is contained within the body of the page. This is a quick and easy way to determine an outcome and is ideal for automated testing.

– Fixed a bug in IEAuto.DLL which could cause a crash when calling WaitNewIE after a call to KillIE.

– Fixed a bug in the WebRecorder application which prevents a crash when a page is closed by a script in the page.

Downloads: Evaluation, Registered

July 21, 2006

Nice User Reviews

Filed under: General — Marcus Tettmar @ 8:01 pm

Some nice reviews of Macro Scheduler at SoftPile, here.

And some great reviews at Download.com too.

Some not so great ones too though 🙁 Some are reasonably balanced. After all, I believe in the saying “Horses for Courses” – one can’t expect everyone to like our software. But I was a bit upset about that one saying we refused to honour a refund. I have no recollection of ever refusing a refund where we were unable to provide a solution and I can find no record of ever being “threatened”.

Funny thing is the title of the review says “money back guarantee not honored” yet the body of the review says they did get their money back. Oh well, I guess there’s just no pleasing some people!

July 19, 2006

It’s Hot!

Filed under: General — Marcus Tettmar @ 10:34 am

Yikes, it’s hot here in SW England. Someone told me today will be hottest day on record since 1911! But in the post this morning was a promotional letter from a company selling solar energy systems touting ways to reduce our heating bills. I can’t see that campaign being overly successful right now!

July 13, 2006

Activating System Tray Icons

Filed under: Automation, Scripting — Marcus Tettmar @ 8:47 am

This one has bugged me for years – how to automate activating a system tray icon. For starters, the System Tray is designed to be manipulated with the mouse. We could send mouse clicks to icons in the system tray but for the fact that icons don’t always appear in the same place in the tray. Some systems contract and expand the system tray and on startup icons can be reshuffled and appear in a different order. So sending mouse events is no good.

Well it turns out there is a way to control the system tray with the keyboard. I hadn’t realised this. Thanks to Henk for discovering this. Henk demonstrates here that if you press the Windows key to open the start menu, then Escape to close the start menu keyboard focus is now on the Start button. If you then press Tab a few times focus ends up in the System Tray. If you hover over a System Tray icon you will see a Tool Tip appear above it showing the name of the application. Well the first letter of this text will select this icon. So once you’ve tabbed into the System Tray you can now press the letter key corresponding to the first letter of the icon’s title and it will be selected. Then pressing Enter will activate it.

The number of tabs you need to send to get to the System Tray depends on how you have your task bar set up. If you have the QuickLaunch toolbar enabled you’d need an extra Tab. And in XP with the contracting/expanding System Tray you need to press the right arrow key to move off the contract/expand button. So this approach is not entirely portable but will work on your system.

So I gave this some more thought and came up with a portable approach which focuses the System Tray area directly – without having to open the Start menu and tab around. My approach uses the Win32 API functions FindWindow and FindWindowEx to find the handle of the System Tray Notification Area and then focus it directly. Here’s the code:

Let>WIN_USEHANDLE=1
LibFunc>User32,FindWindowA,h1,Shell_TrayWnd,
LibFunc>User32,FindWindowExA,h2,h1,0,TrayNotifyWnd,
LibFunc>User32,FindWindowExA,h3,h2,0,SysPager,
LibFunc>User32,FindWindowExA,h4,h3,0,ToolbarWindow32,Notification Area
SetFocus>h4
//Change to first letter of icon to activate
Send>v
//If more than one with same first letter, then repeat above line for each
Press Enter

Thanks again to Henk for the tip. See the forum post here.

July 5, 2006

Automated Adobe Reader Install – Waiting for Window Content

Filed under: Automation, Scripting — Marcus Tettmar @ 6:51 am

Here’s a script to automate the installation of Adobe Reader:

http://www.mjtnet.com/usergroup/viewtopic.php?t=3034

This script demonstrates how to wait for windows to change based on the text within them. As with the majority of installers, Adobe Reader’s installer has a series of windows with the same title with differing content, and “Next” buttons to progress through the installation. Since the window title remains the same we can’t wait for the next window based on the window title so we must wait for the content to change. My install script demonstrates use of the FindWindowWithText function inside loops to show how to wait for specific text within the window. Using this approach we can wait for each step in the install to complete.

An alternative method that some might prefer is to use a graphical approach using the Image Recognition Library. Using this we could write a script that waits for an enabled “Next” button and clicks on it when it is found, for example.