DPCLK aus Windows Taskkalender

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

DPCLK aus Windows Taskkalender

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: DPCLK aus Windows Taskkalender

Beitrag von RSBasic »

Welchen Kalender meinst du? Meinst du diese Windows 8/10 App?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: DPCLK aus Windows Taskkalender

Beitrag 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!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: DPCLK aus Windows Taskkalender

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: DPCLK aus Windows Taskkalender

Beitrag 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
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: DPCLK aus Windows Taskkalender

Beitrag 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:
Bild

Ansonsten kannst du die Handle-Nummer auch direkt mit folgendem Code ermitteln: http://www.rsbasic.de/aktualisierung/wi ... mitteln.pb
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: DPCLK aus Windows Taskkalender

Beitrag 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
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: DPCLK aus Windows Taskkalender

Beitrag von Velindos »

Hallo,
Danke für deinen Vorschlag, bin mal am Versuchen!

Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten