zarevok123 Geschrieben 31. Oktober 2008 Geschrieben 31. Oktober 2008 Hallo, ein Kollege aus einem Videoforum hat mich auf dieses Forum aufmerksam gemacht. Ich suche mir seit einigen Tagen (Wochen) einen Wolf für folgendes Problem: Für eine unserer eigenen Anwendungen (web basierendes DMS-System) suchen wir eine Möglichkeit, die Daten aus beliebigen Windows Anwednungen möglichst einfach statt im Filesystem in unserem eigenen System zu speichern. Der Speichern Vorgang selber kann einfach über einen Web-Link gestartet werden. Für ein Senden an aus dem Explorer haben wir schon etwas geschrieben. Den Vorgang würden wir aber gerne möglichst transparent in den normalen Öffnen und Speichern Dialogen unterbringen (entweder durch Erweitern der Dialogs oder durch Vorschalten einer eigenen Routine). Nach vielen Recherchen denke ich, dass ein Systemweiter Hook hier die Lösung sein könnte. Wir sind auch soweit, dass die Message WM_Initdialog abgefangen wird. Allerdings hängt es jetzt daran, dass z.B. nicht rausfinden können, wie wir auf weitere Informationen, wie z.B. die Anwendung, die den Dialog ausgelöst hat, zugreifen können. Ich habe trotz ausführlicher Recherche im Internet zwar etliche Beispiele für Hooks bei Mouse- und Tastaturevents gefunden, nichts aber für die Dialoge. Hat vielleicht irgendjemand einen Hinweis oder Tip, wo ich da noch weitere Infos finden könnte oder sogar Beispiele? Oder vielleicht einen Hinweis, wie wir die Anforderung anderweitig lösne könnten? Ps: Ich denke, der Weg muss irgendwie gehen. Novell macht das bei Groupwise mit den verschiednenen Integrationen schon seit Jahren. Beste Grüße Thomas Zitieren
RipperFox Geschrieben 4. November 2008 Geschrieben 4. November 2008 .. suchen wir eine Möglichkeit, die Daten aus beliebigen Windows Anwednungen möglichst einfach statt im Filesystem in unserem eigenen System zu speichern. Ein Dateisystemtreiber wäre nicht sinnvoller? Ggf. FTP-Verbindung von Windows nutzen, o.ä.? Man kann zwar die Dialoge mit Hooks aufbohren (Extend the Common Dialog Boxes Using Windows Forms 1.x), allerdings halte ich einen systemweiten Hook für eine nicht besonders elegante Möglichkeit. Ps: Ich denke, der Weg muss irgendwie gehen. Novell macht das bei Groupwise mit den verschiednenen Integrationen schon seit Jahren. Huh? GroupWise integriert sich AFAIK so richtig grade mal in MS Office.. Grüße Ripper Zitieren
tbach Geschrieben 9. November 2008 Geschrieben 9. November 2008 Sorry, dass ich so spät antowerte, aber seltsamerweise war mein Account plötzlich nicht mehr da und ich habe auch vom Admin keine Antwort erhalten. Neuregsitrierung ging jetzt aber. Ein Filesystemtreiber würde mir nicht ausreichen, da bei der Open und Save Aktion noch eigene Routinen gestartet werden müssen. Zusätzlich zu der eigentlichen Dateiübertragung müssen noch Metafelder besetzt werden, die teilweise nur aus der Benutzereingabe kommen können. Die Beispiele für die Dialogboxen gehen meistens nur auf die Verwendung in eigenen Programmen ein. Also wäre ein systemweiter Hook die einzige Lösung. Und hier fehlen mir die Beispiele bzw. ich komme mit der verfügbaren Doku nicht weiter. Allerdings wage selber zu bezweifeln, ob viele Admins bereit wären, so eine Software zu installieren. Auf der anderen Seite machen Virenscanner ja eigentlich auch nichts anderes. Die Aussage zu Groupwise stimmt. Allerdings scheinen die sich, wenn auch nur für Office, wirklich in die Dialoge einzuklinken und nicht mit irgendwelchen Makros oder ähnlichem zu arbeiten. Also zumindest ansatzweise das, was ich suche. Gruß Thomas Zitieren
Bubble Geschrieben 9. November 2008 Geschrieben 9. November 2008 Die Dialogbox liefert dem Programm nur Informationen über die dort getätigten Eingaben, das eigentliche Lesen und Schreiben der Daten ist von ihnen völlig unabhängig. Wie stellst Du Dir vor, ohne individuelle Anpssung der einzelnen zu unterstützenden Programme, insbesondere nur durch Veränderungen am GUI, die zu speichernden Daten an anderer Stelle abzulegen und zusätzlich noch Metainformationen zu sammeln? Zitieren
Guybrush Threepwood Geschrieben 9. November 2008 Geschrieben 9. November 2008 Naja wenn man an den Dialog drankommt dann könnte man ja an dem dort ausgewähltem Speicherort nach der Datei suchen ´die das jeweilige Programm dann da ablegt und sie verschieben. Einen weiteren Dialog für Zusatzinformationen zu öffnen sollte das geringste Problem sein... Zitieren
Bubble Geschrieben 9. November 2008 Geschrieben 9. November 2008 Naja wenn man an den Dialog drankommt dann könnte man ja an dem dort ausgewähltem Speicherort nach der Datei suchen ´die das jeweilige Programm dann da ablegt und sie verschieben. Dann müsste man die (neue) Datei über einen Service erstmal ständig überwachen lassen und später erst verschieben, aber auch dabei können Probleme auftreten. Was beispielsweise tun, wenn der Benutzer eine Datei speichert, danach mit seinem Programm weiter arbeitet und dann mittels Schnellspeichern (also ohne Datei-Dialog) seine Änderungen sichern will? Ich halte diese Vorgehensweise (Dialoge abfangen und verändern) für problematisch. Zitieren
tbach Geschrieben 10. November 2008 Geschrieben 10. November 2008 Der Ablauf ist folgender: Wir haben einen Web-service, mit dem die Datei hochgeladen werden kann und gleich anschließend ein Fenster aufgeht, bei dem die Verschlagwortung eingegeben werden kann. Das funktioniert natürlich nur, wenn das Ganze aus einem Browserfenster gestartet wird. Das ist für Anwendungen aber zu kompliziert. Heißt: Der Benutzer muss erst aus der Anwendung speichern, dann den Browser starten, Upload-Prozess auswählen, Datei suchen und publizieren. Für Office-Anwendungen haben wir eine Erweiterung geschrieben, aber das ist nicht der Weisheit letzter Schluss, da MS dauern die Schnittstellen ändert. Daher die Suche nach einer allgemeingültigen Lösung. Am Besten wäre es, wenn man irgendwie in den Speichern-Dialog oder in die Anwednungen einen zusätzlichen Menüpunkt aufnehmen könnte der dann von mir aus die Datei erst einmal temporär speichert und dann unsrene eigenen Dialog starten kann. Zitieren
RipperFox Geschrieben 10. November 2008 Geschrieben 10. November 2008 Um globale System-Hooks mit C# (.net CLR) zu setzen bedarf es einiger scharfer Tricks (Anbindung über unamanaged DLL). Näheres dazu findest du z.B. CodeProject: Global System Hooks in .NET. Free source code and programming help Für Office-Anwendungen haben wir eine Erweiterung geschrieben, aber das ist nicht der Weisheit letzter Schluss, da MS dauern die Schnittstellen ändert. Ob das mit so tiefgreifenden Hac^H^Hooks besser wird? Am Besten wäre es, wenn man irgendwie in den Speichern-Dialog oder in die Anwednungen einen zusätzlichen Menüpunkt aufnehmen könnte der dann von mir aus die Datei erst einmal temporär speichert und dann unsrene eigenen Dialog starten kann. Nochmal zum mitschreiben: 1. Der Savedialog selbst macht erstmal relativ wenig: Zielpfad und Dateiname abfragen, evtl. Prüfen ob die Datei schon existiert und noch sonstiges Kleinkram. 2. Du kannst da eigene Funktionen über einen global-system-hook einbauen.. Aber: 3. Das eigentliche Speichern macht das Programm NACH Aufruf des SaveFile-Dialogs ganz alleine.. Bringt dir das wirklich was? Grüße Ripper Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.