Autor Thema: Inhalt von ausgewählen Mails in die Zwischenablage kopieren  (Gelesen 1384 mal)

Offline sinus

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
  • Dumdidum...
Hallo,

woher bekomme ich ein Script, mit dem ich den Inhalt ausgewählter Mails in die Zwischenablage kopieren kann??

Oder kann man das relativ einfach selbst programmieren?? Könnte mir vorstellen, dass das nicht gerade einfach ist...

Gruss, Sinus

Offline sinus

  • Junior Mitglied
  • **
  • Beiträge: 91
  • Geschlecht: Männlich
  • Dumdidum...
Re:Inhalt von ausgewählen Mails in die Zwischenablage kopieren
« Antwort #1 am: 13.12.02 - 22:26:27 »
folgendes habe ich in der zwischenzeit gefunden:

im ordner INBOX folgende aktion:

Sub Click(Source As Button)
   Dim session As NotesSession
   Dim doc As NotesDocument
   Dim strSubject As String
   Dim strDummy As String
   Set session = New NotesSession
   Set doc = session.DocumentContext
   SetClipboardText(doc.body)
End Sub



und unter script bibliotheken:

'Deklaration
Const GMEM_MOVEABLE = &H40
Const GMEM_ZEROINIT = &H2
Const CF_TEXT = &H01
Const SRCCOPY = &HCC0020

Declare Function OpenClipboard Lib "user32" Alias "OpenClipboard" (Byval hwnd As Long) As Long
Declare Function CloseClipboard Lib "user32" Alias "CloseClipboard" () As Long
Declare Function EmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long
Declare Function SetClipboardData Lib "user32" Alias "SetClipboardData" (Byval wFormat As Long, Byval hMem As Long) As Long
Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (Byval wFlags As Long, Byval dwBytes As Long) As Long
Declare Function GlobalLock Lib "kernel32" Alias "GlobalLock" (Byval hMem As Long) As Long
Declare Function GlobalUnlock Lib "kernel32" Alias "GlobalUnlock" (Byval hMem As Long) As Long
Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (Byval lpString1 As Long, Byval lpString2 As String) As Long
Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long



Sub Click(Source As Button)
     Dim s As New NotesSession
     Dim ws As New NotesUIWorkspace
     Dim db As NotesDatabase
     Dim uiDoc As NotesUIDocument
     Dim plainText As String
     Set db = s.CurrentDatabase
     Set uiDoc = ws.CurrentDocument
     plainText = uiDoc.FieldGetText("Subject")
     setclipboardtext(plainText)
     Msgbox "Copied to clipboard.", 0+64, "Successful"
End Sub


Sub SetClipboardText(text As String)
     Dim hwnd As Long
     Dim hGlobalMemory As Long
     Dim lpGlobalMemory As Long
     Dim ret As Variant
     On Error Goto error_handler
     hwnd = NEMGetCurrentSubProgramWindow()
     If hwnd Then
           hGlobalMemory = GlobalAlloc(Clng(GMEM_MOVEABLE Or GMEM_ZEROINIT), Clng(Len(text)+1))
           If hGlobalMemory Then
                 lpGlobalMemory = GlobalLock(hGlobalMemory)
                 If lpGlobalMemory Then
                       ret = lstrcpy(lpGlobalMemory, text)
                       Call GlobalUnlock(hGlobalMemory)
                       If OpenClipboard(hwnd) Then
                             ret = EmptyClipboard()
                             ret = SetClipboardData(CF_TEXT, hGlobalMemory)
                             ret = CloseClipboard()
                       End If
                 Else
                       Msgbox "Can't allocated global memory pointer.", 32, "Error"
                 End If
           Else
                 Msgbox "Can't allocated global memory handle.", 32, "Error"
           End If
     Else
           Msgbox "Can't get window handle.", 32, "Error"
     End If
     Exit Sub
error_handler:
     Print "Error: " + Error$(Err)
     Resume Next
End Sub



DANKE AN EKNORI!!

Nun habe ich leider noch folgendes Problem:

Ich brauche den Inhalt der Mail hintereinanderweg in der Zwischenablage, so als wenn man die Mail aufmachen würde, und dann STRG-A, STRG-C drücken würde, oben genanntes Script fügt leider noch irgendwelche Zeilenumbrüche hinzu...

Hat jemand einen Tip für mich?

klaussal

  • Gast
Re:Inhalt von ausgewählen Mails in die Zwischenablage kopieren
« Antwort #2 am: 15.12.02 - 12:58:10 »
... und wie kriegt man das teil aus der zwischenablage wieder raus ?
das wäre nämlich auch noch sehr interessant.
habe z.zt. ähnliches problem.

