Jump to content

mitzi

Members
  • Content Count

    63
  • Joined

  • Last visited

Posts posted by mitzi


  1. 14.7.1 10.11.2023
    + TMiTeC_SMBIOS - SMBIOS 3.7 compliance and bug fixes
    + TMiTeC_SMBIOS - LoadFromFile, SystemString, InstalledMemory and MemoryType functions added
    + TMiTeC_Machine - Hyper-V session detection added
    + Demo 36 added - working with TMiTeC_SMBIOS
    + TMiTeC_EventLog - ExpandMessages, NewAPIAvailable properties added
    + TMiTeC_EventLog - OnExpandMessage event added
    * TMiTeC_EventLog - bug fixes
    + TMiTeC_OperatingSystem - Game Mode detection (for Win >=10)

    + Delphi 12 Athens compatibility

     

    For more information see https://www.mitec.cz/msics.html

     

    MSICSBanner.png


  2. 14.7.0 7.7.2023
    + TMiTeC_CPU - extended feature flags detection completed (CET, CET-IBT and CET-SSS and many more)
    * TMiTeC_SMBIOS - completely rewritten (MSI_DMA.pas removed, MiTeC_Firmware.pas added)
    + TMiTeC_Monitor - EDID decoding enhanced, new fields
    + TMiTeC_Display - WDDM version detection enhanced
    + TMiTeC_WiFi - added 802.11ad and 802.11ax types detection
    * TMiTeC_WiFi - Channel number evaluation and wifi detection fixed
    + TMiTeC_BitLocker - BitLocker status and recovery keys
    * Internal code optimizations
    + TSysProcMonThread - added GDI handles enumeration
    * TSysProcMonThread - fixed Environment enumeration for 32bit processes

    + Demo 35 added - working with Network Configuration class

     

    For more information see https://www.mitec.cz/msics.html

     

    MSICSBanner.thumb.png.e43aa192aba2b9adfd102f04122c684e.png


  3. 1.6.0 7.7.2023
    + Bulk Edit - added Code Signing option and EXE Protection commandline
    + Profile - added Code Signing option
    * Fixed compiler path variables
     
    1.5.2 20.4.2023
    + Options - added more known and reliable timestamp server URLs to select from
    * Internal stability fixes and optimizations
     
    1.5.1 3.1.2023

    * Bugs and High DPI issues fixes

     

    For more information see https://www.mitec.cz/pm.html

     

    PMBanner.thumb.png.5b2fec2600a8ea00ec0a63fa71050f56.png


  4. 14.6.0 24.10.2022
    + TMiTeC_OperatingSystem - System Code Integrity options detection added
    * TMiTeC_OperatingSystem - LiveID detection fixed
    + TMiTeC_OperatingSystem - True windows name and version and compatibility mode detection enhanced and precised
    - TMiTeC_OperatingSystem - OSBuild property removed
    - TMiTeC_OperatingSystem - UpdateBuildRevision property added
    + TMiTeC_SMBIOS - UEFI Secure Boot status detection added
    + TMiTeC_SMBIOS - SMBIOS 3.6 compliance
    * TMiTeC_SMBIOS - Fixed BIOS size evaluation
    * TSysProcMonThread - process CPU usage fixed under Windows Vista
    + TSysProcMonThread - CPU package temperature added (experimental, only on machines with appropriate thermal zone available)
    * TMiTeC_Storage - HDD SSD temperature detection fixed
    * TMiTeC_Network - Adapter max speed detection fixed
    * Demo 02 - memory detection fixed
    * Demo 19 - CPU temperature added
    * Application GetSys redesigned

    + TMiTeC_EventLog - added Backup (creates specified evetlog container backup to evt file) and ClearLog (clears specified log container) functions

     

    For more information see https://www.mitec.cz/msics.html

     

    MSICSBanner.png

    • Like 1

  5. 1.4.8 8.6.2022
    * Bug fixes and UI polishing
     
    1.4.7 13.5.2022
    * Fixed internal bugs causing that wrong target platform or compiler settings are used for building
    * Fixed AV on Remove task when non-default sorting in task list is used
    + Compiler search path in compiler properties made more readable
     
    1.4.6 12.5.2022
    * Fixed error while saving new project
     
    1.4.5 9.5.2022
    + Added two more global variables to Project options
    + Variables can be used in task filename
    + UI changes (Win 11 compatibility)
    + Added new variable OUTPUTFILENAME containing compiled filename with path and extension
    * Fixed make issue with output path defined in Delphi project options

    * Fixed make issue with Environment variables defined in Delphi

     

     

    For more information see https://www.mitec.cz/pm.html

     

    PM_001.png


  6. 14.5.2 21.6.2022
    * TMiTeC_CPU - Fixed CPU cache evaluation
    * TMiTeC_Storage - Fixed crash on systems with NVMe disks with RAID bus.
    * TSysProcMonThread - Max CPU speed fixed
    * TSysProcMonThread - Installed memory detection fixed
    - !!!! DEVELOPMENT AND COMPATIBILITY FOR DELPHI 2005,2006 HAS BEEN ENDED !!!!!!!!

     

    For more information see https://www.mitec.cz/msics.html

     

    MSICSBanner.png


  7. 14.5.1 10.9.2021
    + TMiTeC_CPU - added new AMD and Intel processor detection
    + TMiTeC_OperatingSystem - added Display version (ReleaseID becomes obsolete)
    + Windows 11 compatibility

    + Delphi 11 Alexandria compatibility

     

    For more information about the library, download locations and documentation, see the MiTeC System Information Component Suite Home Page

     

     

     

    MSICSBanner.thumb.png.16df0ea47ef88980233af80b7a6835cd.png

     


  8. As you likely noticed, Delphi 11 officially does not support Windows XP anymore. You can make your application compatible with XP again by simple set.
    In Project Options|Building|Delphi Compiler|Linking set "Set OS Version fields in PE Headers" and "Set SubSystem Version fields in PE Headers" to "5.1".


    Unless your application uses System.Threading.pas (TTask etc) you should run it under Windows XP with no problems. But if so, then you have to tweak this unit.
    Threading objects actually use in their internals new TThread.GetTickCount64 method, which is hardwired to Windows API GetTickCount64 which is not available in Windows XP API. 
    Take this unit from "source\rtl\common" folder in Delphi 11 installation. Declare new local function in the beginning of implementation section of this unit like this:

     

    function _GetTickCount64: UInt64;
    begin
      if TOSVersion.Major<6 then
        Result :=  TThread.GetTickCount
      else
        Result :=  TThread.GetTickCount64;
    end;
    

    and replace all occurrences of TThread.GetTickCount64 calls with _GetTickCount64.

    For Win32 applications then copy this modified unit to \lib\win32\debug and \lib\win32\release folders in Delphi 11 installation and rename original System.Threading.dcu to e.g. _System.Threading.dcu.


    Then build your project which uses System.Threading with Debug and Release configuration. New System.Threading.dcu should be created in mentioned folders. After this you should remove modified System.Threading.pas from these folders to prevent its recurrent compilation.

     

    Now your Delphi 11 Win32 applications should run under Windows XP with no External Exception crash.
     
     

    Screenshot_002.png

    • Like 6
    • Thanks 5

  9. 14.5.0  
    + MSI_SysProcMon - Added process username to sampling data
    + TMiTeC_Display - added GPU property indicating GPU presence
    * TMiTeC_CPU - fixed cpu core and thread count detection
    + TMiTeC_CPU - added SocketCount and SocketDesignation properties

    * TMiTeC_SMBIOS - fixed cache size detection when its size exceeding word boundary

     

    For more information about the library, download locations and documentation, see the MiTeC System Information Component Suite Home Page

    MSICSBanner.png

    • Like 4

  10. What is Project Maker?

     

    MiTeC Project Maker is tool for automated batch Delphi projects building. With Project Maker, you can set compiler and its configuration, define actions processed before and after building, patch version information of built binary, sign this binary with specified certificate, apply 3rd-party software protection and many more.

     

    How does Project Maker work?

     

    Project Maker offers clear powerful interface for project building task definition. Every project can contain unlimited number of tasks. Task represents Delphi project, defined in dpr or dproj file. In addition Project Maker features Profiles, where you can define common properties for project. The project can have unlimited number of profiles. Using profiles you can simply switch between variety of build configurations.

     

    Who is Project Maker targeted on?

     

    Project Maker is targeted on developers who need to make various build scenarios and make repeated actions automatic. Project Maker is simple but powerful and provides one-click building of very complex and dependent projects.

     

    For more information see https://www.mitec.cz/pm.html

    PM_001.png

    • Like 3
    • Thanks 1

  11. New version 14.4.0 released

     

    * TMiTeC_Machine - domain detection fixed
    + TMiTeC_AD - Active Directory object properties evaluation enhanced
    * TPerfMonThread - Multi-instance counters evaluation fixed
    + TPerfMonThread - GPU processes and engines monitoring added
    + TMiTeC_Display - property LUID, PhysID, DriverDesc, DriverVersion, Location, WDDM version and GPU node enumeration added
    * TMiTeC_Storage - SUBST drives are now correctly evaluated
    + TMiTeC_Storage - SSD NVMe disks temperature detection
    * TMiTeC_Internet - Default internet browser and email client detection fixed
    + TMiTeC_Security - Added product version
    + TPerfMonThread - Added Demo 33 - GPU Utilization
    * TMiTeC_CPU - Codename and technology evaluation enhanced
    + TMiTeC_CPU - CPUIDSignature and MicroCodeRevision properties added
    * TSysProcMonThread - Fixed process module enumeration
    + TMiTeC_MachineJournal - Added Power event 41 evaluation
    + TMiTeC_SMBIOS - Table 2 (Mainboard) compeletd
    + TMiTeC_SMBIOS - Table 3 (Chassis) completed
    + TMiTeC_SMBIOS - Table 5 (Memory Controller) completed
    + TMiTeC_SMBIOS - Table 9 (System Slots) completed
    + TMiTeC_SMBIOS - Table 12 (System Configuration Options) added
    + TMiTeC_SMBIOS - Table 13 (BIOS Language Information) added
    + TMiTeC_SMBIOS - Table 34 (Management Devices) added
    + TMiTeC_SMBIOS - SMBIOS value reading code example added
    + TMiTeC_SMBIOS - SMBIOS now saves SMBIOS raw memory to SIF file and reconstructs all data from this record (if available) on load
    + TMiTeC_Devices - Added Parent field to TDevice to ensure correct device hierarchy
    + MSIX application - UI enhanced and polished
    + MSIX application - added embedded vendor and product database so that VendorID and DeviceID/ProductID are now translated to real names
    + MSIX application - Bus tree is now correctly hierarchised

    + ROM BIOS Explorer application - UI enhanced and polished

     

     

    For more information about the library, download locations and documentation, see the MiTeC System Information Component Suite Home Page

     

    MSICSBanner.png

    • Like 2

  12. New version 2.4.0 released

     

    * Fixed version info parsing bug (out of memory)
    + QT Installer detection added
    + Executable description - property Description
    + Overlay data type detection - property OverlayDataType
    + Advanced Installer detection
    + StarForce protection detection
    + WinZip installer detection
    + Rich header table detection enhanced
    + Debug information type detection enhanced
    + Load Config detection enhanced

     

    For more information about the library, download locations and documentation, see the MiTeC Portable Executable Reader Home Page


  13. What is Project Maker?

     

    MiTeC Project Maker is tool for automated batch Delphi projects building. With Project Maker, you can set compiler and its configuration, define actions processed before and after building, patch version information of built binary, sign this binary with specified certificate, apply 3rd-party software protection and many more.

     

    How does Project Maker work?

     

    Project Maker offers clear powerful interface for project building task definition. Every project can contain unlimited number of tasks. Task represents Delphi project, defined in dpr or dproj file. In addition Project Maker features Profiles, where you can define common properties for project. The project can have unlimited number of profiles. Using profiles you can simply switch between variety of build configurations.

     

    Who is Project Maker targeted on?

     

    Project Maker is targeted on developers who need to make various build scenarios and make repeated actions automatic. Project Maker is simple but powerful and provides one-click building of very complex and dependent projects.

     

    For more information see https://www.mitec.cz/pm.html

    PM_001.png


  14. TCP clients are connected to devices (servers) or devices connects to TCP servers as clients and receive raw data to stream. Once the data is identified as valid input (data has header and terminator or etc) it is passed to thread which parses data by protocol (defined by header) and creates unified "signal" structure which is pushed to Buffer. Many data sources feed this Buffer this way (hundreds data packets per second). Other TCP clients are connected to other application (TCP server) which processes these signals.

    More sending TCP clients ensure faster signal delivery to main app. See attached scheme.

     

    Screenshot_001.png


  15. I really don't know what is wrong with thread containing TWSocket where in Execute method buffer is repeatedly asked for data and if data is available then TWSocket sends it. Why this solution is not recommended?  Buffer is FIFO and it is (and should be) independent of any communication or messaging. It features Push and Pop methods and it is up to any kind of client to ask it for data or feed it with data. No trigger mechanism is usable because if new client is created it simply can't wait for any message signalling there's data available. It must look itself for it. Repeatedly. Thread is the best solution for this in my opinion. Only problem is with issues I mentioned in initial post.


  16. Well, I'm really lost. I need several tcp clients to pop data from buffer simultaneously and send them as quick as possible. I need either timer or loop for this, but both are blocking, or thread where tcp client is its member but it does not work correctly :(. If there were some event like OnIdle or something like that where I would call pop and send when socket is ready or available then I understood how to do it without thread. But I didn't find anything like that. Buffer is fed with data from several processing threads massively so it is not too good idea to trigger all sending clients from it.


  17. Planned service should read data from many TCP clients (connected to various TCP servers), process them and send results to other TCP servers. When I tested this concept in non-thread env I found out that clients first read data from their connections (in main thread) and after all data is read then processed results are sent to servers. It is not parallel. Data reading in main thread blocked sending. There's buffer that receives results from data processing threads and out clients should pop up data from it immediately when they are available and send them out. But this is blocked because main thread is busy due to OnDataAvailable events from reading clients. I need TCP clients to read and send data in threads. Maybe I simply don't use ICS correctly, so please point me correct way.

     


  18. Hello,

     

    I need to implement TCP client(s) in thread(s) with reconnect feature (if connection is closed with error then client tries to reconnect) which should run in service. I created server and client demo app to test this concept but I met following issues and I'm really not able to find out what's wrong in my implementation.

    1.  When I run server, start it and start internal client (client implemented the same exe) server throws "error:00000000:lib(0):func(0):reason(0), State: before SSL initialization, connection closed unexpectedly" in OnSslHandshakeDone and disconnects client. When I start (the same) client as standalone exe, it works.
    2. When I run and start server, then run and start standalone client and then kill server app (to simulate connection error) client starts to reconnect and when server is started again TWO client connections are established (!?) from client application. The second one is correct and the first one is some ghost or whatever.
    3. Sometimes while client tries to reconnect after text is received from server or sent to server, first connection attempt causes various exceptions and client thread is terminated.

     

    Can you please inspect my code in attachment? Test self-signed certificate for SSL is included (SSC.pfx).

     

    Thanks in advance

     

    ICSTCP.ZIP

×