Не могу запустить PHP на Win через HTA с помощью команд setx PATH и php -S

Таким образом, вам нужно будет хранить что-то в родительской области - если вы не хотите хранить объект IE, сохраните URL-адрес, который вы открыли, или еще лучше, дескриптор окна (свойство HWND, которое должно быть уникальным ). В противном случае у вас не будет надежного способа получить то окно, которое вы хотите, особенно если ваш сеанс открывает другие окна других IE.

# Variable for the created IE window handle
$expectedHWND = $null

# This will enumerate all ShellWindows opened as a COM object in your session
$allShellWindows = ( New-Object -ComObject Shell.Application ).Windows()

# Get the IE object matching the HWND you stored off when you first opened IE
# If you opened other windows in the session, the HWND should be unique so you
# can get the correct window you are expecting
$existingIE = $allShellWindows | Where-Object {
  $_.HWND -eq $expectedHWND
}

# Your code, slightly modified
if( $existingIE ){
  # You should be able to operate on $existingIE here instead of reassigning it to $IE
  Write-Output "Found existing IE session: HWND - $($existingIE.HWND), URL - $($existingIE.LocationURL)"
} else {
  $IE = New-Object -com internetexplorer.application; 
  $IE.visible = $true; 
  $IE.navigate($url);
  $expectedHWND = $IE.HWND
}

Если вы запустите этот дважды, но не устанавливайте $expectedHWND на $null во второй раз, он найдет ваше окно IE. Обратите внимание, что это большая работа для того, чтобы избежать хранения переменной в родительской области, но технически выполнимо.

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

0
задан stckvrw 19 January 2019 в 01:09
поделиться

1 ответ

Хорошо, достаточно использовать полный путь к php.exe в CMD-команде, если у нас возникли проблемы с переменной PATH:

WShell.Run('cmd /c C:\\my_app_folder\\php\\php.exe -S localhost:80',0,false);
0
ответ дан stckvrw 19 January 2019 в 01:09
поделиться
Другие вопросы по тегам:

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