Как открыть IE с информацией о сообщении в C#?

Если можно гарантировать, что нет никаких запятых в данных, то самый простой путь состоял бы в том, чтобы, вероятно, использовать String.split.

, Например:

String[] values = myString.Split(',');
myObject.StringField = values[0];
myObject.IntField = Int32.Parse(values[1]);

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

9
задан शेखर 24 September 2013 в 04:34
поделиться

5 ответов

Добавьте веб-браузер в форму. Он должен иметь имя по умолчанию «webBrowser1» - вы можете изменить его, если хотите. Установите для свойства «Visible» значение «False». Дважды щелкните строку заголовка формы, чтобы автоматически сгенерировать событие загрузки в коде.

Вызовите метод Navigate с такой сигнатурой:

void Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders);

Вот так:

private void Form1_Load(object sender, EventArgs e)
{
    webBrowser1.Navigate("http://www.google.com/", "_blank", Encoding.Default.GetBytes("THIS IS SOME POST DATA"), "");
}

Вы можете передать туда любой массив байтов, который хотите ... Encoding.Default.GetBytes () - это просто быстрый способ передать струна через.

Уловка состоит в том, чтобы использовать _blank для целевого кадра.

13
ответ дан 4 December 2019 в 12:19
поделиться

Если вы выполните ShellExecute с командой OPEN в URL-адресе, то будет создан веб-браузер по умолчанию и откроется ссылка. В качестве альтернативы вы можете вызвать Internet Explorer (снова используя ShellExecute) с добавленным URL-адресом в конце строки (так что строка, которую вы используете для ShellExecute, будет выглядеть так:

System.Diagnostics.Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe", "http://google.com");

Вы говорите о POST, но вы не можете сделать POST, указанная выше строка выполняет GET. В зависимости от того, как настроен веб-сайт, вы можете просто добавить параметры в конце URL-адреса, например:

System.Diagnostics.Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe", "http://www.google.com/search?q=bing");
3
ответ дан 4 December 2019 в 12:19
поделиться

Фактически, вы можете использовать process.start с опубликованными данными строки запроса:

System.Diagnostics.Process.Start("IExplore.exe", "http://localhost/file.html?foo=bar&baz=duh");
-3
ответ дан 4 December 2019 в 12:19
поделиться

Я написал примерно следующее:

require 'rubygems'
require 'RMagick'
include Magick

image = Image.new(50, 50) {
  self.background_color = "white"
}
text = Draw.new
text.annotate(image, 0,0,0,40, 'Named Colors') {
     self.fill = 'black'
     self.pointsize = 32
}
image.write("image.png")

Что должно быть достаточно легким для понимания. Также посмотрите документацию . Хотя это не совсем идеально, но почти все есть.

m не совсем понятно, что вы имеете в виду под словом "Post" в своем сообщении (я ассоциирую "Post" с ASP.NET), но вы можете записать html-файл во временное место с тем, что вам нравится в нем, а затем передать адрес этого файла, когда вы запускаете IE, используя описанные выше методы. лучший,

2
ответ дан 4 December 2019 в 12:19
поделиться

Вы можете просто запустить процесс, отправив URL-адрес в Process.Start в качестве параметра. Возникла проблема при вызове StartProcess из потока графического интерфейса WebForms из-за контекста синхронизации. В моем решении для этой цели используется пул потоков. Преимущество этого решения заключается в том, что URL-адрес открывается в предпочтительном пользователем веб-браузере , которым может быть IE, Firefox и т. Д.

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming",
  "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#"),
 System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
public void OpenUrl(string urlString)
{
  try
  {
    ThreadPool.QueueUserWorkItem(delegate { StartProcess(urlString, null); });
  }
  catch (Exception ex)
  {
    log.Error("Exception during opening Url (thread staring): ", ex);
    //do nothing
  }
}

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
public void StartProcess(string processName, string arguments)
{
  try
  {
    Process process = new Process();
    process.StartInfo.FileName = processName;
    if (!string.IsNullOrEmpty(arguments))
    {
      process.StartInfo.Arguments = arguments;
    }
    process.StartInfo.CreateNoWindow = false;
    process.StartInfo.UseShellExecute = true;
    process.Start();
  }
  catch (Exception ex)
  {
    log.ErrorFormat("Exception in StartProcess: process: [{0}], argument:[{1}], exception:{2}"
                    , processName, arguments, ex);
  }
}
1
ответ дан 4 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

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