Sorry if for bumping an old thread, but you said that if someone could come up with an implementation to add support for plugins, the aida64 team would be pleased to add it.
I came up with a potential implementation of an interface that developers could program off of to add custom plugins .
//interface for the collection of sensors
public interface ISensorCollection
{
//name of the collection "Voltage Values", or "Temperatures"
public string CollectionName { get; set; }
//Icon for the collection
public Icons CollectionIcon { get; set; }
//Enumerable collection of sensors
public IEnumerable<ISensor> Sensors {get; set;}
//Call this to execute the main code that the developers have implemented to update the properties
public async Task UpdateData();
}
public interface ISensor
{
//The name of the sensor itself
public string SensorName { get; set; }
//The value of the sensor. Values should be converted to string
public string SensorValue { get; set; }
//Units, such as Volts, Celcius, RPM,...
public string Units { get; set; }
//Icon to use for the sensor
public Icons SensorIcon { get; set; }
}
//Should be a list of all of the icons that you have available.
//so a user could pick the Fan icon, and the system would pull the fan icon accordingly
public enum Icons
{
Thermometer,
Fan,
Power,
RAM,
Battery,
}
With this, you could offer a base class/dll file that people could import as reference to their project, then implement the interfaces. The dll files could be loaded from "%APPDATA%/Roaming/AIDA64/plugins", and then execute the UpdateData() method to call the custom code to update the data.
On the actual interface, you could add something like "customplugin.dll" next to each collection name in gray, with a hover event stating that the collection is a custom plugin.
For reading the data, your program would load all dlls in the plugin folder, and then run the UpdateData each loop of your program. Then it would read the SensorCollection, and pull the values, and update the interface with them.
(If you already have support for custom dlls, could you link documentation of it? I could not find any references to custom dlls besides this post.