The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,835 other subscribers

Archive for the ‘Windows Development’ Category

Windows XP activation algorithm cracked, keygen updated • The Register

Posted by jpluimers on 2026/08/05

20260805: edits as since scheduling, some links suffered link rot and a new tool appeared.

For my link archive because – for offline usage – sometimes Windows XP is still useful to run tools that have never been made compatible with less ancient hardware/software combinations.

The xp_activate32.exe mentioned below emulates the phone-activation response and is the important bit for me as I can re-use existing Windows XP license keys that I already have.

The WindowsXPKg generates new Windows XP license keys.

Read the rest of this entry »

Posted in C, C++, Development, Power User, Software Development, Windows, Windows Development, Windows XP | Leave a Comment »

Since more than 40 years, `c:tmp.txt` is a valid file path on Windows (because of MS-DOS 2.x)

Posted by jpluimers on 2026/07/22

Some are surprised but because of MS-DOS 2.x compatibility:

`c:tmp.txt` is a valid file path on Windows

Since each drive letter remembers the current directory and that memory bit is not thread-local nor process-local, so relying on it is bad practice.

The above is a quote from [Wayback/Archive] Oleksii Holub 🇺🇦 on Twitter: “So I was trying to understand the difference between <code>Path.IsPathRooted(...)</code> and <code>Path.IsPathFullyQualified(...)</code> and learned that apparently <code>c:tmp.txt</code> is a valid file path on Windows 🤯” which has an image without alt-text on a long bit of Microsoft documentation which I will further quote below.

Many people don’t know this, so here is a list of variations on relative paths:

Read the rest of this entry »

Posted in Conference Topics, Conferences, Development, EKON, Event, History, MS-DOS, Power User, Retrocomputing, Software Development, Windows Development | Leave a Comment »

PowerShell script useful for playing back in Cartrain CP7##BMW devices (currently CP700BMW, CP730BMW, CP740BMW) as these play back in the order in which directories and files have been created.

Posted by jpluimers on 2026/06/10

[Wayback/Archive] This is useful for playing back in Cartrain CP7##BMW devices (currently CP700BMW, CP730BMW, CP740BMW) as these play back in the order in which directories and files have been created. which is related to Elektronik-Idee – CP740BMW – USB wireless MP3 Player (with Bluetooth and Audio/Video in support) and fully PowerShell 2.0 compatible:

Script to recursively copy directories in alphabetical order from source-base-directory to destination-base-directory
while adding an intermediate directory with a single uppercase letter in destination-base-directory for 
each set of directories under source-base-directory starting with that letter.

This is useful for playing back in Cartrain CP7##BMW devices (currently CP700BMW, CP730BMW, CP740BMW)
as these play back in the order in which directories and files have been created, as per:

- https://www.cartain.de/downloads/cp740bmw/CP740BMW-OM.pdf

  Unterordner sind hervorragend geeignet um Musik besser zu organisieren. Dateinamen und Unterverzeichnis sind in der Reihenfolge gleichgestellt. Die Wiedergabe der Titel in sämtlichen Unterordnern erfolgt der Reihe nach wie sie auf den USB Stick kopiert wurde

- https://www.cartain.de/downloads/cp740bmw/CP740BMW-OM-EN.pdf

  Sub folders are a good possibility to organize your music collection. The order of playback is the same order you copied the files onto the card.

- https://www.cartain.de/downloads/cp730bmw/CP730BMW-OM.pdf
- https://www.cartain.de/downloads/cp730bmw/CP730BMW-OM-EN.pdf

–jeroen

Read the rest of this entry »

Posted in .NET, CommandLine, Development, PowerShell, PowerShell, Scripting, Software Development, Windows Development | Leave a Comment »

Wondering if the takeown/icacls/del trick still work to screw up %windir%\system32 (via Patrick Doyle on Twitter)

Posted by jpluimers on 2026/05/07

A few years back this trick was shown to screw up %windir%\system32 [Wayback/Archive] Patrick Doyle on Twitter: “@SwiftOnSecurity @RoseAreaZero Delete any file in three easy steps: > takeown /F "example.ext" > icacls "example.ext" /grant "%USERNAME%":F > del "example.ext".

Like [Wayback/Archive] SwiftOnSecurity (@SwiftOnSecurity) / Twitter (see the long thread further below), I was expecting that Windows would either prevent you from doing this at all, or allow for easy recovery with System File Protection (now Source: Windows File Protection).

That didn’t prevent or recover it back then.

I wonder if that has been changed by now.

From the above Tweet:

Delete any file in three easy steps:
> takeown /F "example.ext"
 > icacls "example.ext" /grant "%USERNAME%":F
 > del "example.ext"

Read the rest of this entry »

Posted in Batch-Files, Development, Power User, Scripting, Security, Software Development, Windows, Windows 10, Windows 11, Windows Development | Leave a Comment »

100 Years of Microsoft Stories – YouTube

Posted by jpluimers on 2026/04/29

