Categories
Uncategorized

All your emails are belong to MS

Microsoft is going to replace – again – the basic Windows email application. After Outlook Express and Windows mail, that despite some huge vulnerabilities were quite usable, the simple but adequate for a touch UI interface Mail in Windows 8, and the very limited and ugly Mail in Windows 10, it’s time of Outlook for […]

Categories
Networking

Windows 10 DNS Cache is not just a DNS cache

Disabling the dnscache service in Windows 10 looks to bring a series of issues. I found out when I upgraded a machine from Windows 7 to Windows 10. That machine had the service disabled because it was used in a test environment where often DNS entries changed, and the default cache settings of Windows 7 […]

Categories
Delphi

Mom, a modal loop ate my service messages!

A colleague of mine was using the “modernized” service implementation I wrote about some time ago. His services needs to be notified when a user logs on/off or locks/unlocks the machine. Everything was fine for a while, until he started to complain it worked for a while, but then, “randomly”, notifications weren’t triggered any longer. Debugging, he […]

Categories
Delphi

Modernize you Delphi Windows application: use Windows 2000 (and later!) services.

No, the title of this blog post is not a mistake. Delphi, including XE7, only implements services using NT APIs obsoleted since Windows 2000. Windows NT was EOLed in 2004, 2000 in 2010, and XP last year, yet Delphi still doesn’t take advantage of the new APIs. What are the advantages? Well, using the “extended” […]

Categories
Delphi

Local elevation points in Windows and Delphi

Since the introduction of Windows Vista and the new security model for applications, application running under User Account Control (UAC) should adopt a “least privilege” model, running as an “unprivileged” user almost all the time, and requesting higher privileges only when needed, even if the user has those privileges. Requesting higher privileges is called “elevation”. […]

Categories
Software development

Why you should use the App Paths registry key

Today François Piette has written about “Path issue when having installed a lot of software“: Windows is having some trouble with very long path environment variable, even in Windows 7. This is true. Although starting from Vista the environment block size is unlimited (environment variables are kept in a process environment, and each process gets a copy of […]

Categories
Software development

Inno Setup library to manage Windows services

An InnoSetup 5.x library to control services. It gives access to the Service Control Manager functions to query/start/stop/install/uninstall services, and implements some higher level functions (simpleXXXX) to perform standard tasks easily. ANSI version Unicode version Zip file with both versions NB: ANSI version won’t work with the Unicode version of Inno Setup. I didn’t test […]

Categories
Delphi Software development

Why Datasnap 2010 is a toy library

To this StackOverflow question, I simply answered to forget D2010 Datasnap because IMHO it is only half-backed and lacks several needed features and is not flexible. Two people commented my answer was not helpful, and wrote Datasnap is absolutely flexible (later one comment was withdrawn). I am going to explain in details why the “new” Datasnap is not […]

Categories
Delphi Software development

Making Delphi work with DCOM

In the past few days I had many troubles making our application work when the client was installed on a PC outside the application domain. It was due to several Delphi 2007 issues with DCOM. Usually, when a user was outside a domain we used TSocketConnection and the “Borland” Socket Server to establish the connection. “Outside” the domain usually […]

Categories
Software development

The useful App Paths registry key

Yesterday on the Italian Delphi newsgroup run by Marco Cantù, Delphi&Dintorni, appeared a post asking how to load BPLs without writing them in the system directory or in the application directory. I suggested to use the “App paths” registry key [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths], but while looking for a reference for its proper use I didn’t find a […]