2016-03-10 4 views
1

Я создал проект службы Windows, который будет использовать TiffCP exe, чтобы разбить любые файлы TIFF, найденные в нескольких файлах tiff. Я использую код, который был дан в качестве примера на сайте:TiffCP Process не закрывается

public static class SplitTiffImage 
{ 
    public static void Main() 
    { 
     string[] arguments = 
     { 
      @"Sample Data\multipage.tif,1", 
      "SplitTiffImage_2ndPage.tif" 
     }; 
     TiffCP.Program.Main(arguments); 

     Process.Start("SplitTiffImage_2ndPage.tif"); 
    } 
} 

Это работает, как ожидалось, и раскалывает файл. Тем не менее, процесс создается (MSPVIEW.EXE), и я не могу получить доступ к файлу, потому что он редактируется в другой программе. Мне нужно вручную убить процесс, чтобы получить доступ к нему. Я также попытался создать процесс как переменную, а затем попытаться закрыть или убить его, но это тоже не работает. Есть идеи? Благодарю.

Редактировать: Я поставил этот код перед тем, как получить доступ к процессу снова и когда служба остановится и, похоже, делает трюк. Это работает, но мне интересно, есть ли лучший способ.

Process[] process = Process.GetProcessesByName("MSPVIEW"); 
if (process.Length > 0) 
{ 
    foreach (var p in process) 
    { 
     p.Kill(); 
    } 
} 

ответ

1

Удалить

Process.Start("SplitTiffImage_2ndPage.tif"); 

из приведенного выше кода.

Линия открывает выход в средстве просмотра по умолчанию. В вашем случае это Microsoft Office Document Imaging (MSPVIEW.EXE). Вам явно не нужен вывод, который нужно открыть в средстве просмотра.

+0

Я предположил, что необходимо разбить изображение, но я вижу, что это не так. Отлично, спасибо за вашу помощь. – DrivenTooFar

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