Kopieren einer bereits geöffneten Datei
Moderator: Moderatoren
Kopieren einer bereits geöffneten Datei
Hallo,
ich habe das Problem, an einem Arbeitsplatz, an dem mit Microsoft Office gearbeitet wird, im laufenden Betrieb die PST-Datei zu sichern, ohne daß der Anwender sein OUTLOOK schliessen muß. Gibt es mit Xbase++ die Möglichkeit, eine Datei, die von einer anderen Applikation geöffnet wurde, zu kopieren?
Für Eure Tipps vielen Dank im Voraus!
Klaus
ich habe das Problem, an einem Arbeitsplatz, an dem mit Microsoft Office gearbeitet wird, im laufenden Betrieb die PST-Datei zu sichern, ohne daß der Anwender sein OUTLOOK schliessen muß. Gibt es mit Xbase++ die Möglichkeit, eine Datei, die von einer anderen Applikation geöffnet wurde, zu kopieren?
Für Eure Tipps vielen Dank im Voraus!
Klaus
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Kopieren einer bereits geöffneten Datei
Hallo Klaus !
Über eine Schatten-Kopie geht das.
Hier mal die Grundlagen: https://de.wikipedia.org/wiki/Volume_Sh ... py_Service
Und ein Tool welches das für eine Datei durchführen kann: http://www.alant.com/windows-allg/56-ge ... kopie.html
Direkt nur mit Xbase geht nicht; da muß man das Betriebssystem bemühen.Gibt es mit Xbase++ die Möglichkeit, eine Datei, die von einer anderen Applikation geöffnet wurde, zu kopieren?
Über eine Schatten-Kopie geht das.
Hier mal die Grundlagen: https://de.wikipedia.org/wiki/Volume_Sh ... py_Service
Und ein Tool welches das für eine Datei durchführen kann: http://www.alant.com/windows-allg/56-ge ... kopie.html
Zuletzt geändert von HaPe am Do, 26. Jan 2017 9:22, insgesamt 1-mal geändert.
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2824
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Kopieren einer bereits geöffneten Datei
Hallo, Klaus -
sofern die PST-Datei nicht exclusive geöffnet ist, kannst Du die Datei mit fOpen(<cPST-Datei>, FO_DENYNONE) öffnen, auslesen und den Inhalt als Backup kopieren.
sofern die PST-Datei nicht exclusive geöffnet ist, kannst Du die Datei mit fOpen(<cPST-Datei>, FO_DENYNONE) öffnen, auslesen und den Inhalt als Backup kopieren.
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.
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Kopieren einer bereits geöffneten Datei
Hallo Klaus !
Öffnen kann man die PST-Datei mit FOPEN und bekommt ein Datei-Handle zurück; aber beim FREAD bleibt das Einlesen hängen.
Schließt man dann Outlook wird der Inhalt sofort eingelesen (was ja logisch ist).
Gerade (mit VFP9 und OL2016) probiert.sofern die PST-Datei nicht exclusive geöffnet ist, ...
Öffnen kann man die PST-Datei mit FOPEN und bekommt ein Datei-Handle zurück; aber beim FREAD bleibt das Einlesen hängen.
Schließt man dann Outlook wird der Inhalt sofort eingelesen (was ja logisch ist).
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2824
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Kopieren einer bereits geöffneten Datei
Hallo, Hans-Peter -
wie viel von der Datei hast Du eingelesen? 1 Byte, 10 Bytes, 1 KB, oder die ganze Datei?
wie viel von der Datei hast Du eingelesen? 1 Byte, 10 Bytes, 1 KB, oder die ganze Datei?
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.
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Kopieren einer bereits geöffneten Datei
Hallo Georg !
Erst nach schließen der PST-Datei wurde das Einlesen in der VFP-IDE durchgeführt.
Ich gehe davon aus, dass Xbase dieselben Windows-API-Funktionen wie VFP verwendet.
So, jetzt auch in Xbase probiert:
Wenn OL geöffnet ist kommt "0 Bytes gelesen", andernfalls "65000 Bytes gelesen"
Das heißt auf schwäbisch: so geds ned
Ich wollte 65000 Byte auf einen Rutsch in eine Zeichenvariable einlesen bei einer Größe von 271360 Bytes der PST-Datei.wie viel von der Datei hast Du eingelesen? 1 Byte, 10 Bytes, 1 KB, oder die ganze Datei?
Erst nach schließen der PST-Datei wurde das Einlesen in der VFP-IDE durchgeführt.
Ich gehe davon aus, dass Xbase dieselben Windows-API-Funktionen wie VFP verwendet.
So, jetzt auch in Xbase probiert:
Code: Alles auswählen
LOCAL lnHandle, lnRead
LOCAL lcBuffer
lnHandle = FOPEN( 'c:\Users\hape\Documents\Outlook-Dateien\Outlook.pst', FO_DENYNONE )
IF lnHandle > 0
lcBuffer := REPLICATE( CHR( 0 ), 65001 )
lnRead := FREAD( lnHandle, @lcBuffer, 65000 )
ConfirmBox( , STR( lnRead, 10, 0 ) + ' Bytes gelesen' )
FCLOSE( lnHandle )
ELSE
ConfirmBox( , 'Datei konnte nicht geöffnet werden' )
ENDIF
Das heißt auf schwäbisch: so geds ned
--
Hans-Peter
Hans-Peter
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2824
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Kopieren einer bereits geöffneten Datei
Tja, was soll ich da schreiben, zumal ich mit einer Schwäbin verheiratet bin?
Ich habe es mal (bescheiden, wie wir Rheinländer nun einmal sind) nur mit 128 Byte versucht, und die kann ich lesen. Eingesetzt wird hier Office 2010.
Code: Alles auswählen
#INCLUDE "AppEvent.ch"
#INCLUDE "FileIO.ch"
#INCLUDE "Xbp.ch"
FUNCTION Main
Local cFile, cDaten
Local nHandle, nRead
cFile := "C:\Users\n6\AppData\Local\Microsoft\Outlook\georg.de.ost"
nHandle := fOpen(cFile, FO_DENYNONE)
IF nHandle < 1
ConfirmBox(, "Kann " + cFile + " nicht öffnen", "Fehler", XBPMB_OK, XBPMB_CRITICAL)
RETU(.F.)
ENDIF
cDaten := Space(128)
nRead := fRead(nHandle, @cDaten, Len(cDaten))
IF nRead < 1
ConfirmBox(, "Kann nichts aus der Datei lesen", "Fehler", XBPMB_OK, XBPMB_INFORMATION)
ENDIF
fClose(nHandle)
RETURN(.T.)
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.
- HaPe
- 1000 working lines a day
- Beiträge: 996
- Registriert: So, 15. Nov 2015 17:44
- Wohnort: 71665 Vaihingen-Enz
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 15 Mal
Re: Kopieren einer bereits geöffneten Datei
Hallo Georg !
Habe jetzt ein bischen rumgespielt: es geht bis 532 Bytes, ab 533 Bytes wird nichts gelesen
Mit HoboCopy kann ich die geöffnete PST-Datei kopieren:
https://github.com/candera/hobocopy/downloads
Hmm, verstehe ich jetzt nichtIch habe es mal (bescheiden, wie wir Rheinländer nun einmal sind) nur mit 128 Byte versucht, und die kann ich lesen. Eingesetzt wird hier Office 2010.
Habe jetzt ein bischen rumgespielt: es geht bis 532 Bytes, ab 533 Bytes wird nichts gelesen
Mit HoboCopy kann ich die geöffnete PST-Datei kopieren:
https://github.com/candera/hobocopy/downloads
--
Hans-Peter
Hans-Peter
- 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: Kopieren einer bereits geöffneten Datei
Eigentlich kann doch das ganze mit runshell/copy oder fcopy gemacht werden, wobei sich mir
der wirkliche Sinn eine in Benutzung geöffnete Datei zu sichern nicht erschließt. Das mach für mich keinen Sinn.
Aber egal, wo ist das Problem dem Anwender einen Hinweis zu zeigen, dass die DS erstellt werden soll
und er kurz Outlook beenden muss? Die DS findet ja nicht permanent statt.
der wirkliche Sinn eine in Benutzung geöffnete Datei zu sichern nicht erschließt. Das mach für mich keinen Sinn.
Aber egal, wo ist das Problem dem Anwender einen Hinweis zu zeigen, dass die DS erstellt werden soll
und er kurz Outlook beenden muss? Die DS findet ja nicht permanent statt.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Kopieren einer bereits geöffneten Datei
Ob ein Programm eine offene Datei zum lesen öffnen kann hängt davon ab, wie das ursprüngliche Programm die Datei geöffnet hat.
FOPEN() bei Xbase++ versucht die Datei zum lesen geshared zu öffnen, wenn das nicht geht, dann hat das andere Programm die Datei exclusive oder geschützt geöffnet.
FOPEN() bei Xbase++ versucht die Datei zum lesen geshared zu öffnen, wenn das nicht geht, dann hat das andere Programm die Datei exclusive oder geschützt geöffnet.
Gruß
Hubert
Hubert
Re: Kopieren einer bereits geöffneten Datei
Hallo,
vielen Dank für eure Antworten.
Tatsächlich ist mir der Aufwand, die geöffnete PST-Datei an einem Arbeitsplatz automatisch sichern zu können, einfach zu groß. Muß daher jetzt vom Anwender selbst mit Outlook durchgeführt werden.
Grüße,
Klaus
vielen Dank für eure Antworten.
Tatsächlich ist mir der Aufwand, die geöffnete PST-Datei an einem Arbeitsplatz automatisch sichern zu können, einfach zu groß. Muß daher jetzt vom Anwender selbst mit Outlook durchgeführt werden.
Grüße,
Klaus