C # Процесс, не в состоянии запустить EXE, который создает изображение и читать его обратно - PullRequest
0 голосов
/ 22 сентября 2011

Я пытаюсь запустить exe из C #

 ProcessStartInfo si = new ProcessStartInfo
                    (
                        ExePath, InputImageFilePath +" "+ 
                        numericUpDownResize.Value +" "+
                        numericUpDownPad.Value+" "+
                        numericUpDownWindow.Value
                    );
                si.UseShellExecute = true;
                si.CreateNoWindow = true;
                si.WindowStyle = ProcessWindowStyle.Normal;
                si.Verb = "runas";

                Process process = Process.Start(si);
                process.WaitForExit();               


                int indexOfLastSlash = ExePath.LastIndexOf(@"\");
                string outputFilePath = ExePath.Substring(0, indexOfLastSlash);
                OutputImage = new Bitmap(outputFilePath + @"\output.jpg");

Когда я запускаю exe из командной строки, он работает нормально, как и ожидалось, и создается JPEG. Но когда я пытаюсь запустить программу на c #, после того, как она запустится один раз через UAC, я вижу, что приглашение командной строки открыто и отображается состояние. Но выходное изображение не производится.

Есть что-то, по чему я скучаю?

Обновление

После добавления Манифеста в соответствии с предложением Moxplod я просматривал настройки безопасности. Нужно ли отмечать помеченную рамку зеленым, как другие? enter image description here

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Производит ли программа выходное изображение в текущем каталоге? Потому что вы проверяете изображение в каталоге, который содержит исполняемый файл, который может отличаться от текущего каталога.

1 голос
/ 22 сентября 2011

Вы можете добавить запись манифеста, чтобы избежать ошибок разрешения. Если это то, что вы хотите.

 <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
...