Opening URL under Wine

note This article available in Russian.

Imagine the following situation. Our product can detect if it is running under WineHQ already. And, indeed, our product has many places from which we must open URL’s:

  • information about the product,
  • checking for updates,
  • online help,
  • technical support page
  • and so on.

Trying to call ShellExecute head-on, passing the URL as parameter, and … Nothing happens!

The thing is that Wine, honestly emulating everything, wants to start a web browser not installed in the system, but installed under the Wine. There are no any browsers installed yet. Therefore, nothing happens.

Of course, you can install the browser, but why not open the required documents in their native system applications? This raises the question of interaction of the Wine and the operating system.

There are a number of commands available in Wine.

We are interested in winebrowser command, which opens the URL in the native operating system application. And taking into account that URL can refer to the file, we have really serious mechanism in our hands.

winebrowser httр://www.winehq.org

winebrowser ftp://ftp.winehq.org

winebrowser irc://irc.freenode.net/#winehq

winebrowser file://c:\\windows\\win.ini

On a KDE system the first two might open in Konqueror, the third in Konversation, and the last in KWrite.

As a result, applying the function GetWineAvail (), described earlier, our code might look like this:

//Delphi Code

procedure OpenUrl(url: string);
var
  S: string;
begin
  if GetWineAvail() then 
    S := 'winebrowser ' + url
  else
    S := url;
  ShellExecute(0, 'open', PChar(S), nil, nil, SW_SHOW);
end;

...
  OpenURL('mailto:support@microolap.com?Subject=PgMDD:%20Support');
  OpenURL('httр://microolap.com/products/database/postgresql-designer/');
...

or like this:

//C Code
void OpenUrl(char * url);
{
    char s[255];
    if (GetWineAvail())
    {
        strcpy(s, "winebrowser ");
        strcat(s, url);
    }
    else
    {
        strcpy(s, url);
    }
    
    ShellExecute(NULL"open", s, NULLNULL, SW_SHOW);
}

...
  OpenURL("mailto:support@microolap.com?Subject=PgMDD:%20Support");
  OpenURL("httр://microolap.com/products/database/postgresql-designer/");
...
Advertisements

PgMDD 1.2.10-beta available

This is a beta for the upcoming 1.2.10 release.

WineHQ compatibility improved. SQL Reverse Engineering improved. Support for 8.4.x SQL dialect added.

You’re welcome to download the latest release from our website at:
http://microolap.com/products/database/postgresql-designer/download/

Please don’t hesitate to ask any questions or report bugs with our Support Ticketing system.

PgMDD-1.2.8: Wine out of the box

Preface

As was mentioned PgMDD entered beta-testing stage. Details have been promised. Voilà.

Crux of the matter

PgMDD-1.2.8 supports WineHQ out of the box. What mean supports?

  • PgMDD always knows if it was launched under Wine or in pure Windows environment
  • PgMDD offers several ways to bypass imperfect Wine functionality
  • PgMDD disables the functionality which current Wine configuration cannot provide

Lets go on each item.

Continue reading “PgMDD-1.2.8: Wine out of the box”

On Wine or not on Wine?

note This article available in Russian.

In the life of every Windows developer there comes a point when you want to know if your application is running under WineHQ or not. Why? Because the world is not perfect. And you for sure will help Wine to crunch your application correctly. Of course if you’re interested in support of millions of guys with red eyes (Mac, Linux etc.). 😉

There is an elegant way to find this out. Below is the Pascal\Delphi code, however any sane developer would be able to translate it into preferred language:

function GetWineAvail: boolean;
var H: cardinal;
begin
 Result := False;
 H := LoadLibrary('ntdll.dll');
 if H > HINSTANCE_ERROR then
 begin
   Result := Assigned(GetProcAddress(H, 'wine_get_version'));
   FreeLibrary(H);
 end;
end;

//using
if GetWineAvail() then 
 ShowMessage('Launched under Wine')
else
 ShowMessage('Pure Windows');
end;

Сode speaks for itself.

Very freaking detailed tutorial from kishkin

Howdy, postgresmen!

There was some guy, Sherlok, who couldn’t start DB Designer in Wine properly. And I have no idea what he did wrong as my HOWTO is very simple. Yet it’s short… but not anymore! 😉 kishkin rewrote that tutorial with the screenshots, and there are LOTS OF THEM!

Here is photo, kishkin receving free license for Database Designer for PostgreSQL. Lot’s of friends came for the party. 🙂

free-license-party1

“Database Designer for PostgreSQL under Wine” evidence

Despite the fact that my instructions “Database Designer for PostgreSQL under Wine” HOWTO are very clear, there is still one person who just don’t get it. 🙂

This evil man, besides his e-mail scolding, also posted WRONG information to Wine Application Database states that Designer could not be launched.

Here is a screenshot totally disproving his accusations:

PgMDD under Wine

PS Damn, spent all night drawing it… 😉

“Database Designer for PostgreSQL under Wine” HOWTO

Preface

“When’s the Linux version coming out?” – David Fetter was asking me.

“I can’t answer this question yet” – was the answer.

But the magic happens. 🙂 I succeeded to launch Database Designer for PostgreSQL in Wine. The instructions below will help you start Database Designer for MySQL either.

Platform

All my tests were made using:

Despite the fact that Wine 1.1.13 marked as development version I strongly suggest you to use exactly this release. Because in 1.0.1 there are a lot of visual artefacts, however functionality is stable.

Configure Wine

Since Database Designer for PostgreSQL uses Microsoft Data Access Components for its Universal and MS Access Database Reverse Engineering we must install appropriate redistributable runtime libraries:

$sh winetricks jet40 mdac28

jet40 – MS Jet 4.0 Service Pack 8
mdac28 – MS MDAC 2.8: Microsoft ODBC drivers, etc.

After this we already can use application with its full functionality. However, fonts used in Designer appear ridged. To fix this we need to install Microsoft Core Fonts (Arial, Courier, Times etc.), but we need to make sure  cabextract utility is present in our system.

In case of Ubuntu we can use the following command to install it:

$sudo apt-get install cabextract

For other distributions it is better to check manuals. To install core fonts we run:

$sh winetricks corefonts

Wine Application Database

In Wine Application Database you can get information on application compatibility with Wine. There are entries for both Database Designers: for PostgreSQL and MySQL.

By the way, you have a good chance to get a free Personal License. Provide some great examples of using Database Designers and results you got under Wine, and receive a license key for free! If you publish them as an article (in your blog, for example), this is only a big plus. Requirements: created with MicroOLAP software, step by step description (How did you make it?), screenshots of the steps taken.

Write a review of MicroOLAP software and publish it on Wine Application Database web-site. You will get a free Personal License key as a reward.

Our goal is to make Database Designers Platinum list member of Wine Application Database. As for now it appears to be Gold List member.