Seite 1 von 1
DPCLK aus Windows Taskkalender
Verfasst: 19.09.2016 13:30
von Velindos
Hallo Leute,
möchte einen Termin direkt aus dem Kalender in der Taskleiste übernehmen. Sprich, ich klicke auf die Taskleiste und der Windows Kalender/Uhrzeit öffnet sich, nun Klicke ich auf einen Tag und möchte diesen in mein Programm übernehmen!
Hat jemand ein Ahnung wie ich an die Sache herankomme?
Gruss ... Velindos!
Re: DPCLK aus Windows Taskkalender
Verfasst: 19.09.2016 13:33
von RSBasic
Welchen Kalender meinst du? Meinst du diese Windows 8/10 App?
Re: DPCLK aus Windows Taskkalender
Verfasst: 19.09.2016 15:39
von Velindos
Hallo,
in der Windows Taskleiste befindet sich die Anzeige "15:33|Montag|19.09.2016" am rechten Rand! Hier kann man mittels LCLK auf die Anzeige ein Fenster mit der Uhr und dem Kalender öffnen. Innerhalb dieses Fenster wird das aktuelle Monat angezeigt.
Nun kann man innerhalb des angezeigten Kalender einzelne Tage mit den Cursor anwählen, und diese per LCLK bedienen. Leider ... geschieht bei LCLK auf einen Tag nichts.
Ich möchte aber den LCLK für meinen Kalender verwenden. Das heisst ich Klicke auf den Tag und erhalte den Tag oder etc. um mir den Tag vorzubelegen. Den Rest mache ich in meinen Kalender. Optimale wäre das ich mit dem LCLK mein Programm öffnen könnte und den geklickten TAG übergeben bekomme!
Habe aber keine Ahnung wie ich das Anstellen muss!
Gruss ... Velindos!
Re: DPCLK aus Windows Taskkalender
Verfasst: 19.09.2016 15:53
von RSBasic
LCLK heißt für dich Linksklick oder?
Man könnte bei einem globalen Linksklick-Event ermitteln, welches Fenster sich unter dem Mauscursor befindet und dann den Wert des DateControls auslesen.
Unter Windows 7 würde es zwar noch funktionieren, aber spätestens unter Windows 10 nicht, weil dieser Kalender von Microsoft überarbeitet wurde und nun eine App ist. Mit WinAPI hat man darauf keinen Zugriff, weil das alles ein "Windows.UI.Core.CoreWindow"-Control ist.
Warum sollte man als Nutzer zuerst den Tag im Windows-Kalender auswählen und den Rest in deinem Programm? Warum stellst du keinen eigenen Kalender bereit? Dann hast du die volle Zugriffsmöglichkeit und das sogar ohne WinAPI.
Re: DPCLK aus Windows Taskkalender
Verfasst: 20.09.2016 07:12
von Velindos
Hallo,
danke für deine Erklärung!
Unter Windows 7 würde es zwar noch funktionieren, aber spätestens unter Windows 10 nicht!
Weisst du zufällig welchen Programm-Namen das Fenster hat? Windows 10 verwende ich nicht mehr, spioniert mir zuviel!
Warum stellst du keinen eigenen Kalender bereit?
Wollte ja meinen Kalender über den LCLK auf den Taskkalender aufrufen!
Gruss ... Velindos
Re: DPCLK aus Windows Taskkalender
Verfasst: 20.09.2016 10:35
von RSBasic
Velindos hat geschrieben:Weisst du zufällig welchen Programm-Namen das Fenster hat? Windows 10 verwende ich nicht mehr, spioniert mir zuviel
Auf jeden Fall explorer.exe.
Du brauchst aber den Klassennamen, um die Handle-Nummer zu ermitteln. D.h. du musst das Fenster mit
FindWindow_() und
FindWindowEx_() oder
EnumWindows_() finden.
Beispiel mit FindWindow_() und FindWindowEx_():
http://www.rsbasic.de/aktualisierung/wi ... stecken.pb
So ungefähr musst du auch machen, wenn du mit FindWindow_() und FindWindowEx_() arbeiten möchtest.
Der vollständige Pfad zum Zielfenster:
Ansonsten kannst du die Handle-Nummer auch direkt mit folgendem Code ermitteln:
http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb
Re: DPCLK aus Windows Taskkalender
Verfasst: 20.09.2016 11:26
von RSBasic
Wenn du die Handle-Nummer hast, kannst du mit SendMessage_() und #MCM_GETCURSEL das ausgewählte Datum ermitteln.
Beispiel:
Code: Alles auswählen
EnableExplicit
Define SYSTEMTIME.SYSTEMTIME
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CalendarGadget(1, 10, 10, 250, 250)
ButtonGadget(2, 10, 270, 250, 20, "Ausgewähltes Datum ermitteln", 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 2
SendMessage_(GadgetID(1), #MCM_GETCURSEL, 0, SYSTEMTIME)
Debug Str(SYSTEMTIME\wDay) + "." + Str(SYSTEMTIME\wMonth) + "." + Str(SYSTEMTIME\wYear)
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
Re: DPCLK aus Windows Taskkalender
Verfasst: 20.09.2016 14:01
von Velindos
Hallo,
Danke für deinen Vorschlag, bin mal am Versuchen!
Gruss ... Velindos!