Chcę poprosić o pomoc przy otwieraniu pliku z aplikacji C# z powiązaną aplikacją. Próbowałem to:Otwórz plik z powiązaną aplikacją
ProcessStartInfo pi = new ProcessStartInfo(file);
pi.Arguments = Path.GetFileName(file);
pi.UseShellExecute = true;
pi.WorkingDirectory = Path.GetDirectoryName(file);
pi.FileName = file;
pi.Verb = "OPEN";
Process.Start(pi);
lub to:
Process.Start(file);
gdzie ciąg file
w obu przykładach reprezentuje pełną ścieżkę dostępu do pliku próbuje otworzyć. Teraz wszystko działa dobrze, z wyjątkiem obrazów (jpg) z aplikacją ACDSee. Stowarzyszenia Irfanview działają dobrze, dokumenty MS Office też. Po próbie otwarcia obrazu jpg związanego z acdsee po prostu uruchamia acdsee w obszarze powiadomień i nie otwiera pliku.
odkryłem, że w rejestrze CLASSES_ROOT dla obrazów * .jpg, nie jest wartością ACDSee.JPG jako powiązanej aplikacji, a w tym kluczu jest w shell-> typu otwarty> Komenda ścieżkę :
"C:\Program Files\ACD Systems\ACDSee\ACDSee.exe" /dde
i rzeczą, która to dziwne /dde
jest powód, dlaczego nie mogę otworzyć pliku. Zdałem sobie sprawę, że w tym samym reg klucz shell-> Otwórz jest jakaś DDEExec
key o wartości [open("%1")]
Do widzenia Irfan lub innej sprawdzonej aplikacji nie jest ddeexec, tylko normalna komenda jak
"C:\Program Files (x86)\IrfanView\i_view32.exe" "%1"
, które mogą być uruchamiane z linii poleceń po swaping% 1 do nazwy pliku
, ale nie mogę uruchomić polecenie z wejściem ACDSee w wierszu poleceń :(
Więc moje pytanie brzmi: w jaki sposób można skonfigurować ProcessStartInfo
obiekt do upewnij się, że będzie uruchamiał wszystkie pliki, tak jak byłoby w eksploratorze przez doubleclick, standardy i te DDEExec
te? Czy jest coś takiego, jak DDEExec
, o którym powinienem wiedzieć? dzięki i przepraszam za mój EN
Wygląda na to, że próbował już tego z 'Process.Start (file);'. –
"Więc moje pytanie, jak mogę ustawić obiekt ProcessStartInfo, aby upewnić się, że uruchomi wszystkie pliki tak, jak byłoby to w eksploratorze przez doubleclick": odpowiedź jest taka. Używał argumentów linii poleceń, cokolwiek ... ale nie bezpośredniego wywoływania, tyle ile widzę. – Tigran
@ Tigran Mario ma rację, jak napisałem Próbowałem twojej sugestii jako drugiego przykładu ... chciałem zadać moje pytanie w sposób, który wyraźnie nie jest odpowiednim rozwiązaniem, ponieważ jpg nie jest otwarte! – Zavael