Thursday, January 27, 2011

How to find the position of a taskbar button on Windows 7 or Vista

In this article I'm going to show you how to find the position of your application's taskbar button on the Windows 7 taskbar. The example code is Qt/C++ but it easy to adapt it for another language.
First of all we have to find the taskbar window (its HWND). We do this by searching for a specific window class:
HWND hwndTrayWnd = ::FindWindowW(L"Shell_TrayWnd", NULL);
Then we must find a child window which contains all the buttons:

Tuesday, January 25, 2011

J7Goodies version 1.0.6 released

J7Goodies version 1.0.6 has been released. This version brings the following improvements.



1. Improved native library unloading.
Now the ClassLoader is forced at application exit to unload the native library. This should prevent a rare situation when the native library was kept in the temp directory.

2. Keeping the thumbnail toolbar visible.
When you hide and then show again a window that has a thumbnail toolbar then the toolbar will stay hidden. This is how Windows 7 works. Now you can show the toolbar again be calling it's show() method (only after your window is visible).

3. Detecting when a taskbar button is created.
When you hide and show your application window then its taskbar button is destroyed and recreated every time. You cannot access the button until it is created and sometimes it happens some time after the window became visible. Now you can be informed about this event by adding a TaskbarButtonListener to your TaskbarButton.
taskbarButton.addTaskbarButtonListener(new TaskbarButtonListener() {
    public void taskbarButtonCreated(TaskbarButtonEvent tbe) {
        thumbnailToolBar.show();
    }
});
4. New license manager.
The license verification code has been rewritten. Previously license files were encrypted. Now they are plain-text files. This will help to spot a situation when someone steals your license and uses it in his/her own application.

5. Fixed TaskbarButton.isSupported()
This method was throwing UnsatisfiedLinkError instead of returning false when was not supported.

6. Performance improvements for thumbnails and live previews
Now the code that deals with window thumbnails and live previews is more efficient.

7. Native library has been refactored
The native library has been refactored so now it should be more reliable and efficient.

Tuesday, January 4, 2011

Introducing SevenBeans: NetBeans Windows 7 integration module

SevenBeans, a module for NetBeans IDE (or any other NetBeans Platform application), provides all Windows 7 taskbar extensions, excluding the thumbnail toolbar. First of all, SevenBeans allows you to pin NetBeans IDE to the taskbar. This is very handy if you use the taskbar a lot. Unfortunately, Java applications cannot be pinned to the taskbar so SevenBeans makes a difference here. When you click a taskbar button for NetBeans IDE, a jump list appears:


It contains your recent projects, so you can open them directly. There are also shortcuts for a new project and a new file.

Tuesday, December 14, 2010

We are now a Nokia Qt Ambassador

We are happy to announce that we have become an official Nokia Qt Ambassador. This is very flattering for us because Nokia's Qt is our technology of choice as it emerges as the most sophisticated C++ framework available.


Friday, December 3, 2010

Our new product: J7Goodies

Today we are releasing another product for Windows 7 integration. J7Goodies is a Java library that provides Windows 7 features like jump list, taskbar thumbnails, thumbnail toolbar and more, the Java way. This is a complete package, it does everything you can think of in terms of the new Windows 7 taskbar extensions.

Sunday, November 14, 2010

Sketch - an unbloated sketching app released

We are happy to announce the release of Sketch - a simple application for drawing drafts. Stop fine-tuning your drafts and get the job done. Finally a prototyping application that focuses on productivity. Sketch by its simplicity forces you to think about the big picture.

Tuesday, September 28, 2010

How to connect a Samsung Syncmaster P2270HD to your PC with a HDMI cable

If you connect a Samsung Syncmaster to your PC/laptop using a HDMI cable the quality isn't very good. It looks a little blurry. It took me a lot of research to find the solution.

You have to go to the Source menu in your Samsung, then choose Rename and select a PC as the name. After this you will get a crystal clear picture.