Toon posts:

[VB.NET 2005] bestand read-only starten via shell process

Pagina: 1
Acties:
  • 146 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil een bestand (word, excel enz.) via een shell process read-only starten.
Ik kan het bestand wel normaal starten via een shell process maar niet read-only.
De gebruiker mag het bestand alleen lezen en niets wijzigen.
Weet iemand of dit kan en zo ja hoe dit kan ?
ik kom het op internet nergens tegen.
Dit is mijn code om een bestand via een shell process te starten:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
        Dim ShellProcess As New Process

        Try
            ShellProcess.StartInfo.FileName = "blaat"
            ShellProcess.StartInfo.UseShellExecute = True
            ShellProcess.Start()
            ShellProcess.WaitForExit()
        Catch
            MsgBox("kan bestand niet openen")
        Finally
            ShellProcess.Dispose()
        End Try

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 18-12-2025
Volgens mij start open je een bestand in read-only altijd met een commandline argument. Laat Process.StartInfo nu ook een property Arguments hebben...

Verwijderd

Topicstarter
cowgirl schreef op maandag 21 augustus 2006 @ 14:52:
Volgens mij start open je een bestand in read-only altijd met een commandline argument. Laat Process.StartInfo nu ook een property Arguments hebben...
daar had ik natuurlijk al gekeken maar zag geen property met readonly of iets wat erop lijkt.
welke moet ik dan gebruiken bij ShellProcess.StartInfo.Arguments. ???

Verwijderd

Als je het bestand voor het openen read-only maakt, wordt dat door Word en Excel gedetecteerd en gerespecteerd. Excel kent ook een /r switch, maar Word helaas niet.

Excel command line switches
Word command line switches

Verwijderd

Topicstarter
Verwijderd schreef op maandag 21 augustus 2006 @ 15:14:
Als je het bestand voor het openen read-only maakt, wordt dat door Word en Excel gedetecteerd en gerespecteerd. Excel kent ook een /r switch, maar Word helaas niet.
Dus als ik het goed begrijp moet je sowieso per soort applicatie ( word, excel enz.) het bestand eerst read-only maken op verschillende manieren en vervolgens het bestand starten.
dat is mijn eerste oplossing eigenlijk, ik wou het juist voor alle applicaties laten gelden, maar dat is dus niet mogelijk ? Dit was mijn eerste oplossing, dan heb je ReadOnly:=True dat werkt wel, alleen het nadeel is dat je voor word, excel, acrobat enz. dan dat moet programmeren. Ik had gehoopt dat het sneller kon. Dit is die code die ik daarvoor gebruik:
Visual Basic:
1
2
3
4
5
6
7
8
9
Dim WordApp As New Word.Application()
WordApp.WindowState = Word.WdWindowState.wdWindowStateMaximize
Dim aDoc As Word._Document = WordApp.Documents.Open(fileName, ReadOnly:=True, Visible:=True)
WordApp.Visible = True

Dim ExcelApp As New Excel.Application()
ExcelApp.WindowState = Excel.XlWindowState.xlMaximized
Dim aDoc As Excel._Workbook = ExcelApp.Workbooks.Open(fileName, ReadOnly:=True)
ExcelApp.Visible = True

Iemand anders nog een beter/ander idee ?

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Simpele quick & dirty methode is voordat je het bestand open eerst de attributen van het bestand naar read-only zetten ( filefuncties ) en dan het bestand openen, na afsluiten de attributen weer terug zetten. Nu Werkt het met elke app.

Verwijderd

Gomez12 schreef op maandag 21 augustus 2006 @ 15:46:
Simpele quick & dirty methode is voordat je het bestand open eerst de attributen van het bestand naar read-only zetten ( filefuncties ) en dan het bestand openen, na afsluiten de attributen weer terug zetten. Nu Werkt het met elke app.
Dat bedoelde ik inderdaad met readonly maken
http://msdn2.microsoft.co...o.file.setattributes.aspx

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 13-01 07:19
Of als je de attributen niet wilt veranderen (stel dat je programma crasht, dan blijft het bestand read only) kun je het bestand eerst zelf openen met een write lock.

Verwijderd

Topicstarter
deze oplossing werkt prima, thx :)

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 23-12-2025

_Thanatos_

Ja, en kaal

Catch
MsgBox("kan bestand niet openen")
Das trouwens niet zo netje he, stel nou dat er iets anders mis ging ;)

日本!🎌


Verwijderd

Topicstarter
_Thanatos_ schreef op dinsdag 22 augustus 2006 @ 12:47:
[...]

Das trouwens niet zo netje he, stel nou dat er iets anders mis ging ;)
ja haha weet ik, was alleen een test, ik heb het inmiddels anders opgelost :9
als je het netjes wilt doen moet je voor alle exceptions een apart bericht maken of de gebruiker de foutmelding laten zien door ex.message ofzo.
Pagina: 1