2013-03-26 1 views
4

У меня есть графический интерфейс winfrom, который имеет контекстное меню «help». При щелчке, я хотел бы открыть руководство пользователя для приложения. Руководство представляет собой pdf-файл, который хранится в ресурсах приложения.C# Как открыть PDF-файл в моих ресурсах проекта?

Вопрос: Как мне открыть это для пользователя?

код Я работаю с

System.Diagnostics.Process process = new System.Diagnostics.Process(); 
bool adobeInstall = false; 
RegistryKey adobe = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Adobe"); 
if (adobe != null) 
{ 
    RegistryKey acroRead = adobe.OpenSubKey("Acrobat Reader"); 
    if (acroRead != null) 
     adobeInstall = true; 
} 

if (adobeInstall == true) 
{ 
    ///Open the pdf file?? 
} 
+3

'Process.Start (" путь к файлу PDF ")'? – MyCodeSucks

+0

Как мне начать (Properties.Resources.mypdf)? Я .start part inst мои заботы – stackoverflow

ответ

6
string locationToSavePdf = Path.Combine(Path.GetTempPath(), "file name for your pdf file.pdf"); // select other location if you want 
File.WriteAllBytes(locationToSavePdf,Properties.Resources.nameOfFile); // write the file from the resources to the location you want 
Process.Start(locationToSavePdf); // run the file 
+0

+1, за исключением того, что вы можете использовать 'Path.Combine' вместо string.Format ... Кроме того, не забудьте очистить после просмотра файла! –

+0

Хорошее представление о Path.Combine, спасибо. Что касается очистки, я оставлю это на Mrshll187, так как он может захотеть записать файл в папке приложения вместо temp, поэтому никакой очистки не потребуется. – coolmine

1

Попробуйте это (вам нужно только путь к файлу PDF, не нужно, чтобы добавить его к ресурсу):

using System.Diagnostics; 

Process.Start(“Path_of_PDFFile”) 
+0

Как мне дать ему путь. Его в пределах ресурсов приложения – stackoverflow

+0

Но этот файл находится в вашей системе, я имею в виду C:/Programs/bla-bla? Или нет? ;) – duDE

+0

Его комплект в приложении, когда он устанавливается. Его все относительно того, где он размещается. hardcoding путь не является опцией – stackoverflow

1

Добавить using System.Diagnostics; в вы используете, а затем вызвать:

Process.Start("path to pdf")

Вам не нужно будет найти PDF Reader exe или что-нибудь еще. Просто вызовите путь к файлу, который вы хотите.

+0

Этот файл находится в моих прикладных ресурсах. Дать ему путь к файлу - трудная часть. Я перехожу от своих ресурсов и воссоздаю файл на какой-то путь. Затем открывайте его? Как я могу справиться с этим? – stackoverflow

+0

Таким образом, PDF не хранится на вашем компьютере вообще? – MyCodeSucks

+0

Путь относится к тому, где пользователь устанавливает/выполняет приложение. PDF является ресурсом самого приложения – stackoverflow

Смежные вопросы