Purebasic und Rainmeter

Für allgemeine Fragen zur Programmierung mit PureBasic.
Joebo2572
Beiträge: 9
Registriert: 01.11.2007 11:10
Wohnort: Schwelm

Purebasic und Rainmeter

Beitrag von Joebo2572 »

Hallo,

gibt es eine Möglichkeit plugins für Rainmeter in Purebasic zu schreiben, bzw hat schon jemand ein leeres Gerüst für sowas?
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Purebasic und Rainmeter

Beitrag von TroaX »

Ich habe mir mal kurz die API Doku angesehen. Vorgesehen sind grundsätzlich Plugins mit C# oder C++. Näher kam ich auch nicht ran, da ich mit dem Handy gerade keine Projektfiles bzw. Das SDK öffnen kann. Aber finde es interessant, das die C++ API nur aus Funktionen zu bestehen, wodurch im Grunde C zum schreiben ausreicht. Die frage ist dann nur, ob externe Libs eingebunden werden oder ob sie als Source vorliegen. Letzteres wäre fummelig, da diese Sources erst mit nem C++ Compiler in Libs compiliert werden müssen. Es sei denn sie lassen sich in PB umsetzen, was als C++ sehr schwierig wird.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Joebo2572
Beiträge: 9
Registriert: 01.11.2007 11:10
Wohnort: Schwelm

Re: Purebasic und Rainmeter

Beitrag von Joebo2572 »

Danke für die Antwort...
Hab mir mal VSExpress runtergeladen und den Beispielcode angefügt:

Code: Alles auswählen

#include <Windows.h>
#include "../../API/RainmeterAPI.h"

// Overview: This is a blank canvas on which to build your plugin.

// Note: GetString and ExecuteBang have been commented out. If you need
// GetString and/or ExecuteBang and you have read what they are used for
// from the SDK docs, uncomment the function(s). Otherwise leave them
// commented out (or get rid of them)!

struct Measure
{
	Measure() {}
};

PLUGIN_EXPORT void Initialize(void** data, void* rm)
{
	Measure* measure = new Measure;
	*data = measure;
}

PLUGIN_EXPORT void Reload(void* data, void* rm, double* maxValue)
{
	Measure* measure = (Measure*)data;
}

PLUGIN_EXPORT double Update(void* data)
{
	Measure* measure = (Measure*)data;
	return 0.0;
}

//PLUGIN_EXPORT LPCWSTR GetString(void* data)
//{
//	Measure* measure = (Measure*)data;
//	return L"";
//}

//PLUGIN_EXPORT void ExecuteBang(void* data, LPCWSTR args)
//{
//	Measure* measure = (Measure*)data;
//}

PLUGIN_EXPORT void Finalize(void* data)
{
	Measure* measure = (Measure*)data;
	delete measure;
}

Das ergibt ein leeres Plugin. Für Samurize gibt's ein Plugin Skelett für Purebasic. Eigentlich müsste es doch ähnlich laufen, oder?

Grüße, Jörn
Antworten