Avatar billede Lasse Novice
11. juli 2008 - 19:17 Der er 8 kommentarer og
1 løsning

Rediregere fil output til memory

Lad os antage jeg har 2 applikationer - Word og min egen app.

Derudover lad os antage at jeg ved at hver gang Word gemmer filer, saa gemmer Word altid i filen c:\test.doc.

Er det muligt fra min app at fange at der bliver skrevet til c:\test.doc men istedet for at der bliver skrevet til filen, omdiregere outputtet til noget memory i min egen app (dvs. at filen aldrig kommer til at eksistere)?

Haaber i forstaar
Avatar billede dehdar Nybegynder
11. juli 2008 - 21:50 #1
En hurtig løsning på problemet kunne være følgende:

1. Opret to filer: Status.dat og Temp.dat
2. Flyt indholdet af test.doc over i Temp.dat
3. Tjek om indholdet af Status.dat er ens med Temp.dat
3a. Hvis ja, så flyt indholdet af Temp.dat over i Status.dat, lav et funktions kald og start fra punkt 1 igen.
3b. Hvis ikke, så start fra punkt 1 af igen...
Avatar billede arne_v Ekspert
13. juli 2008 - 18:54 #2
Jeg tror ikke at du kan sende data skrevet til C:\test.doc til din app uden virkeligt
at voldtage windows.

Hvis du kan bruge at filer gemt på en speciel share sendes til dit program, så kan jeg
muligvis bixe en løsning.
Avatar billede Lasse Novice
14. juli 2008 - 16:26 #3
Det virker til ikke at vaere muligt. Lader p.t. spg staa aabent. Hvis intet er sket efter en uge, bliver pointene fordelt mellem arne og dehdar.
Avatar billede intel4004 Novice
15. juli 2008 - 10:31 #4
Lyder som en interessant udfording.

Jeg ved at der eksisterer utilities til windows som er i stand til at hente reel-tids information om de kørende processer. Måske er det denne vej du skal gå.

Eksempelvis har jeg brugt Process Explorer fra Windows Sysinternals (http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx). Dette program giver et overblik over fil-adgang af alle processer.

Jeg kiggede på sourceforge, om der skulle være noget opensource projekter, men jeg synes ikke der var gevinst.

Men det må da på en måde være muligt, at lave noget software som lytter efter en disk-event i en speciel process. Men dette løser jo ikke dit problem. For at få de skrevne data, skal man vel finde de hukommelses adresser som der benyttes. Evt. det fil-objekt som word bruger i det øjeblik. Lidt reel-tids disassembling af processen lyder som den eneste vej frem. Men her står jeg så af :)

Jeg tror det er hårdt arbejde, og kræver stort kendskab til hvordan windows processer egentlig fungerer. Men det må have været forsøgt før.

Mvh Intel4004
Avatar billede arne_v Ekspert
15. juli 2008 - 15:08 #5
En speciel share fremfor C: er ikke en option ?
Avatar billede Lasse Novice
16. juli 2008 - 17:22 #6
Lad mig specificere problemet en lille smule:

Jeg har et 30 brugere der hver har deres egen PC. De bruger et program til at gemme dokumenter lokalt. Brugeren kan gemme hvor som helst paa sin maskine. Jeg kunne godt taenke mig at have en process P1 koerende i baggrunden der fanger outputtet fra dette program til P1's memory, hvorefter jeg skriver det til et andet sted sammen med opdatering af en database.
Avatar billede arne_v Ekspert
16. juli 2008 - 17:40 #7
Det lyder som noget der skal loeses paa anden vis end via programmering.

Hvad med at:
- lade brugerne koere med meget lave privs
- ikke give dem skrive adgang til det meste af hard disken
- give dem skrive adgang til netvaerks drev
- saette Windows & Word op til default at kigge paa netvaerks drev
?

Sandsynligheden talker for at de ikke gider bruge tid paa at finde et sted de kan gemme
paa harddisken (f.eks. TEMP).

Ellers kan du jo smide et image paa alle PC'ere hver nat. Efter at have mistet deres
arbejde et par gange vil de jo nok laere at det er bedst at gemme paa netvaerks drev !

:-)
Avatar billede Lasse Novice
10. august 2010 - 17:59 #8
dem der er interesseret i point ...

svar => point
Avatar billede arne_v Ekspert
10. august 2010 - 18:03 #9
tja
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester