Notes from Daily Encounters with Technology RSS 2.0
 
# Saturday, June 02, 2007

If you need cheap and simple OCR functionality Microsoft Office Document Imaging Type Library (MODI) is a nice option if its requirements (Microsoft Office 2003 or later) and limitations (limited language support) don't bother you. Here is a simple C# function that does OCR on the image with the specified path:

static string OCR(string path)
{
    MODI.Document doc = new MODI.Document();
    doc.Create(path);
    doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, false, false);
    string result = ((MODI.Image)doc.Images[0]).Layout.Text;
    System.Runtime.InteropServices.Marshal.ReleaseComObject(doc);
    return result;
}

However, there is another Microsoft Office object model related problem. For Office 2003 users to be able to use your application, the MODI 11.0 (2003 version) must be referenced in the project and the release version of the application must be compiled on a machine with Office 2003 installed. In such a case VB6 still managed to compile the project on a machine with a newer version of Office installed, since the newer version of the type library was automatically used (MODI 12.0 for Office 2007 in this case). On the other hand strong type checking at compile time prevents that in C#.

If you want to keep using Office 2007 and be able to compile such a project, the only solution is to install Microsoft Office Document Imaging as the only component of Office 2003 along the existing Office 2007 installation. Unfortunately this overwrites the Microsoft Office Document Image Writer printer driver from 2007 with the older version, therefore you'll have to start a lengthy process of repairing the Office 2007 installation afterwards. And don't forget to apply all the service packs and updates for Office 2003 before that since this will also overwrite the printer driver and you'll have to repair Office 2007 once again. I learned that the hard way.

Saturday, June 02, 2007 10:39:34 AM (Central European Daylight Time, UTC+02:00)  #    Comments [4] - Trackback
Development | .NET | Software | Office
# Monday, May 21, 2007

Windows Vista unlike the previous versions doesn't have an option to enable or disable hibernation in the Power Options of the Control Panel. Strangely, if you search for hibernation in Control Panel the Turn hibernation on or off option will be found but it will only open the Edit Plan Settings dialog without hibernation available if it is already disabled. Therefore, if you end up with disabled hibernation as I did (probably due to the Hibernation File Cleaner option of the Disk Cleanup tool) the only way to turn it back on is to open a command prompt and run

powercfg -H on

This will make the hibernation reappear in all the shutdown menus and power button combos.

Monday, May 21, 2007 9:45:17 PM (Central European Daylight Time, UTC+02:00)  #    Comments [2] - Trackback
Software | Windows
# Saturday, May 19, 2007

This is nothing new and it has probably been written about hundreds (if not thousands) of times already, but since I’m only encountering the issue every few months or even more seldom, it always slips my mind and I end up wondering what’s wrong.

I’m talking about the fact that any custom identity being used for an application pool in Internet Information Services 6.0 must be a member of the IIS_WPG group which grants it all the necessary privileges. Unfortunately otherwise IIS reports only Service Unavailable when the site gets accessed without any additional information which makes it kind of difficult to determine the cause of the problem.

Hopefully this post will help reminding me of this fact when I need it the next time.

Saturday, May 19, 2007 7:25:23 AM (Central European Daylight Time, UTC+02:00)  #    Comments [0] - Trackback
Software | Windows
# Sunday, March 25, 2007

In Windows Vista the default value for the Persist Security Info parameter of an ADO connection string has changed from True to False.

You should be aware of this because it can prevent your legacy code from working properly under Windows Vista. If its value is set to False the Server, Database, Trusted_Connection and Password parameters will be removed from the ConnectionString property of the Connection object once the connection has been opened. If you’re creating new connections by just copying the ConnectionString property from an existing and already opened connection to the new one, your code will break under Vista.

The problem can easily be fixed by explicitly setting Persist Security Info to True in your original connection string but it should be mentioned that this can be a potential security risk if untrusted code gets access to your Connection object. Even more so in case you’re not using integrated security and the connection string actually contains the user’s password for accessing the database. It’s a much better practice to have the actual connection string stored separately and use it directly to create new connections.

On a side note, SqlClient in ADO.NET works much more consistently. The Persist Security Info parameter always defaults to False. It also only removes the Password parameter from the ConnectionString property which makes changing its value to True completely unnecessary unless you really feel a strong urge to share your user’s password.

Sunday, March 25, 2007 9:48:05 AM (Central European Daylight Time, UTC+02:00)  #    Comments [2] - Trackback
Development | VB6
# Saturday, March 10, 2007

One of the first tasks on my to-do list after buying a new computer with Vista Home Premium edition was setting up Media Center Extender for Xbox 360 along with Transcode 360 to make my Xbox 360 a true multimedia device.

Unfortunately the problems started immediately after setting up the Media Center Extender on my PC. (At this point I’d like to mention that the required 8-digit setup key can be acquired by starting Media Center on Xbox 360. I spent more time than I should, figuring this out.) Browsing pictures worked fine, also music and WMV streaming. On the other hand MPEG streaming resulted in errors.

I quickly dismissed a few probable causes for the problem:

  • After noticing that Windows Media Player couldn’t properly play MPEG2 files (but strangely DVDs worked just fine) I installed FFDShow with MPEG2 playback option turned on. It fixed the playback in WMP 11 but the problem on the Xbox 360 side remained.
  • Just to be sure I temporarily disabled the firewall although the required ports have already been opened and WMV streaming worked just fine. No surprises there – MPEG streaming still didn’t work.
  • The last desperate act was completely disabling my antivirus solution in case it would be causing problems. It didn’t help either.

The weekend was coming to its end so I decided to try out the alternative media server solution TVersity. It worked out of the box without problems, even transcoding of unsupported formats to WMV. But during the following week I was growingly unsatisfied with it:

  • Fast forwarding and rewinding of transcoded videos didn’t work until they were played back for the first time and cached.
  • To make the matters worse even pausing had its problems causing the playback to stop early for the amount of time it was paused in between. Once again the problem only appeared for directly transcoded videos not yet in the cache.
  • While music list was properly organized by albums and authors the video list was completely flat making it a real pain scrolling through a few hundred alphabetically sorted files.

All of that convinced me to revisit the Media Center problem. Not wanting to reinstall my machine being otherwise already quite nicely setup by that time I decided to uninstall PC-cillin Internet Security 2007 just to be sure after reading in a few forums that both  McAfee and Norton can prevent streaming altogether even if they are disabled. It actually solved my MPEG streaming problem although I thought it highly unlikely since WMV streaming worked all the time. I still can’t explain why only MPEG streaming was affected but since then I’m using NOD32 and still waiting for the first problem it would cause. Not to mention that it also uses far less system resources than PC-cillin.

The last of my problems was that the default Transcode 360 installation had problems with UAC therefore I had to manually remove it (uninstall didn’t work) and reinstall it in the unsupported service mode.

Now that all problems are solved, my Xbox 360 really is the universal home entertainment system. Being properly connected to my HD LCD TV and surround sound system I am now using it for watching DVDs, streaming videos from my computer, listening to music and watching photos. Even the user interface is very intuitive and easy to use. Only my music collection still needs some reorganization for all the different views in the Media Center to work as intended.

Saturday, March 10, 2007 12:34:02 PM (Central European Standard Time, UTC+01:00)  #    Comments [0] - Trackback
Gadgets | Xbox | Software | Antivirus | Windows
Sponsored Ads

About Me
Twitter
@MladenPrajdic @andrejt use the middle mouse button then 2 days ago
Great #DotNetRocks show: Troy Hunt Secures http://t.co/oxClbXLe http://t.co/MiMasNuZ PDF is worth checking out as well http://t.co/z4BHAzqh 3 days ago
Hazards of Converting Binary Data To A String http://t.co/lb8kRSsU via @haacked 5 days ago
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

All Content © 2012, Damir Arh, M. Sc. Send mail to the author(s) - Privacy Policy - Sign In
Based on DasBlog theme 'Business' created by Christoph De Baene (delarou)
Social Network Icon Pack by Komodo Media, Rogie King is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.