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

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 »

Redux: Which Windows Resource Editor do you use?

Posted by jpluimers on 2025/08/21

A long time I wrote about Which Windows Resource Editor do you use? containing a poll to choose between XN Resource Editor, IcoFX, ResEdit and Resource Hacker.

In the meantime and betweentime more than 10 years have passed and there seems to be little maintenance in (especially the non-commercial part of) Windows Resource Editor land.

From the poll back then, I also learned about a (for me) new [Wayback/Archive] Resource Editor | MelanderBlog which is still maintained every now and then. The download is at [Wayback/Archive] Downloads | MelanderBlog (at the time of writing [Wayback] ResourceEditor20190421b.zip).

More on that and download/install locations of various resource editors below a new poll.

This new poll adds Resource Editor and allows you to make multiple choices (in case you use more than one tool):

Read the rest of this entry »

Posted in .NET, Delphi, Development, Software Development, Windows Development | Tagged: , , | Leave a Comment »