Aprire file office e altri tipi con un programma esterno al proprio so...

giovedì 31 gennaio 2013 - 20.56
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010  |  SQL Server 2008 R2  |  Office 2010

pinturikkio92 Profilo | Newbie

Salve developers,
ho creato un form folder in vb.net. Questa cartella contiene alcuni file (.docx,.xls,.ppt,.pdf,.jpg,ecc..). Vorrei che quando faccio un doppio-click su di un file si apra con office (per esempio per files word o excel) o col visualizzatore di immagini per jpg ecc.. O ancora meglio che ti chieda con che programma vuoi aprire il files..
Chi mi aiutaaaa?


I've a folder form in my vb.net-software. This folder contains some files (.docx,.xls,.ppt,.pdf,.jpg,ecc..). How I can open these files with office or with an external software wich isn't my software (office for word,powerpoint ecc, and another for pdf,jpg,png, ecc) ?

ridaria Profilo | Expert

non ho fatto nessn test, quindi chiedo a te.
Ma se gli fai doppio click sopra non si apre da solo con il programma giusto?

Il SO è sempre quello no?

CIAO
Riccardo D'Aria

ma_di Profilo | Junior Member

Ciao; ti rispondo al volo ( non ho provato ):
1) All'interno del tuo prorgramma costruisciti uno switch case dove, a seconda dell'estensione del file andrai ad eseguire

Shell("C:\excel.exe nome_file") se un xls o xlsx
Shell("C:\word.exe nome_file") se un doc o docx

e così via.


Vinsent Profilo | Senior Member

>Salve developers,
>ho creato un form folder in vb.net.
Form folder??? Cosa intendi?

>Questa cartella contiene alcuni file (.docx,.xls,.ppt,.pdf,.jpg,ecc..). Vorrei che quando
>faccio un doppio-click su di un file....
Dipende da cos' è e come è fatto il "form folder".....

>...si apra con office (per
>esempio per files word o excel) o col visualizzatore di immagini
>per jpg ecc..

Esiste la classe Process:
http://msdn.microsoft.com/it-it/library/system.diagnostics.process(v=vs.100).aspx
che permette di fare svariate cose.
Crea un file txt sul desktop, scrivici qualcosa e rinominalo in 1.txt, esempi:
'apre il file con programma predefinito Process.Start(My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt") 'apre il file con IE Process.Start("iexplore.exe", My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt") 'apre il file con Google Chrome Process.Start("chrome.exe", My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt") 'apre il file con word Process.Start("winword.exe", My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt")
e se studi la classe trovo molto altro...

>O ancora meglio che ti chieda con che programma
>vuoi aprire il files..
>Chi mi aiutaaaa?
Qui ho una lacuna...penso si possa fare qualcosa ma molto limitata e laboriosa, nel senso che bisogna ottenere i programmi installati con la possibilità che il programma scelto non sia compatibile con l' estensione del file...oppure creare una lista(a priori) di programmi da proporre in base all' estensione ma in questo caso si dovrebbero togliere dalla lista i programmi non installati.
Per il resto basta impostare una stringa alla "scelta" per cambiare il programma che deve aprire il file:
Dim programma As String Private Sub Button1_Click() Handles Button1.Click programma = "iexplore.exe" Process.Start(programma, My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt") End Sub Private Sub Button2_Click() Handles Button2.Click programma = "winword.exe" Process.Start(programma, My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt") End Sub Private Sub Button3_Click() Handles Button3.Click programma = "notepad.exe" Process.Start(programma, My.Computer.FileSystem.SpecialDirectories.Desktop & "\1.txt") End Sub

Ciao!

pinturikkio92 Profilo | Newbie

Grazie Vinsent! Solo che io dovrei aprire un file che sta in un database.. quindi mi servirebbe il path del file che sta all'interno del database.. come dovrei fare?
Process.Start(My.Computer.FileSystem.SpecialDirectories.------)?

Il form folder comunque è il form di esplorazione. i files che stanno dentro, sono files estratti da un db con i comandi filetostream

Vinsent Profilo | Senior Member

>Grazie Vinsent! Solo che io dovrei aprire un file che sta in
>un database.. quindi mi servirebbe il path del file che sta all'interno
>del database.. come dovrei fare?
>Process.Start(My.Computer.FileSystem.SpecialDirectories.------)?
>
>Il form folder comunque è il form di esplorazione. i files che
>stanno dentro, sono files estratti da un db con i comandi filetostream

Non capisco ancora cosa sia il form folder...e l' uso di filetostream visto che serve a leggere/scrivere un file, inoltre un file é un file, non è che stà dentro un db ma al limite il db contiene il percorso del file.
Comunque, se usi filetostream già recuperi il path del file per usarlo nel "form folder" e My.Computer.eccetera serve solo ad indicare la directory "Desktop" cioè una cartella Speciale di Windows al di là della versione di Windows stesso, non so se hai presente...quindi, una volta che hai il percorso del file diventa ad esempio:
Process.Start("programma", "percorso")
dove "programma" e il programma che vuoi usare per aprire il file mentre "percorso" è il path del file...presumo che non hai letto il link alla documentazione su MSDN.

pinturikkio92 Profilo | Newbie

Vinsent ascolta, il file si trova proprio all'interno del db, ed è un varbinary (del tipo 0x89504E470D0A1A0A0000000D49484452000007.......)
- Per prima cosa vorrei sapere come leggere un varbinary da vb.net ed associarlo ad una variabile;
- Secondo: vorrei capire come aprire il file (premetto che conosco già l'evento a cui associare l'azione, cioè quando clicco sull'immagine del file in vb.net, si dovrebbe avviare l'azione con l'apertura del file). Ok io seguo process.start("Programma", "Percorso"), ma non so come beccare il percorso dal varbinary, premettendo che non so come leggere il varbinary in vb.net.
Scusa l'ignoranza, e ti ringrazio anticipatamente Vinsent

Vinsent Profilo | Senior Member

>Vinsent ascolta, il file si trova proprio all'interno del db,
>ed è un varbinary (del tipo 0x89504E470D0A1A0A0000000D49484452000007.......)
>- Per prima cosa vorrei sapere come leggere un varbinary da vb.net
>ed associarlo ad una variabile;
>- Secondo: vorrei capire come aprire il file (premetto che conosco
>già l'evento a cui associare l'azione, cioè quando clicco sull'immagine
>del file in vb.net, si dovrebbe avviare l'azione con l'apertura
>del file). Ok io seguo process.start("Programma", "Percorso"),
>ma non so come beccare il percorso dal varbinary, premettendo
>che non so come leggere il varbinary in vb.net.
>Scusa l'ignoranza, e ti ringrazio anticipatamente Vinsent

Nel primo post chiedi tutt' altro...se spiegavi "bene" da subito evitavo di rispondere perchè non ho la più idea di cosa sia ciò che hai scritto ...e spero di non averti confuso le idee indicandoti la classe Process.
Ti conviene aprire dei nuovi topic con titolo e "spiegazione" adatti al problema in modo da attirare l' attenzione di qualcuno che conosce l' argomento.
Ciao!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5