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 2,154 other followers

FeaturesShim: using ShimGen for creating a shim to a program either console or GUI so you need only one bin directory

Posted by jpluimers on 2020/11/17

[WayBack] FeaturesShim is a cool Chocolatey feature that uses ShimGen.

This allows Chocolatey to take only one directory in your search PATH, with a lot of small files, that link to the much larger actual executable files.

ShimGen (like many other parts of Windows and some other parts of Chocolatey) is not open source, but the mechanism is documented.

More information:


Posted in .NET, Development, Power User, Software Development, Windows, Windows Development | Leave a Comment »

delphi – What are the list of all possible values for DVCLAL? – Stack Overflow

Posted by jpluimers on 2020/11/17

From a while ago, from notes even longer ago – around 1994 on DVCLAL the Delphi VCL Access License code which is actually a checking logic for determining the SKU (stock keeping unit) or Delphi license: [WayBack] delphi – What are the list of all possible values for DVCLAL? – Stack Overflow

There is no official documentation on this, so here is something from my notes of 15+ years ago:

The DVCLAL is there to check which SKU of Delphi you are using and it varies per SKU.

There are only checks for the Professional (RPR) and Client/Server (RCS) SKUs:

procedure RCS;

procedure RPR;

If they fail, they call this method:

procedure ALV;
  raise Exception.CreateRes(@SNL);


  SNL = 'Application is not licensed to use this feature';

Depending on the feature matrix and Delphi version, various components call RPR and RCS in their Create constructors to guarantee a minimum SKU.

Underneath, these RPR and RCS functions call the function  GDAL . Their names are historic and got documented around Delphi 2007:

  • [WayBack] GDAL (Get Delphi Access License)
  • [WayBack] RPR will Restrict to PRofessional license and higher
  • [WayBack] RCS will Restrict to Client/Service license and higher

Historically you had these levels of Delphi editions that could be distinguished this way:

  1. Personal
  2. Professional
  3. Client/Server (or Enterprise)

This excludes Starter and Community (which are “just” Personal), Turbo (which was “just” Professional), Architect and Ultimate, which are “just” Client/Server with extra tools.

A few years ago, another answer got added to that question explaining more details:

I am just adding another answer to this question, for all the people who search the for actual DVCLAL (Delphi Visual Component Library Access License) values, as well as some other information for all people who are curious how stuff works.

1) Like Jeroen Wiert Pluimers said, if you want to check for “Professional or higher” or “Enterprise only” inside your Delphi application/library/package/component, you can use RPR (Require Professional) or RCS (“Require Client/Server”; Client/Server was the name for the Enterprise edition in early Delphi versions) respectively. If the requirement is not met, ALV (Access License Violation) will be called which will raise an Exception with the message defined in SysConst.SNL (S Not Licensed). In English:

Application is not licensed to use this feature

2) In case you want to check for one specific edition, you can use the output of the function GDAL (Get Delphi Access License), which is one of the following (AL1s array):

AL1s[0] = $FFFFFFF0; // Standard/Personal edition DVCLAL value
AL1s[1] = $FFFFEBF0; // Professional edition DVCLAL value
AL1s[2] = $00000000; // Enterprise/ClientServer edition DVCLAL value
AL1s[3] = $FFFFFFFF; // DVCLAL resource not existing

if the DVCLAL resource has an invalid value, GDAL will call ALVwhich will raise an Exception with message SysConst.SNL.

3) In case you want to check the DVCLAL value of a foreign EXE/DLL file (e.g. if you want to write a Resource Editor, decompiler etc), then you’ll have to query the DVCLAL resource directly.

There are only three official values:

Standard:      23 78 5D 23 B6 A5 F3 19 43 F3 40 02 26 D1 11 C7
Professional:  A2 8C DF 98 7B 3C 3A 79 26 71 3F 09 0F 2A 25 17
Enterprise:    26 3D 4F 38 C2 82 37 B8 F3 24 42 03 17 9B 3A 83

4) Just for fun: If you solve the formula 0 = (ROR(a,15) xor a) xor (ROR(b,10) xor b) xor (ROR(c,5) xor c) xor (AL1 xor AL2) you can define any DVCLAL value (tuple a, b, c, d) you want! (AL1 and AL2 are the values in the AL1s and AL2s arrays which describe the desired Delphi edition; ROR is rotate right through carry)

For example, here are alternative DVCLALs which work too:

