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.

June 28, 2006

Don’t Disable Vista Security Features

Filed under: Vista — Marcus Tettmar @ 6:48 am

Great post by Jesper Johansson, Senior Security Strategist at Microsoft, on Vista security and why beta testers should not disable User Account Control just yet: http://tinyurl.com/j5z7x. Worth a read.

June 22, 2006

Benjamin Albert Tettmar

Filed under: Announcements — Marcus Tettmar @ 10:06 pm

benjamin1day.gif If you’re wondering why I have been a bit quiet the last few days this is the reason. Benjamin Albert Tettmar was born yesterday, June 21st at 2020 GMT. Angela and baby are recuperating in hospital after a long and gruelling 48 hour labour! But both are doing just fine and will be home soon.