Entwickler-Ecke

Windows API - Windows 8 toast notification mit Delphi


AScomp - Mo 31.12.12 00:38
Titel: Windows 8 toast notification mit Delphi
Hallo zusammen,

mit Windows 8 ist Microsoft ja ein ganz großer Wurf gelungen - vermutlich in die falsche Richtung. ;)

Mit der neuen Aufspaltung in Kachel/Metro/RT/Start-Oberfläche (wie auch immer jetzt die offiziell anerkannte Bezeichnung sein mag) und Desktop ergibt sich folgendes Problem: Wie erfährt der Anwender von Messageboxes u.ä., die auf dem Desktop angezeigt werden, solange er sich in der Start-Oberfläche befindet?

Die Lösung: Eine "Toast notification", http://www.itwriting.com/blog/6217-notifications-in-windows-8-how-to-display-new-style-toast-from-a-desktop-app.html

Das Problem zur Lösung: Wie eine solche Notification senden, wenn man Delphi nutzt und keinen RT-Support hat?

Gibt es ein Work-around? Ich meine jetzt abgesehen von einer C#/VB.NET-Umsetzung, die dann in welcher Form auch immer von der Delphi-Anwendung aufgerufen wird.

Herzlichen Dank für Ideen und Vorschläge!

Viele Grüße

Andy


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am So 30.12.2012 um 23:47


jaenicke - Mo 31.12.12 01:37

user profile iconAScomp hat folgendes geschrieben Zum zitierten Posting springen:
mit Windows 8 ist Microsoft ja ein ganz großer Wurf gelungen - vermutlich in die falsche Richtung. ;)
Ja, in meine Richtung. :mrgreen:

user profile iconAScomp hat folgendes geschrieben Zum zitierten Posting springen:
Das Problem zur Lösung: Wie eine solche Notification senden, wenn man Delphi nutzt und keinen RT-Support hat?

Gibt es ein Work-around? Ich meine jetzt abgesehen von einer C#/VB.NET-Umsetzung, die dann in welcher Form auch immer von der Delphi-Anwendung aufgerufen wird.
Ich glaube zumindest nicht "in schön". Ein entsprechendes Tool in C# denke ich im Moment schon die beste (und einfachste) Lösung.

Es gibt aber durchaus Möglichkeiten die Windows Runtime mit Delphi zu nutzen, nur halt mit viel Aufwand:
https://github.com/tgerdes/DelphiWinRT


AScomp - Mo 31.12.12 01:48

Zitat:
Ja, in meine Richtung. :mrgreen:


Wie darf ich das verstehen? Bitte erläutern - ich würde mich freuen, wenn ich endlich einen echten Vorteil von Windows 8 gegenüber Windows 7 finden würde. ;)

Zitat:
Es gibt aber durchaus Möglichkeiten die Windows Runtime mit Delphi zu nutzen, nur halt mit viel Aufwand:
github.com/tgerdes/DelphiWinRT


Ja, über den Link bin ich auch gestolpert. Aber wie du auch schon schreibst: Da ist es wohl sinnvoller, kurz den C#-Compiler anzuschmeißen und die Notification darüber zu versenden.

Viele Grüße

Andy


jaenicke - Mo 31.12.12 11:14

user profile iconAScomp hat folgendes geschrieben Zum zitierten Posting springen:
Wie darf ich das verstehen? Bitte erläutern - ich würde mich freuen, wenn ich endlich einen echten Vorteil von Windows 8 gegenüber Windows 7 finden würde. ;)
Das passt schlecht in diesen Thread. ;-)
Aber schon diese Art der Notifications finde ich z.B. beim Einlegen von CDs deutlich besser als vorher die neuen Fenster... 3 Partitionen auf ner externen Platte hieß vorher ja drei neue Fenster. Und auch das Öffnen mit sieht ja so ähnlich aus bzw. auch die Benachrichtigung, wenn eine Anwendung einen Dateityp registriert oder der (nach Upgrade von Windows 7) das erste Mal aufgerufen wird. Das finde ich so alles sehr gut integriert.
Mehr zum Thema Windows 8 möchte ich in dem Thread besser nicht schreiben.

user profile iconAScomp hat folgendes geschrieben Zum zitierten Posting springen:
Aber wie du auch schon schreibst: Da ist es wohl sinnvoller, kurz den C#-Compiler anzuschmeißen und die Notification darüber zu versenden.
Wobei man davon ausgehen kann, dass mittelfristig mit XE4 vermutlich auch die WinRT von Delphi angesprochen werden kann. Denn das Problem ist ja nicht, dass der Compiler es nicht könnte, sondern dass die Verwendung bestimmter API-Funktionen (die bei C++ in der Runtime erledigt werden) solche Programme dann automatisch aus dem App Store verbannen würde...
Das war zwar vermutlich keine bewusste Gängelung (schon wegen der bisherigen Verfahren der EU kann ich mir das nicht vorstellen), sondern sollte vermutlich der Sicherheit dienen, führt aber nun eben zu diesen Problemen.