Gibt es einen Grund, warum du das
Rad neu erfindest? Selbst Delphi 5 hat diese Funktion bereits deklariert. Und warum nutzt du nicht direkt die Rückgabe der Funktion LockWorkstation für das Result deiner Funktion Windows_Lock? GetLastError bei LockWorkstation=False kann zudem auch nicht schaden, um herauszufinden, warum es nicht geht.
Übrigns gibt es einen Unterschied zwischen BOOL und Boolean: BOOL = 4 Byte, Boolean = 1 Byte. Bin mir nicht sicher, ob das hier eine Rolle spielt.
Grüße
Dalai