As a Windows Developer, this was a huge trip down memory lane: [Wayback/Archive] 100 Years of Microsoft Stories – YouTube

--jeroen

Posted in Development, Software Development, Windows Development | Leave a Comment »

Updating Microsoft Office on Windows from a batch file

Posted by jpluimers on 2026/04/21

This batch file works for modern Click-to-Run (sometimes called ClickToRun, Click2Run or C2R) based Office installations (note the odd lowercase microsoft shared which indeed is the actual directory name):

if exist "%CommonProgramFiles%\microsoft shared\ClickToRun\OfficeC2RClient.exe" (
  "%CommonProgramFiles%\microsoft shared\ClickToRun\OfficeC2RClient.exe" /update user
) else (
  echo could not find the Office Updater
)

This for sure does not work for MSI based Office 2013 and lower (which are updated through Windows Update anyway). Since I only have 2021 online (Click-to-Run) installs and higher to test with: those work fine.

Read the rest of this entry »

Posted in Batch-Files, Development, Office, Office 2021, Office Development, Power User, Scripting, Software Development, Windows, Windows Development | Leave a Comment »

Steven Murdoch on Twitter: “However, the new “more secure” Universal Windows Platform (UWP) sandboxes the file picker in a separate process, allowing neat features like capability-based access control. It returns a file handle which, if the selected file exists, will not overwrite the existing content! 3/9”

Posted by jpluimers on 2026/04/07

Windows had its own aCropalypse in the Snipping tool, but other UWP based applications are vulnerable of that too because of this:

[Wayback/Archive] Steven Murdoch on Twitter: “However, the new “more secure” Universal Windows Platform (UWP) sandboxes the file picker in a separate process, allowing neat features like capability-based access control. It returns a file handle which, if the selected file exists, will not overwrite the existing content! 3/9”

It is part of this interesting [Wayback/Archive] Thread by @sjmurdoch on Thread Reader App with these two parts just after the above Tweet:

The old Win32 API for saving a file was (roughly) to show a file picker, get the filename the user selected, and then open the file. To open a file, the programmer must specify whether to overwrite the file or not, and example code usually does overwrite the file.
However, the new “more secure” Universal Windows Platform (UWP) sandboxes the file picker in a separate process, allowing neat features like capability-based access control. It returns a file handle which, if the selected file exists, will not overwrite the existing content!

The tread continued supporting this statement, that in the new situation you need to manually truncated the file, and referenced these links:

Read the rest of this entry »

Posted in .NET, Conference Topics, Conferences, Development, Event, SocialMedia, Software Development, Twitter, UWP (Universal Windows Platform), Windows Development | Leave a Comment »

Chocolatey Software | GNU sed

Posted by jpluimers on 2026/02/24

I needed to document how to install sed on Windows (which I did a long time ago after writing Plastic SCM: show the current changeset abstract (without files) on the commandline) and recently for some more scripting work(which I will blog on that later this week).

At the time of writing it was [Wayback/Archive] Chocolatey Software | GNU sed 4.8, but this Chocolatey command will install or upgrade to the most recent available version:

choco upgrade --yes sed

Of course, like yesterday’s post Installing OpenSSL on Windows, you could use winget or scoop for this as well. Finding out the commands is left as an exercise to the reader (;

Query: [Wayback/Archive] chocolatey sed – Google Search

–jeroen

Posted in *nix, *nix-tools, Chocolatey, Development, Power User, Scoop, Scripting, sed, Software Development, Windows, Windows Development, winget | Leave a Comment »

msxml – Error when loading valid Windows-1252 document “System error: -2146697210” – Stack Overflow

Posted by jpluimers on 2026/02/04

Yes, I know that Windows XP SP3 and Windows 7 SP1 have been end-of-life for a long time, but in the wild they are still being used so here is for posterity:

[Wayback/Archive] msxml – Error when loading valid Windows-1252 document “System error: -2146697210” – Stack Overflow (thanks [Wayback/Archive] Rob Kennedy for the comment):

Read the rest of this entry »

Posted in .NET, Delphi, Development, History, Power User, Software Development, Windows, Windows 7, Windows Development, Windows XP, XML, XML/XSD | Leave a Comment »

Ioan Popovici @ MEM.Zone on X: “The Inno setup uninstall switches are the funniest thing ever. SILENT, /VERYSILENT I knew about this but didn’t think that the silent uninstall registry keys would be just SILENT. I’ve fixed that in the bulk uninstall tool but man microsoft should have forced”

Posted by jpluimers on 2025/08/21

For my link archive: [WaybackSave/Archive] Ioan Popovici @ MEM.Zone on X: “The Inno setup uninstall switches are the funniest thing ever. SILENT, /VERYSILENT I knew about this but didn’t think that the silent uninstall registry keys would be just SILENT. I’ve fixed that in the bulk uninstall tool but man microsoft should have forced”

Read the rest of this entry »

Posted in Development, Inno Setup ISS, InnoSetup, Installer-Development, Power User, Software Development, Windows, Windows Development | Leave a Comment »