Как использовать Процесс. Запустите () или эквивалентный с Моно на Mac и передайте в аргументах

Вы можете сделать это, не отправив форму.

Например, если кнопка отправки формы с идентификатором «поиск» находится в другой форме. Вы можете вызвать событие click на этой кнопке отправки и после этого вызвать ev.preventDefault. В моем случае я подтверждаю форму B из представления формы A. Подобно этому

function validateFormB(ev){ // DOM Event object
  //search is in Form A
  $("#search").click();
  ev.preventDefault();
  //Form B validation from here on
}
24
задан AutomatedTester 12 February 2010 в 12:41
поделиться

4 ответа

Чтобы заставить Process.Start использовать exec напрямую вместо использования механизма ОС для открытия файлов, вы должны установить UseShellExecute в false. Это также верно для Linux и Windows.

Process.Start(new ProcessStartInfo (
    "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
    "--no-first-run")
    { UseShellExecute = false });

Обратите внимание, что вы также можете использовать «open» для вашего случая использования, чтобы правильно запустить пакет приложений Chrome.Используйте аргумент '-a', чтобы заставить его запустить конкретное приложение, аргумент '-n', чтобы открыть новый экземпляр, и '--args', чтобы передать аргументы:

Process.Start(new ProcessStartInfo (
    "open",
    "-a '/Applications/Google Chrome.app' -n --args --no-first-run")
    { UseShellExecute = false });
22
ответ дан 29 November 2019 в 00:10
поделиться

Похоже, что Process использует для запуска утилиту командной строки open .

Вы должны избегать прямого вызова исполняемого файла. Если приложение уже запущено, оно будет запускать второй его экземпляр вместо активации уже запущенного экземпляра. Это, вероятно, не то, что вы хотите, и не все приложения могут справиться с этим в любом случае.

С открытым синтаксисом запуска Chrome будет

open -a Chrome

. Я не знаю, как класс Process работает в MacOS X, но я предполагаю, что параметры должны быть похожими.

Обратите внимание: если вы просто хотите открыть веб-страницу, вам не следует указывать исполняемый файл; вместо этого просто передайте URL, чтобы он открывался в браузере пользователя по умолчанию. Это действительно для любой платформы.

Process.Start("http://www.google.com");
4
ответ дан oefe 29 November 2019 в 00:10
поделиться

Вы пробовали что-то вроде объединения параметров в имя процесса вместо передачи его отдельно?

var processName = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome";
var args = "--no-default-browser-check";
Process.Start(String.Format("{0} {1}", processName, args));
1
ответ дан tucaz 29 November 2019 в 00:10
поделиться

Почему бы вам не попробовать что-то вроде этого:

Process P = new Process();                        
P.StartInfo.FileName = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome";
P.StartInfo.Arguments = "--no-default-browser-check";
P.UseShellExecute = false;            
P.Start();
0
ответ дан caesay 29 November 2019 в 00:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: