Jump to content

FredS

Members
  • Content Count

    430
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by FredS


  1. 7 hours ago, DelphiUdIT said:

    I use WINMD and have never found any bugs since.

    But I'm worried that there is something latent or hidden that I am unaware of.

    I once sent out an app after a Delphi update and the new GetAce declaration broke it.. they left it that way for years..

    The funny part is that others have run into GetAce issues and where told to switch to WinMD 🙂

     

    RSP-44096 was my second attempt to try a newer version of WinMD. Other issues from the prior one have died in the old system.

    Anyhow, if you claim to build the API using the M$ supplied db and I can't trust just one single function then I have to assume there are more hidden issues..

     


  2. On 5/18/2025 at 7:20 AM, pyscripter said:

    So it appears that if a class helper is in scope where a class is defined, it is used unconditionally in all units of a project.

    May explain an old bug report I file where adding a second record helper (access to private as a bug fix) lower down in a unit would be ignored.

     

    There may be a workaround for class helpers, in this case you can inherit from the original class helper.

     

    THelper2 = class helper(THelper1) for TMyClass

     

    • Like 2

  3. 6 hours ago, Mustafa E. Korkmaz said:

    RunAsAdminWithPassword

    To test this out I used an app which requires elevation.

    The error below seems like an awkward way to handle this..

     

    This Errors with "The requested operation requires elevation" when executed from a non elevated process.

    More info here: https://stackoverflow.com/questions/4713196/createprocesswithlogon-error-requires-elevation

     

     

     

     


  4. 28 minutes ago, Mustafa E. Korkmaz said:

    The Elevate package is mentioned in the link Remy sent.

     

    The program is run normally under a non-admin user name.
    As far as I know If the program is not run with admin rights, we cannot use the AdjustTokenPrivileges function for SE_ASSIGN_PRIMARY_TOKEN_NAME.

     

    The User token must exist else you cannot enable it.

     

    Also Impersonations work on a thread basis, it may not be possible to use the Main Thread for this!

    Quote

    The ImpersonateLoggedOnUser function lets the calling thread impersonate the security context of a logged-on user. The user is represented by a token handle.

    It may be worth your while to supply us with Process Explorer details as Kas has.


  5. 12 hours ago, EugeneK said:

    But this is simply not true because managed records can be used for generics restricted to records in 12.2 and before. I had a lot of code broken because of this change that worked perfectly fine.

    Managed records took a long time to fully implement and yes, records with strings where not managed or let's call them pseudo-managed and allowed.

     

    That only leaves the Q why fix or enforce this in: 12.2>12.3..

     


  6. 3 hours ago, Brandon Staggs said:

    if LSP would work properly in our large code base. It actually seemed worse

    Seemed fine on a smaller section of code base but the same code base in the new 64-bit preview was a disaster..


  7. 8 hours ago, Kas Ob. said:

    But my question is Why and How is this useful

    This dates back a while, pretty sure some cross certificate (driver signing) issuer supplied this as part of an example on how to sign.a driver.

    I only recall because I had to remove it when we stopped cross signing everything.

     


  8. On 10/2/2024 at 12:47 AM, Kas Ob. said:

    On side note:

    I never saw "/ph" and "/nph" being used, and honestly don't know what exactly they do, only can imagine or assume,

     

    If you have any resources on this, i would appreciate sharing !

    /ph - Page hash enforcement verifies the signature on each page of the executable file as it loads into memory, this attaches the cross chain certificates


  9. 9 hours ago, Remy Lebeau said:

    According to the release announcement, you shouldn't have to reinstall any installed components, only GetIt packages.

    The installer overwrites the Environmental Path because it wants to dump everything into the OS Path with each install.

     

    Or at least that is the only thing I had to change fix for the last three updates.


  10. 1 hour ago, Remy Lebeau said:

    repeat case Windows.WaitForMultipleObjects(2, @Handles[0], False, Infinite) of WAIT_OBJECT_0: Break; WAIT_OBJECT_0 + 1: CheckSynchronize; else RaiseLastOSError; until False;

     

    And WaitForMultipleObjectsEx allows you to add alertable flags to handle Paint message or all depending on requirement.


  11. 6 hours ago, Uwe Raabe said:

    Even that can be handled with initially wiring FormFirstShow with OnShow and inside wiring the regular FormShow.

     

    Not that I am actually promoting this approach, but I am neither a friend of these Run-Once-Booleans cluttering a class declaration.

     

    Which what I ended up doing in a base form. Still that single bit boolean is a quick fix if needed.


  12. 3 minutes ago, Anders Melander said:

    If you mean the, undocumented, TextScaleFactor setting then no, that doesn't do it.

    Well the documentation language is always MAY 'Recreate the Window', so your mileage may vary.

     

    Think some API like SetWindowPos and MoveWindow have that, I know I ran into it while switching desktops via API..

     

    Simpler just to add a FirstShown Property.

     


  13. 1 hour ago, Darian Miller said:

    No. The systems are synchronized internally and we refer to both but there is no current way of surfacing a link between the old and new systems.

    Wasn't another point to finally merge those internal and external issues.. now all external ones have become internal..

     


  14. 4 hours ago, gkobler said:

    After Install D12.1 it looks like ok, but all win64 path settings are lost

     

    Was just going to look at that.. one 'good' thing EMBT has taught me is to generate a snapshot before attempting any installation..

     

    DId a registry compare and it wiped out the path and the Win64 Library Path..

×