Jump to content

Der schöne Günther

Members
  • Content Count

    656
  • Joined

  • Last visited

  • Days Won

    12

Everything posted by Der schöne Günther

  1. Der schöne Günther

    SSL certificate for VCL Application Exe

    Thank you for clearing this up. Absolutely. As far as I understand, an OV certificate might be sufficient for Freeware tools, but for something you sell, it seems it should most definitely be an EV one. An alternative would be using the App store which is something I am considering. Cost is a one-time fee of 100 US $ for a company developer account, after that, Microsofts infrastructure takes care of hosting, certificates and so on.
  2. Der schöne Günther

    SSL certificate for VCL Application Exe

    @DelphiUdIT, can you give us a product name? Sounds interesting, especially the costs. I also still struggle to understand if an EV certificate is really good for anything besides drivers. I don't have a source at hand, but I remember that Microsoft SmartScreen will automatically grant an EV signed application a higher reputation than with a regular certificate. PS: MSIX files MUST be signed, there's no way around it.
  3. Der schöne Günther

    Delphi demands elevation?

    I might be missing something, but I think your topic title is misleading. An application "demands" elevation if it does so through its manifest or Windows thinks it should have elevation (for example, when it's named "setup.exe"). In your case, it's "I get a runtime exception when the app is not elevated. When it is, it appears to be fine". PS: I think the Windows "Sandbox" is a nice feature to check something out on a fresh installation. No need to roll back virtual machines.
  4. That depends on how your application is designed. I think we once had some discussion like that here. My viewpoint is: Do what you have to be doing (like saving stuff to disk), then terminate. Skip the VCL forms destructors and all that. Just end. I vote for "Abort whatever is runnig async". Let me quote Raymond Chen (altough taken slightly out of context here): Source: When DLL_PROCESS_DETACH tells you that the process is exiting, your best bet is just to return without doing anything | The Old New Thing (microsoft.com) Source: Windows doesn't close windows when a user logs off; that's your call | The Old New Thing (microsoft.com)
  5. I had a look at it, but never got started because it did not support my use case*. The REST api documentation seemed very ok. Example: Working with files in Microsoft Graph - Microsoft Graph v1.0 | Microsoft Docs However, I found it unnecessary difficult to get started because you had to register an "app permission" on your companies Office 365. I was able to do that (altough I have no special permissions), but still found everything around that unecessary difficult if you're not a SharePoint administrator. * I wanted to upload files to Sharepoint anonymously, which it does not support. OneDrive for Business, however, has a feature called "request files" but it seems unavailable from Graph.
  6. Der schöne Günther

    Delphi 10.4.2 always recompiling in IDE

    Are you sure it's compiling? For me, it's always linking the same exe over and over again, even if you just change a command line argument in the debugger. But compilation, no.
  7. Der schöne Günther

    Are there any experiences with www.experts-exchange.com ?

    I like how it took them years to realize that expertsexchange.com was generally read as "expert sex change".
  8. Der schöne Günther

    TTouchKeyboard layout

    In that case I'm not sure if spending too much time with TTouchKeyboard is even worth the hassle. Design your own English keyboard on a TFrame, you have full control and flexibility here.
  9. Der schöne Günther

    TTouchKeyboard layout

    That's what I do as well: I just change the systems keyboard layout so the TTouchkeyboard will follow. When not longer needed, you can also unload the English keyboard layout again so it will not show up ion the users language list ([Win] + [Space]). I am doing a kiosk application however. I also wouldn't be comfortable with doing that in a regular application...
  10. Der schöne Günther

    TJsonTextWriter out of memory

    In that case, I would probably resort to writing them to a string "by hand" and flushing the string to disk every few megabytes (or using a TBufferedFileStream).
  11. Der schöne Günther

    Getting Exception stack trace in 2021

    No, it doesn't. It's just a DLL with no further dependencies. Internally, it might leverage something from the JCL, but it's just a binary 🤷‍♂️
  12. Der schöne Günther

    Getting Exception stack trace in 2021

    That does the job of acquiring the stacktrace, yes. This often goes hand in hand with the question "How do I act whenever an exception happens so I can, for example, log them". To intercept both operating system and Delphi exceptions, it should be enough to point System.ExceptObjProc and System.RaiseExceptObjProc to an own handler.
  13. Der schöne Günther

    Getting Exception stack trace in 2021

    That's is what we usually do. Initially, we had the good old JCL. It was the only thing we used it for. Later, we figured out we don't really need it at all, it was sufficient to hook into a System.ExceptObjProc (and one or two other procedure variables) to point to our own exception handler. There, you can easily acquire the stack trace with with FastMM_Fulldebugmode.dll. It exports three handy methods to acquire the "frame based" and "raw" stack trace and, of course, to just get a string for the textual representation. Internally, the binary also uses the JCL, but can be recompiled to use Eureka or madExcept. At least, it saves us from installing the JCL at all, and the DLL is just a few kilobytes. Pretty happy with that, since we also have full control of how the stack trace is formatted and what happens with it, once an exception gets raised...
  14. Consider the following scenario: A full-screen Win32 application (Delphi, mostly) which must run 24 / 7. The computers are located inside a factory. They generally have internet access, but might have pesky company firewalls. Since the computers need to run 24/7, they never get Windows updates. We still have to support the earliest versions of Windows 7, for a few years to come Requirement: When the user actively requests it, gather some data, zip it, and "send it to our technical support department" This is what I call "phone home": I want the running application to send data (a single ZIP file) to our companies support department. There are a few thousand installations worldwide. They are not authenticated against anything, they're running local Windows accounts. So far, this has been done by using Delphi's Indy library to send an email to an old Exchange server of ours, by SMTP. I had taken the email approach because it will end up directly in the inbox of our support department. The downside of this method is that More and more companies are blocking outgoing SMTP traffic. They probably suspect spam. Some security solutions will even fake our servers reply and indicate success although the email never got sent. Our company wants to shut down our old in-house email server I am now looking for an alternative approach. Here is what I can think of: (1) Set up an FTP server, upload files there Advantages: The FTP server is under our control and will be running as long as we want to Our application can properly report upload progress Disadvantages: No experience with how likely this will be blocked by company firewalls Our service department will still have to be notified that something arrived at all. Either by email, or other means. (2) Post stuff to our SharePoint / Microsoft Teams Advantages: Posting text messages from the "outside world" (meaning: no authentication) to a channel in the support team works like a charm Disadvantages: When Microsoft breaks this API, it won't be working anymore I have found absolutely no way of uploading files to our SharePoint server anonymously. APIs like "Microsoft Graph" seem to be centered around authenticated ActiveDirectory/Azure users, and do not allow public access (3) Setup an own web server and POST data to this Advantages: It can probably be automated so that after successfully POSTing a file, an email or some other kind of notification gets sent to our department Disadvantages: No developer in our company knows anything about how to properly do web stuff (PHP?). (4) Setup a new, simple email server and continue as always Advantages: Existing software will continue to work Disadvantages: Lots of companies will block outgoing SMTP traffic and it just won't work (5) Drop "phone home" entirely Query the operator to download the ZIP file to a USB drive, go elsewhere, and send it to us Advantages: None Disadvantages: Too much hassle so many operators simply won't bother In order to access the USB port, operator will have to unlock and open an electrical cabinet which is, in some countries, limited to special personnel. What are your thoughts? Did I miss an obvious option? Thanks for taking the time to read.
  15. Der schöne Günther

    What is the correct approach to "phone home"?

    Thank you all very much for the replies so far 👍 I hope I can convince the management to host a native server here inside the company and make it accessible with a constantly open port. Just like the Exchange server they want to shut down. With a server in house, we could have full control about what is going on and could basically run any application there. I didn't really think about that. I had my mind on that external server that hosts our web page. I think it can only do PHP.
  16. Der schöne Günther

    Overloocked Format( ) options

    I didn't even know, altough it's properly documented: System.SysUtils.Format - RAD Studio API Documentation (embarcadero.com) I still find ('The result is %8.2f', [myFloat]) more readable than ('The result is *.*f', [8, 2, myFloat])
  17. Der schöne Günther

    Do bug fix patches really require active subscription?

    I think this used to be different. But judging from Lars' screenshot, it really looks like this is the current implementation:
  18. Der schöne Günther

    Strange message from Seattle

    That is because the IDE uses an embedded Internet explorer control to display web content from Embarcadero.com. Whenever there's something from with scripts or certificates on their end, error messages will be displayed on your computer.
  19. Der schöne Günther

    Find exception location from MAP file?

    We just set System.ExceptObjProc (and one or two others, I think) to point to our own exception handler and acquire a textual representation of the callstack with FastMM_Fulldebugmode.dll. Never saw the need for additional tools like Eurekalog or MadExcept. As far as I recall, precompiled FastMM dll internally uses JCL for looking up the .map file, but can be recompiled to use Eureka or MadExcept as well.
  20. Der schöne Günther

    TestInsight 1.2 released

    Awww, yuss! 🥳
  21. Der schöne Günther

    macbook pro M1, running Delphi IDE

    Here you go: Has anyone tried running Delphi on Windows ARM? - Delphi IDE and APIs - Delphi-PRAXiS [en] (delphipraxis.net) Can't blame you for not finding it, the forums search returns nothing on entering terms like "M1" or "ARM"
  22. Der schöne Günther

    Display Componant like Gauges Led and Graphic for Delphi FMX

    You are right that it can be used for commercial products: But the page you used correctly says: So yes, I may still charge money for the software I sell ("commercial"), but I will have to make all of my source code (not just yours) available to everybody. See here (in French): Licence publique générale GNU — Wikipédia (wikipedia.org)
  23. Der schöne Günther

    Display Componant like Gauges Led and Graphic for Delphi FMX

    It's the "license" page straight from his Github repo, I posted the link above. An even more colourful overview is provided by tldrlegal.com: GNU General Public License v3 (GPL-3) Explained in Plain English - TLDRLegal
  24. Der schöne Günther

    Display Componant like Gauges Led and Graphic for Delphi FMX

    Looks really nice. But are you sure about the GPL license?
  25. Der schöne Günther

    compiling DCU without creating EXE

    This is also one of the things that bugs me most. There must be a way to speed this up. You just change one line of code and then have to stare at your screen for 15 seconds because everything must be linked again.
×