Toon posts:

Voorkom openen geopend bestand via b.v. Explorer

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik probeer een tooltje of misschien wel standaard windows functionaliteit te vinden dat voorkomt dat een bestand wordt geopend als het al geopend is. MS Word en Excel doen dat zelf al. Als ik een tekst bestand open met notepad en ik (of iemand anders) probeert dat ook, dat ik dan een melding krijg dat het bestand al is geopend.
Als ik zoek via google of op download.com kom ik alleen maar programma's tegen waarmee je bestanden direct kunt beveiligen.

Hints en tips zijn welkom.

  • hufkes
  • Registratie: Maart 2000
  • Laatst online: 17-07 09:52

hufkes

nee, daar staat niet hufter!

In het programma dat het bestand opent kun je aangeven (in de programmacode) of hij dat exclusief moet openen. Als de maker van dat programma dat niet geimplementeerd heeft, dan zul je dat dus ofwel in de broncode aan moeten passen (als je die hebt en dat mag) of je zult met behulp van trucjes het bestand ontoegankelijk moeten maken.

Je zou bijvoorbeeld als het steeds om één bepaald bestand gaat een batchprogramma kunnen maken dat de file eerst kopieert, dan de originele file mbv attrib +r readonly maakt, dan de kopie van het bestand voor de gebruiker opent, hem laat klooien en opslaan (kopie dus) en als hij klaar is de originele file weer toegankelijk maken en overschrijven met de aangepaste versie.

Zoiets dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
echo.Openen bestand XYZ.txt
echo.Moment aub.
if exist __XYZ.txt GOTO ERROR

copy XYZ.txt __XYZ.txt
attrib +r XYZ.txt
notepad XYZ__.txt
attrib -r XYZ.txt
ren XYZ.txt XYZ.bak
ren __XYZ.txt XYZ.txt
GOTO EXIT

:ERROR
echo.Bestand is al door iemand anders geopend.
echo.Einde
pause>nul

:EXIT

[ Voor 19% gewijzigd door hufkes op 09-05-2007 12:41 ]

Onderstaande signature is al >20jr oud ***hoe dan***
---
Het internet is een veelbelovend medium
....dat maar heel weinig van zijn beloftes nakomt.
Wat weg is... raak je nooit meer kwijt :P


Verwijderd

Topicstarter
Het aanpassen van de code gaat niet.

De manier die jij geeft zou betekenen dat ik via batchfiles jouw manier inbak. Dus, shortcut van bestaand programma naar batchfile maken en dan alleen nog maar die batchfile gebruiken. Op deze manier zijn er teveel mogelijkheden om er omheen te werken.

Ideaal gezien zou het een uitbreiding moeten zijn in de explorer of misschien een achtergrond proces dat het openen van een bestand onderschept, controleert of het al open is en dan eventueel met een melding komt.

  • hufkes
  • Registratie: Maart 2000
  • Laatst online: 17-07 09:52

hufkes

nee, daar staat niet hufter!

Wat jij wilt is dus het aanpassen van de standaardaanroep van file open in windows bij verschillende gebruikers... gaat je echt niet lukken. Eventueel kun je met reshack ofzo proberen de aanroep in het programma op te zoeken en daar aan te passen, maar dat is a. illegaal en b. waarschijnlijk niet makkelijk uit te voeren :)

Toch beter de maker van het programma vragen de file.open aan te passen, zie daarvoor bijvoorbeeld http://msdn2.microsoft.co.../system.io.fileshare.aspx

Onderstaande signature is al >20jr oud ***hoe dan***
---
Het internet is een veelbelovend medium
....dat maar heel weinig van zijn beloftes nakomt.
Wat weg is... raak je nooit meer kwijt :P


Verwijderd

Topicstarter
Het gaat om Oracle Developer Suite 10g en daar het Forms Designer programma van. Aanpassen onmogelijk.

Maar is het echt onmogelijk om in te breken op het file open event van windows?
Wellicht een vraagje voor Sysinternals?