Offline Performance

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.096
  • Geschlecht: Männlich
  • I love YaBB 1G - SP1!
Re:Inhalt von ausgewählen Mails in die Zwischenablage kopieren
« Antwort #3 am: 15.12.02 - 13:19:12 »
emptyClipboard()

 :)
Wir können alles außer hochdeutsch !

Alles ist möglich, es ist nur eine Frage der Zeit oder des Geldes!

Offline tuelb

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re:Inhalt von ausgewählen Mails in die Zwischenablage kopieren
« Antwort #4 am: 07.03.03 - 15:13:05 »
folgendes habe ich in der zwischenzeit gefunden:

im ordner INBOX folgende aktion:

Sub Click(Source As Button)
   Dim session As NotesSession
   Dim doc As NotesDocument
   Dim strSubject As String
   Dim strDummy As String
   Set session = New NotesSession
   Set doc = session.DocumentContext
   SetClipboardText(doc.body)
End Sub



und unter script bibliotheken:

'Deklaration
Const GMEM_MOVEABLE = &H40
Const GMEM_ZEROINIT = &H2
Const CF_TEXT = &H01
Const SRCCOPY = &HCC0020

Declare Function OpenClipboard Lib "user32" Alias "OpenClipboard" (Byval hwnd As Long) As Long
Declare Function CloseClipboard Lib "user32" Alias "CloseClipboard" () As Long
Declare Function EmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long
Declare Function SetClipboardData Lib "user32" Alias "SetClipboardData" (Byval wFormat As Long, Byval hMem As Long) As Long
Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (Byval wFlags As Long, Byval dwBytes As Long) As Long
Declare Function GlobalLock Lib "kernel32" Alias "GlobalLock" (Byval hMem As Long) As Long
Declare Function GlobalUnlock Lib "kernel32" Alias "GlobalUnlock" (Byval hMem As Long) As Long
Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (Byval lpString1 As Long, Byval lpString2 As String) As Long
Declare Function NEMGetCurrentSubprogramWindow Lib "nnotesws.dll" () As Long



Sub Click(Source As Button)
     Dim s As New NotesSession
     Dim ws As New NotesUIWorkspace
     Dim db As NotesDatabase
     Dim uiDoc As NotesUIDocument
     Dim plainText As String
     Set db = s.CurrentDatabase
     Set uiDoc = ws.CurrentDocument
     plainText = uiDoc.FieldGetText("Subject")
     setclipboardtext(plainText)
     Msgbox "Copied to clipboard.", 0+64, "Successful"
End Sub


Sub SetClipboardText(text As String)
     Dim hwnd As Long
     Dim hGlobalMemory As Long
     Dim lpGlobalMemory As Long
     Dim ret As Variant
     On Error Goto error_handler
     hwnd = NEMGetCurrentSubProgramWindow()
     If hwnd Then
           hGlobalMemory = GlobalAlloc(Clng(GMEM_MOVEABLE Or GMEM_ZEROINIT), Clng(Len(text)+1))
           If hGlobalMemory Then
                 lpGlobalMemory = GlobalLock(hGlobalMemory)
                 If lpGlobalMemory Then
                       ret = lstrcpy(lpGlobalMemory, text)
                       Call GlobalUnlock(hGlobalMemory)
                       If OpenClipboard(hwnd) Then
                             ret = EmptyClipboard()
                             ret = SetClipboardData(CF_TEXT, hGlobalMemory)
                             ret = CloseClipboard()
                       End If
                 Else
                       Msgbox "Can't allocated global memory pointer.", 32, "Error"
                 End If
           Else
                 Msgbox "Can't allocated global memory handle.", 32, "Error"
           End If
     Else
           Msgbox "Can't get window handle.", 32, "Error"
     End If
     Exit Sub
error_handler:
     Print "Error: " + Error$(Err)
     Resume Next
End Sub






Habe den Code auch mal bei mir verwendet. Er wird auch ohne Probleme ausgeführt:    Msgbox "Copied to clipboard.", 0+64, "Successful" erscheint, doch die Zwischenablage bleibt leer.  ??? Muss da noch irgendwas anderes gemacht werden bzw. funktioniert der bei Euch?

Danke


ick werd noch bekloppt mit:
Domino 5.0.6 W2K Server
Domino Designer 5.0.10
Notes 5.0.10  NT 4.0 SP 6a
LEI 3.1

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz