Otevirani souboru pomoci jinych programu nez ktery ma soubor k pripone nastaven   zodpovězená otázka

VB.NET, I/O operace

Ahoj,Chci se zeptat jak se dá otevřít soubor(konkrétně HTML tabulka)v jiném programu než co mám nastaven jako výchozí(Firefox).

Zkusil jsem todle

Dim fn As String = SaveFileDialog1.Filename
            With DOC.SelectNodes("programy/program/cesta")(ComboBox1.SelectedIndex)
                Dim path As String = .InnerText
                If System.IO.File.Exists(path) Then
                    Dim bat As New IO.StreamWriter(Application.StartupPath & "/temp/bat.bat")
                    bat.Write(path & " " & fn & vbNewLine & "Pause")
                    bat.Close()
                    System.Diagnostics.Process.Start(Application.StartupPath & "/temp/bat.bat")
                Else
                    Exit Sub
                End If
            End With

Ale jde mi to jen u poznámkového bloku,u excelu,wordu atd se mi ten soubor prostě nenačte :(

Jak má tedy vypadat správný parametr který otevře vybraný soubor v programu?(např ve windows je funkce "Otevřít v Programu..." tak něco podobného bych potřeboval)

Jěště přidám část xml souboru:

<?xml version="1.0" encoding="utf-8" ?>
<programy>
  <program>
    <nazev>Excel</nazev>
    <cesta>C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE</cesta>
  </program>
  <program>
    <nazev>Word</nazev>
    <cesta>C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE</cesta>
  </program>

</programy>

Děkuju za odpovědi

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Proboha co je to zase za hnus. Poslední dobou se tu rozmáhá naprosto nepochopitelná deviace v podobě spouštění aplikací pomocí vytvoření dávkového souboru (což je asi tak stejně "dokonalé" jako zjišťování velikosti souboru pomocí File.ReadAllBytes("soubor").Length)

Prosímvás proč nepoužijete k tomu určenou statickou metodu Start(ByVal String, ByVal String) třídy System.Diagnostics.Process??? Druhý parametr této metody určuje argumenty spuštění procesu a sem právě předáte cestu k souboru, který chcete otevřít.

Dim appLocation = "C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE"
Dim fileName = "C:\Soubor.html"
System.Diagnostics.Process.Start(appLocation, fileName)

Pokud to takto nefunguje (což by rozhodně mělo, protože 99% aplikací podporuje otevření souboru pomocí předání cesty jako parametru), podívejte se do registru do větve HKEY_CLASSES_ROOT, vyhledejte příponu požadované aplikace a její odpovídající handler. V tomto handleru pak naleznete hodnotu (shell\open\command) která určuje jak předat soubor jako parametr...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback