Seite 2 von 2

Verfasst: 16.10.2007 15:13
von dietmar
ne es ist ne sruckturierte liste, die ich aus nem ListIcon erstell, in diesem wiederum (fast) alle Spalten ein bzw. ausblenden kann. Deswegen kann es sein das es für die Übergabe mit mailto am Stück einfach zu groß sein kann.

Verfasst: 16.10.2007 15:39
von AND51
Habe ich zwar noch nie gesehen, aber kann man bei der mailto:-Lösung nicht Anhänge mit übergeben? Dann könntest du vorher eine temporäre Datei erstellen und diese per Parameter übergeben; die Datei würde dann natürlich als Anhang versendet.

// Edit:
Es muss gehen. Klick doch mal mit rechts auf eine Datei, dann SENDEN AN > EMAIL EMPFÄNGER
Diese Verknüpfung ist eine *.MAILMAP-Datei innerhalb des Ordners "SendTo".
Kannst du damit was anfangen?

Verfasst: 20.10.2007 08:31
von dietmar
Hab jetzt ne Lösung gefunden allerdings ist sie wieder E-Mail-Client spezifisch. Wenns interessiert:

Code: Alles auswählen


Procedure SendAKey(key.s) 
  vk = VkKeyScan_(Asc(key)) 
  If vk>320:keybd_event_(#VK_LSHIFT,1,0,0):EndIf 
  keybd_event_(vk,1,0,0) 
  keybd_event_(vk,1,#KEYEVENTF_KEYUP,0) 
  If vk>320 
    keybd_event_(#VK_LSHIFT,1,0,0) 
    keybd_event_(#VK_LSHIFT,1,#KEYEVENTF_KEYUP,0) 
  EndIf 
EndProcedure 

Procedure EMail()
  
  Mail = RunProgram("mailto:"+ empfaenger + "?" + "subject=Aktuelle Kinderliste "+ FormatDate("%mm/%yy", Date()) + "&body=","","")
  
  WinTitle$ = "Verfassen: Aktuelle Kinderliste "+ FormatDate("%mm/%yy", Date())
  
  While handle = 0
    Fensteroffen = 1
    Delay(100)
    handle.l=FindWindow_(0, WinTitle$)
    Fensteroffen + 1
    If Fensteroffen > 30
      Break
    EndIf
    Debug "Fensteroffen"
  Wend
  If handle>0 
    OpenIcon_(handle) 
    SetForegroundWindow_(handle) 
    SetActiveWindow_(handle)
    
    For i = 0 To CountGadgetItems(#ListIcon_1) + 1
      Delay(300)
      Debug GetActiveWindow_()
      For j = 1 To CountList(Spalten())
        Text2$ + GetGadgetItemText(#ListIcon_1, i, j)
        If GetGadgetItemText(#ListIcon_1, i, j) <> ""
          Text2$ + ", "
        EndIf
      Next
      
      For r=1 To Len(Text2$)-2
        SendAKey(Mid(Text2$,r,1)) 
      Next
      
      If i <> CountGadgetItems(#ListIcon_1)
        Text2$ = Chr(10)
      EndIf
    Next
  EndIf
  
EndProcedure
Allerdings muss ich dazu sagen das geht ne ganze Weile. Also muss ich meine Aussage korrigieren. Die Ursache das es ursprünglich nicht funktioniert hat liegt nicht am String, sondern (habs bisher nur mit Thunderbird versucht) wohl eher an Thunderbird. Wenn ich es als einzelne Tasten sende wie jetzt ist das Delay(300) in der For-Schliefe wichtig. Ich denke mal das sonst der Tastatur-Buffer voll läuft und nicht mehr alles richtig erfasst wird. Allerdings werd ich noch einen InputRequester einbauen müssen der Abfrägt wie das Fenster heißt. Also ob ich nach einem "Verfassen: " + Betreff suche oder nach einem "Neue Nachricht" + Betreff" oder ...
Bevor der Benutzer da eingrefien muss werde ich wahrscheinlich auch noch das große Orakel von Microsoft (die Registry) befragen. da hat edel ja ein sehr schönes wunderbar funktionierendes Beispiel geschrieben. :praise:

Kann mir jemand sagen, ob es (wär auch schön zu wissen wie) möglich ist das ich die Daten einfach am Stück in die Zwischenablage (SetClipboardText(Text$) ist klar) kopiere und vielleicht einfach das STRG + V senden kann.

Ansonsten danke ich euch für eure Bemühungen.