AmiBroker 6.38.0 RC released

Yes, as name says notifyKeyDown captures WM_KEYDOWN Windows messages:

and yes WM_KEYDOWN are raw.

Key codes sent in WM_KEYDOWN are listed here:

With regards to focus - I explained already two times -please re-read carefully
the previous post and post that I quoted. I can only re-iterate:

and we would be back to square one (situation from: Any interest in event-driven keypresses?)

1 Like

@Tomasz, Thank you for the release. I use 4k monitors, the HighDPI awareness fixes MDI issues you pointed out in 23 & 24. I wrote a bunch of chart using gfx. When I wrote those I was using 1920x1080 resolution monitors. They look perfect on 1920x1080 monitors, however on 4k monitors I think because of pixel size they don't look as good. Does gfx need to become HighDPI aware or is there a programming trick that can be use to make gfx charts resolution independent?


I assume that you mean Gfx* functions when you talk about "chart using gfx". If thats the case, all Gfx* works with physical pixels, that obviously are much smaller on HighDPI screens.
Therefore you need to scale all pixel co-ordinates if you want Gfx* - drawn elements to be larger. Program won't do that for you because, as I wrote, the unit for Gfx function is one physical pixel.

Thanks, I was referring to Gfx functions. Is there a function (a way) to get the resolution of the screen in afl. I am thinking using conditional statement for scaling co-ordinates based on screen resolution.

There is only GetStatus("pxchartwidth"), GetStatus("pxchartheight") that reports CHART pane pixel dimensions. You may use that to switch after certain threshold is exceeded.


  1. Pretty much everything (including DPI settings) are in the registry:
  2. In Windows 10 you can have multiple monitors EACH having different DPI
1 Like

A question to the community here. One of the features in the latest release is this;

  1. AFL: new function GetObject( path, class ) providing functionality equivalent to JScript GetObject and VBScript GetObject

It sounds like a useful and flexible feature. What are some useful possible applications for this feature?

GetObject allows you to connect to already running instance of OLE automation server that has given file already opened:

// would connect to running Excel instance that has given file open
obj = GetObject("C:\\SomeDir\\TestFile.XLS");  

Disclaimer: this function uses pretty old Microsoft APIs that are known to have their own bag of problems and are known to NOT work for some automation objects on Windows 10. I don't accept ANY "bug reports" to the functionality of GetObject, because it is SOLELY MICROSOFT code and I can't fix Microsoft errors.


Thanks for the suggestion to use GetStatus. As the size of chart pane changes so does info reported by GetStatus. I couldn't find a way to decipher the resolution of the screen, unless Amibroker window is fully maximized.

Perhaps if it make sense, you can add a function that return DPI setting in the future. meanwhile I guest I live with imperfect charts.


Did you remove e-signal Plug-in ? It is not found in 6.38 version.

Esignal Plugin

No, I didn't, but 64-bit Signal plugin uses 2005 runtime and requires you to install runtime separately from:

1 Like

BTW, I believe Esignal will stop providing data access to Amibroker via the eSignal Data Access from December. Anyone else receive the email below? If so, are there other long term historical intraday data providers besides IQFeed?

Email received:
Our records indicate that you are currently subscribed to the eSignal Data Access / eSignal Data Manager product (“Product”).

Please be advised that as of your next monthly billing date of 12/4/2020, the Product will no longer be available under your eSignal account. As of such date, you will no longer receive or be invoiced for the Product.

We apologize for any inconvenience this may cause. We appreciate your business and hope that you will consider transitioning to our [eSignal Suite of software products]

If you have any questions or need further assistance please feel free to [contact our Support Team]

ICE Data Service

I believe that if you change your subscription to regular eSignal, it will continue to work with AmiBroker because, eSignal is using Data Manager and very same API that AmiBroker uses in their own charting application and from technical stand point there is no difference what application consumes data fed by Data Manager.

There is no single technical reason, just purely eSignal "business" decision to "persuade" customers to use their software.

1 Like

Thank you. They switched me over to another service and data is coming back in.

1 Like

Thank you for all information!

to remove all doubts, I decided to extend the subscription with eSignal by one month. It is likely as you have rightly pointed out to me.
The right hand of the support, does not know what the left hand trade does. :thinking:
Thanks a lot

Will this version give support to 8 digit ICB codes, as per discussion in ICB new structure

If not, when can we expect to receive it, from a timeline perspective?

Thank you

Yes, version 6.39 (to be released soon) already has new ICB scheme implemented.


AmiBroker 6.39.0 Release Candidate is about to be released this week with 25+ new features and enhancements.


It has arrived: AmiBroker 6.39.0 RC released

Discussion is continued here: AmiBroker 6.39.0 RC released