Auto-translated
I tried this program and made the following observations.
It works with the third "platinum" edition of Heroes, but not immediately. For some reason, the regular expression only works when it's in the form ".*". Assigning an expression that matches only the Heroes3.exe file (e.g., ".*Heroes3.*") doesn't produce the desired effect.
The game starts to lag, but the CPU load doesn't decrease as quickly as one would like. It can be assumed that the lag is roughly proportional to the CPU load reduction. In other words, the CPU is freed up at the expense of slowing down the program. In reality, there is probably some benefit to stopping the program at the point where the aforementioned function is called, rather than somewhere else, but it's probably not that significant. Well, what did you expect? This is what should have been expected. Moreover, the "shim" itself consumes a noticeable amount of CPU, which is significant.
It doesn't work with the second Heroes game. Probably, the second Heroes game uses a different method.
In general, it can probably be done properly only by modifying the game itself – replacing the infinite function call with a single, more intelligent call, or something like that. Nevertheless, thank you to the author for the work done. If the goal is to reduce the resource consumption of the third Heroes game by any means, then this option can be used. Especially when there are no other options at all