Drag&Drop für Outlook und pdf
Moderator: Moderatoren
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Drag&Drop für Outlook und pdf
Ich soll per drag & drop Outlook Mails und PDF-Anhänge ins Programm aufnehmen und auch speichern. Das Problem, mit so Windows Sachen wie Drag&Drop habe ich noch nie gearbeitet. Dementsprechend auch null Ideen wie ich das angehen soll. Brauche ich da externe Tools, gibt es Beispielprogramme oder Tools?
Gruß
Markus
Gruß
Markus
Gruß
Markus
Markus
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
Mann kann den einzelnen Controls beibringen, dass sie auf ein DROP reagieren sollen ... XbpWindow():dragDrop := {|p1,p2,oXbp| tuwas(p1,p2,oXbp) }
Was allerdings von "Outlook Mails und PDF-Anhänge" ankommt und wie die Funktion das umsetzt, weiß ich nicht.
Grundsätzlich reagiert das Fenster auf den Event und ruft den von dir angegebenen Codeblock auf. Dieser muss die Daten zerlegen und sinnvoll verarbeiten.
Eventuell geht es besser über die Zwischenablage: XbpClipBoard()
In der Onlinehilfe und auch hier gibt es schöne Beispiele.
Was allerdings von "Outlook Mails und PDF-Anhänge" ankommt und wie die Funktion das umsetzt, weiß ich nicht.
Grundsätzlich reagiert das Fenster auf den Event und ruft den von dir angegebenen Codeblock auf. Dieser muss die Daten zerlegen und sinnvoll verarbeiten.
Eventuell geht es besser über die Zwischenablage: XbpClipBoard()
In der Onlinehilfe und auch hier gibt es schöne Beispiele.
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Drag&Drop für Outlook und pdf
siehe dir mal c:\ALASKA\XPPW32\Source\samples\basics\DRAGDROP\DROP.EXE an.satmax hat geschrieben:Ich soll per drag & drop Outlook Mails und PDF-Anhänge ins Programm aufnehmen und auch speichern.
nun kannst du aus dem Explorer etwas "raus-ziehen" und es auf das Demo "fallen lassen".
Code: Alles auswählen
METHOD MainDialog:ValidateFormat( oData )
...
IF oData:QueryGetFormat()
also wenn du ein PDF aus dem Explorer nimmst wird er es nicht "annehmen" ...Vordefinierte Datenformate
Konstante Beschreibung
XBPCLPBRD_TEXT Daten im ASCII-Textformat
XBPCLPBRD_BITMAP Grafik im Bitmap-Format
XBPCLPBRD_METAFILE Grafik im Metafile-Format
XBPCLPBRD_FILELIST Liste mit Dateien
nun das ganze mit Outlook und einer eMail mit Bild (JPG). ich versuche nun das Bild per DragDrop und dem Demo und ... NICHTS !!!
"das" DragDrop hat was mit OLE zu tun und das kann Xbase++ gar nicht "so" handlen ...
Ich würde die Sache evtl. anders angehen :
a.) per activeX ein Browse auf die "IN-Box" um an die Attachments zu kommen
b.) per activeX / DynamicCast den "Drop - Event" abfangen ...
oder man nimmt eine 3PP LIB wie SEE32 und holt damit die Emails / Attachments ab.
gruss by OHR
Jimmy
Jimmy
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Drag&Drop für Outlook und pdf
Hallo, Markus -
Xbase++ unterstützt nur eine Auswahl der Möglichen Objekte, die per Drag-and-Drop übertragen werden können. Ich habe das vor Jahren mit Lotus Notes Mails versucht, die man zwar auf den Desktop ziehen konnte (= unterstützter Objekt-Typ), die aber von Xbase++ nicht akzeptiert wurden.
Am besten schaust Du Dir im Debugger mal an, was da für ein Objekt-Typ ankommt.
Xbase++ unterstützt nur eine Auswahl der Möglichen Objekte, die per Drag-and-Drop übertragen werden können. Ich habe das vor Jahren mit Lotus Notes Mails versucht, die man zwar auf den Desktop ziehen konnte (= unterstützter Objekt-Typ), die aber von Xbase++ nicht akzeptiert wurden.
Am besten schaust Du Dir im Debugger mal an, was da für ein Objekt-Typ ankommt.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
Hallo,
Ich habe mir jetzt das Beispiel drop.exe etwas angesehen. Bei PDF's komme ich schon klar, ich benötige nur den Filenamen. Ich kann dann entscheiden ob ich mir nur den Filenamen merke oder die Datei auch gleichzeitig verschiebe / kopiere. Das sollte so weit in Ordnung gehen.
Mit den Mails komme ich noch nicht ganz klar. Ein Abholen ist nicht sehr sinnvoll da ich nur eine kleine Anzahl der Mails archivieren möchte. Wobei da theoretisch ein weiterleiten an eine bestimmte Mailadresse funktionieren könnte. Diese Mails müsste man aus dem Programm direkt abholen und zuordnen, was aber zumindest zwei Benutzerschritte voraussetzt.
Ziehe ich eine Mail aus Outlook auf drag.exe wird mir der Header angezeigt. Ziehe ich die Mail zuvor auf den Desktop wird eine Datei erstellt und ich kann ich die Mail vom Desktop auf drag.exe ziehen und erhalte dort ebenfalls den Filenamen. Der Benutzer müsste halt wieder 2 Schritte durchführen,
1. Mail in (File-) Ordner ziehen
2. Mail vom Ordner in die Anwendung ziehen (Ich kann mir dann den Pfad wieder merken und/oder die Datei verschieben/kopieren).
Im Prinzip soll das ein Archivierungssystem werden wo man verschiedene Dokumente einem Auftrag zuordnen kann. Wobei für den Beginn reicht sicher eine PDF Variante und eben die Mails. Theoretisch könnte ich die Mails auch in ein PDF drucken und dann das PDF archivieren, sind aber eben wieder zumindest 2 Schritte...
Gruß
Markus
Ich habe mir jetzt das Beispiel drop.exe etwas angesehen. Bei PDF's komme ich schon klar, ich benötige nur den Filenamen. Ich kann dann entscheiden ob ich mir nur den Filenamen merke oder die Datei auch gleichzeitig verschiebe / kopiere. Das sollte so weit in Ordnung gehen.
Mit den Mails komme ich noch nicht ganz klar. Ein Abholen ist nicht sehr sinnvoll da ich nur eine kleine Anzahl der Mails archivieren möchte. Wobei da theoretisch ein weiterleiten an eine bestimmte Mailadresse funktionieren könnte. Diese Mails müsste man aus dem Programm direkt abholen und zuordnen, was aber zumindest zwei Benutzerschritte voraussetzt.
Ziehe ich eine Mail aus Outlook auf drag.exe wird mir der Header angezeigt. Ziehe ich die Mail zuvor auf den Desktop wird eine Datei erstellt und ich kann ich die Mail vom Desktop auf drag.exe ziehen und erhalte dort ebenfalls den Filenamen. Der Benutzer müsste halt wieder 2 Schritte durchführen,
1. Mail in (File-) Ordner ziehen
2. Mail vom Ordner in die Anwendung ziehen (Ich kann mir dann den Pfad wieder merken und/oder die Datei verschieben/kopieren).
Im Prinzip soll das ein Archivierungssystem werden wo man verschiedene Dokumente einem Auftrag zuordnen kann. Wobei für den Beginn reicht sicher eine PDF Variante und eben die Mails. Theoretisch könnte ich die Mails auch in ein PDF drucken und dann das PDF archivieren, sind aber eben wieder zumindest 2 Schritte...
Gruß
Markus
Gruß
Markus
Markus
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
wie gesagt, du solltest das empfangene Objekt im debugger untersuchen, es könnte sein, dass es den Text der eMail irgendwie enthält.
Gruß
Hubert
Hubert
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
Habe ich versucht, bei den Mails kommen nur die Headerdaten.brandelh hat geschrieben:wie gesagt, du solltest das empfangene Objekt im debugger untersuchen, es könnte sein, dass es den Text der eMail irgendwie enthält.
Gruß
Markus
Gruß
Markus
Markus
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
Hallo Jimmy,AUGE_OHR hat geschrieben: Ich würde die Sache evtl. anders angehen :
a.) per activeX ein Browse auf die "IN-Box" um an die Attachments zu kommen
b.) per activeX / DynamicCast den "Drop - Event" abfangen ...
jetzt geht es ans eingemachte, da wird es für mich jetzt richtig schwierig, mit ActiveX und Fremd-Dlls habe ich noch nie gearbeitet. Ich möchte mir das aber gerne mal etwas ansehen da ich es auch für andere Parts benötige.
Gibt es Samples wie man externe Dll's einbindet und deren Funktionen aufruft?
Gruß
Markus
Gruß
Markus
Markus
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
Wenn Du die Mail speicherst, wird diese normalerweise als EML Datei gespeichert
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
du solltest dir wirklich mal die Beispiele auf der Platte ansehen
?\XPPW32\source\samples\activex ...
?\XPPW32\source\samples\basics\ExtDll
irgendwo meine ich auch mal ein outlook Beispiel gesehen zu haben, aber selbst habe ich outlook nie genutzt.
?\XPPW32\source\samples\activex ...
?\XPPW32\source\samples\basics\ExtDll
irgendwo meine ich auch mal ein outlook Beispiel gesehen zu haben, aber selbst habe ich outlook nie genutzt.
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
Das geht auch per SOCMAPI.DLL, die ziemlich robust und überschaubar ist. Es gibt sie kostenlos und mit brauchbarer Dokumentation auf der Alaska-Site:per activeX ein Browse auf die "IN-Box" um an die Attachments zu kommen
ftp://ftp.alaska-software.com/acsn/socmapi3.zip
Damit kommt man an die Inbox und kann die Mails z.B. in einer Tabelle in der App anzeigen, sie auch filtern und ggf. automatisch zuordnen.
Dragging aus Outlook heraus greift immer nur bestimmte Teilelemente einer Mail, ist also nutzlos.
Alternativ könnte man auch mit der SOCMAPI oder z.B. auch den Mailtools von Marshallsoft einen eigenen Mailklienten ins Programm einbauen, der Mails von bestimmten Accounts abholt, im Idealfall, ohne sie vom Server zu löschen. Das scheitert aber, wenn andere Mailprogramme genau diese Mails vorher schon abgeholt und eben gelöscht haben. Also lieber per SOCMAPI direkt an die Inbox.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Drag&Drop für Outlook und pdf
ja das ist die Option XBPCLPBRD_FILELISTsatmax hat geschrieben:Bei PDF's komme ich schon klar, ich benötige nur den Filenamen.
der Desktop ist das Listview vom Explorer und diese "alte" Art von DragDrop kann Xbase++ "nur".satmax hat geschrieben:Ziehe ich eine Mail aus Outlook auf drag.exe wird mir der Header angezeigt. Ziehe ich die Mail zuvor auf den Desktop wird eine Datei erstellt und ich kann ich die Mail vom Desktop auf drag.exe ziehen und erhalte dort ebenfalls den Filenamen.
hier ein Beispiel mit ot4xb (/PM:PM linken) was o:DropZone := .T. (WS_EX_ACCEPTFILES) im Prinzip macht.
Code: Alles auswählen
#include "ot4xb.ch"
#include "winuser_constants.ch"
//----------------------------------------------------------------
proc main
local hWnd := SetAppWindow():GetHWnd()
ot4xb_subclasswindow(hWnd,MyHandler(),NIL,"Drop_wndproc")
delegated_eval( {||@shell32:DragAcceptFiles(hWnd,1)} )
while inkey(0) != 27
end
return
//----------------------------------------------------------------
CLASS MyHandler
EXPORTED:
INLINE CLASS METHOD Drop_wndproc(hWnd,nMsg,wp,lp)
local p,cb,aFiles,n,nn
if nMsg == WM_DROPFILES
nn := @shell32:DragQueryFileA(wp,-1,0,0)
if nn > 0
aFiles := Array(nn)
p := _xgrab(260)
for n := 1 to nn
cb := @shell32:DragQueryFileA(wp,n-1,p,260)
aFiles[n] := PeekStr(p,,cb)
next
_xfree(p)
? aFiles
// or PostAppEvent(custom_event, aFiles,, oXbp)
end
return NIL
end
return NIL
ENDCLASS
nun gibt es aber auch den WM_DROPFILES Event den eine "registrierte" Applikation empfangen / auswerten können muss.
... aber an solche Events kommst du nicht mit "pure" Xbase++
gruss by OHR
Jimmy
Jimmy
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Drag&Drop für Outlook und pdf
@All
Danke erst mal. Kurz zusammengefasst: einfach eine komplette Mail per Drag&Drop zu übernehmen ist nicht.
Ich muss dass nochmals überdenken aber es sind einige Interessante Ansätze von Euch dabei.
Gruß
Markus
Danke erst mal. Kurz zusammengefasst: einfach eine komplette Mail per Drag&Drop zu übernehmen ist nicht.
Ich muss dass nochmals überdenken aber es sind einige Interessante Ansätze von Euch dabei.
Gruß
Markus
Gruß
Markus
Markus
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Drag&Drop für Outlook und pdf
Das hab ich nicht gesagt ... nur ist es eben nicht "so" einfach wie mit dem Explorer / Desktop.satmax hat geschrieben:Kurz zusammengefasst: einfach eine komplette Mail per Drag&Drop zu übernehmen ist nicht.
mal sehen ob ich von Pablo eine Demo bekommen kann ... wäre auch ein Thema für die nächste Devcon.
gruss by OHR
Jimmy
Jimmy