Делать это нужно следующим образом:
$iexplorer = new-object -com "InternetExplorer.Application"
$iexplorer.navigate("https://www.microsoft.com")
По умолчанию он создает невидимое окно.
Если вам нужно сделать его видимым, вы измените логическое значение:
$iexplorer.visible = $true
Чтобы снова сделать его невидимым, просто выполните:
$iexplorer.visible = $false
Редактировать Невидимое начало C # - я почти уверен, что вы найдете его на SO. Следующего кода должно быть достаточно:
ProcessStartInfo ieProcess = new ProcessStartInfo();
ieProcess.FileName = "iexplore.exe";
ieProcess.Arguments = "https://www.microsoft.com";
ieProcess.CreateNoWindow = true;
ieProcess.WindowStyle = ProcessWindowStyle.Hidden;
ieProcess.ErrorDialog = false;
Process.Start(ieProcess);
Edit 2 нашел другой способ скрыть окно (если вышеуказанное не работает В MSDN я нашел ShowWindow. У меня нет возможности попробовать ее сейчас, но вы можете сделать это следующим образом:
Вам понадобится ShowWindow
& _ 6_.
В функции ShowWindows
есть два значения, подходящих для вашего варианта использования. Определение:
BOOL WINAPI ShowWindow(
_In_ HWND hWnd,
_In_ int nCmdShow
);
HWND - ручка на окно.
mCmdShow (число):
SW_HIDE 0 Скрывает окно и активирует другое окно. SW_SHOW 5 Активирует окно и отображает его в текущем размере и положении.
Для FindWindow
:
HWND WINAPI FindWindow(
_In_opt_ LPCTSTR lpClassName,
_In_opt_ LPCTSTR lpWindowName
);
Параметры
lpClassName [in, необязательно]
Тип: LPCTSTR
Имя класса или атом класса, созданный предыдущим вызовом функции RegisterClass или RegisterClassEx. Атом должен быть в младшем слове lpClassName; старшее слово должно быть нулевым.
Если lpClassName указывает на строку, она определяет имя класса окна. Имя класса может быть любым именем, зарегистрированным с помощью RegisterClass или RegisterClassEx, или любым из предопределенных имен управляющих классов.
Если lpClassName имеет значение NULL, он находит любое окно, заголовок которого соответствует параметру lpWindowName.
lpWindowName [in, необязательно]
Тип: LPCTSTR
Имя окна (заголовок окна). Если этот параметр равен NULL, все имена окон совпадают.
Это, вероятно, самый низкий уровень, который вы можете получить. (исходный код вдохновлен техническое решение) using System; с помощью System.Diagnostics; using System.Runtime.InteropServices;
class Program
{
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
// meaning defined above
const int SW_HIDE = 0;
const int SW_SHOW = 5;
static void Main()
{
Process ieProcess= new Process();
ieProcess.StartInfo.FileName = "iexplore.exe";
ieProcess.StartInfo.Arguments = "https://www.microsoft.com";
ieProcess.StartInfo.UseShellExecute = false;
ieProcess.StartInfo.CreateNoWindow = true;
ieProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
ieProcess.StartInfo.LoadUserProfile = true;
ieProcess.Start();
//IntPtr hWnd = FindWindow(windowName, null);
IntPtr hWnd = FindWindow("Internet Explorer", null)
if (hWnd != IntPtr.Zero)
{
ShowWindow(hWnd, SW_HIDE); // Hide console window
ieProcess.WaitForExit(); // Tells you if the stdout or stderro should be synchronous or asynchronous
}
}
}
person
tukan
schedule
12.04.2018