Standard:      00 00 00 00 00 00 00 00 9B 70 0C 66 6B 8F F3 99
Professional:  00 00 00 00 00 00 00 00 9A DB 73 0F 6A 30 8C F0
Enterprise:    00 00 00 00 00 00 00 00 D8 B2 48 11 D8 B2 48 11

To validate a DVCLAL, you calculate

AL1 := DVCLAL[0] xor DVCLAL[1] xor DVCLAL[2] xor DVCLAL[3];
AL2 := ROR(DVCLAL[0],15) xor ROR(DVCLAL[1],10) xor ROR(DVCLAL[2],5) xor DVCLAL[3];

and look up AL1 and AL2 in the array AL1s and AL2s,

This way you can disguise the edition you have used a little.

5) In the meantime, an official documentation, at least for the functions GDALRPR and RCS, has been published.

6) Of course, everything works for C++ Builder, too.

In the mean time, new posts explaining bits of DVCLAL related resources (like PACKAGEINFO and CHARTABLE) and the TPF0 form/datamodule resource have appeared, of which this is a selection:


Posted in Conference Topics, Conferences, Delphi, Development, Event, History, Software Development | Leave a Comment »

OSX 10.13 with vSphere 6.7 – Virtual Odyssey

Posted by jpluimers on 2020/11/16

Interesting: I never realised that getting MacOS installed on ESXi was relatively easy!

[WayBack] OSX 10.13 with vSphere 6.7 – Virtual Odyssey:

vCenter 6.7a/ESXi 6.7a Installing OSX 10.13 seemed pretty straight forward on 6.7. Essentially, you mount the ISO as per usual, and the only thing I had to do before starting the installation was to format the disk via terminal. Once…

So no need for all this:



Posted in ESXi6.5, ESXi6.7, Power User, Virtualization, VMware, VMware ESXi | Leave a Comment »

Wifispots instellen | Klantenservice | Ziggo

Posted by jpluimers on 2020/11/16

Voor mijn archief: de truc is het certificaat. Zonder dat werkt het niet, ondanks zzz.

Wifispots instellen

Gratis wifi tappen terwijl je de hort op bent? Stel Wifispots in op je smartphone, tablet en laptop. Als je favoriete hotspot in Nederland Wifispots heeft ingesteld, bespaar je mobiele data voor de momenten dat je er even echt helemaal uit bent. Kun je lekker een ijsje kopen in plaats van extra MB’s.

Wil je deze tocht voltooien? Zorg dat je dit afvinkt:

  • Je persoonlijke inloggegevens voor Wifispots,die staan in Mijn Ziggo.
  • Een internetabonnement van Ziggo
  • Een voor wifi geschikt toestel (bijvoorbeeld een laptop, smartphone of tablet)

  Het zijn behoorlijk veel stappen, maar de meeste klanten hebben in 10 minuten Wifispots ingesteld.


Voordat je begint

Het is niet mogelijk om een verbinding te maken met je eigen Wifispot. Dat komt omdat je eigen wifi-netwerk een veel sterker signaal uitzendt dan je Wifispot. Als je eigen wifi-netwerk binnen bereik is, raden we je altijd aan om daar verbinding mee te maken.

Wifispots kun je het best gebruiken buiten de deur. Bijvoorbeeld bij vrienden thuis, bij een klant op kantoor of in het winkelcentrum.

Verbind je voor het eerst met Wifispots en ben je thuis? Maak dan bijvoorbeeld verbinding met de Wifispot van de buren. Je hoeft maar één keer een verbinding te maken en daarna ben je automatisch verbonden met alle Wifispots van Ziggo als je in de buurt bent.

Ga verder

In de volgende stappen laten we zien hoe je Wifispots handmatig instelt op je apparaat. Daarvoor heb je een Wifispots gebruikersnaam en wachtwoord nodig. Je vindt ze in Mijn Ziggo.

Stel je Wifispots in op je smartphone of tablet? Gebruik dan een ander apparaat (bijvoorbeeld je laptop) om dit stappenplan te doorlopen. Zo lees je alle aanwijzingen in dit stappenplan op het ene scherm en installeer je Wifispots op je smartphone of tablet op het andere scherm.


 Klik op Log in om Mijn Ziggo te openen in een nieuw venster. Voer je inloggegevens in om in te loggen op Mijn Ziggo.

Ben je je Mijn Ziggo inloggegevens vergeten? Vraag ze opnieuw op.


Kies na het inloggen voor Producten en klik op het tabblad Internet.


Scroll naar beneden naar Wifispots. Hier zie je je Wifispots gebruikersnaam en wachtwoord. Noteer deze gegevens. We hebben ze straks nodig.

Ook zie je hier je welke Type Wifispots je hebt.

Welk typeWifispots zie je in Mijn Ziggo staan?


Wat wil je instellen?

Naast Wifispots van Ziggo kun je in Zeeland gebruik maken van de DELTA WifiSpots, handig voor als je in Zeeland op vakantie bent.

Welke Wifispots wil je instellen?

Ziggo Wifispots DELTA WifiSpots

Kies het merk of besturingssysteem van je apparaat






Kies het merk of besturingssysteem van je apparaat








Download het Wifispots certificaat

Bekijk je dit stappenplan op een ander apparaat? 
Scan de QR-code op deze pagina om het certificaat meteen te downloaden.

Heb je geen QR-scanner? 
Ga dan naar om het certificaat te downloaden.

  • Vul bij Certificaatnaamin: Ziggo
  • Gebruik van certificaatgegevens: Wifi
  • Druk op OK

Heeft je toestel nog geen vergrendelbeveiliging? Dan wordt je nu gevraagd deze in te stellen.

Krijg je een melding om vergrendelbeveiliging in te stellen?

ja nee

Druk op Pincode.


Kies een pincode en druk op Doorgaan.


Bevestig de pincode en druk op OK.


Sluit je internetbrowser ga naar je Apps.

Hoe je precies bij al je apps komt, verschilt per merk. In dit geval swipe je omhoog of druk je op het pijltje.


Druk op Instellingen.


Druk op Netwerk en internet.


Druk op Wifi.


Druk op het draadloze netwerk met de naam Ziggo. Je apparaat logt vanaf nu altijd vanzelf in op alle WifiSpots. Goed om te weten: wanneer je de stappen uit dit stappenplan voor je apparaat hebt gevolgd, wordt je nooit meer gevraagd om de verbinding met WifiSpots met ‘OK’ of ‘accept’ te bevestigen.

Tip: We raden je aan om nooit verbinding te maken met wifi-netwerken die je niet vertrouwt. Doe je dat wel dan loop je het risico dat je hackers toegang geeft tot je smartphone, tablet of laptop. Zonder dat je het doorhebt.

Let op: zie je geen draadloos netwerk met de naam Ziggo? Schakel de wifi op je smartphone even uit en vervolgens weer aan. En controleer ook of je in de buurt zit van een Ziggo wifi-modem.


Krijg je nu een pop-up melding te zien of zie je bij het netwerk Ziggo ‘verbonden’ staan?

Ik krijg een pop-up melding Ik zie staan ‘verbonden’
  • Kies bij EAP-methode voor PEAP.
  • Kies bij Phase 2-verificatie voor MSCHAPV2.

Selecteer bij CA-certificaat het certificaat met de naam Ziggo uit Stap 6.

  • Geef bij Identiteit je WifiSpots gebruikersnaam op.
  • Laat Anonieme identiteit leeg.
  • Vul bij Wachtwoord je Wifispots wachtwoord in.
  • Druk op Verbinden.

Zie je een melding over netwerkcontrole?

Ja Nee


Je hebt Wifispots succesvol ingesteld.

Goed om te weten:

  • Je kunt vijf apparaten instellen voor gebruik met Wifispots. Wil je WifiSpots gebruiken op een ander apparaat? Vergeet dan niet de Wifispots instellingen op een van de eerder ingestelde apparaten te verwijderen.
  • Voortaan ben je automatisch verbonden als je in de buurt bent van een Wifispot. Bijvoorbeeld bij vrienden of relaties, in je favoriete koffietentje of in het winkelcentrum.
  • Op je eigen wifi-modem kun je geen verbinding maken met Wifispots. Dat is omdat je eigen modem een veel snellere wifi-verbinding heeft dan de Wifispots. Je bent nu wel automatisch verbonden met Wifispots op alle andere plekken waar ze beschikbaar zijn.

Posted in Power User, WiFi | Leave a Comment »

Pokestop not turning purple in Pokemon go

Posted by jpluimers on 2020/11/16

Found the cause of Pokemon stops not turning purple via [WayBackHas anyone else had issues with lures/incense not attracting pokemon? : pokemongo: phone was set on manual time (which was correct), and had time zone wrong for the current GPS location.

Now Pokeomon go gets confused, so does not want to guess the state of the Pokestop.

Via: [WayBackLures not spawning anything. Pokestops won’t turn purple. [BUG] : pokemongo


Read the rest of this entry »

Posted in LifeHacker, Power User | Leave a Comment »

%d bloggers like this: