articles:specialsoft:routersfr

АРМ Маршрутизатор

В данный момент это ПО используется в качестве маршрутизатора для сервисов СФР

Строка соединения ЭЛН: https://eln.sfr.gov.ru/ws-mo-crypto/FileOperationsLnService?wsdl

Строка соединения СЭДО: https://ecp.sfr.gov.ru/sedo/soap/SedoGateway?wsdl

Строка соединения ВНИМ: https://ecp.sfr.gov.ru/vnim/quarantine/QuarantineStatementServicePorts?wsdl

Настройка соединения СЗН: https://ecp.sfr.gov.ru/vnim/quarantine/SznServicePort?wsdl

СФР пока не реализовал использование ПО в качестве службы

Автоматизация будет работать только если вы поставите все 4 галочки на настройки соединения

Скачайте готовый файл routersfr.ps1 и добавьте его в автозагрузку (перед этим вытаскивайте его из zip архива)

Либо вы самостоятельно можете создать файл routersfr.ps1

Откройте его в текстовом редакторе и впишите в него следующее содержимое:

# Запуск программы с явным стилем окна
$process = Start-Process "C:\FssRouter\fss_mo.exe" -WindowStyle Normal -PassThru

# Ожидание 10 секунд
Start-Sleep -Seconds 10

# Загрузка сборок
Add-Type -AssemblyName System.Windows.Forms
Add-Type @"
using System;
using System.Runtime.InteropServices;
public class WinAPI {
    [DllImport("user32.dll")]
    public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    
    [DllImport("user32.dll")]
    public static extern bool SetForegroundWindow(IntPtr hWnd);
    
    [DllImport("user32.dll")]
    public static extern bool IsWindow(IntPtr hWnd);
    
    [DllImport("user32.dll")]
    public static extern bool IsWindowVisible(IntPtr hWnd);
    
    public const int SW_SHOW = 5;
    public const int SW_RESTORE = 9;
    public const int SW_SHOWNORMAL = 1;
}
"@

# Функция ожидания и активации окна
function Wait-AndActivateWindow {
    param([string]$windowTitle, [int]$timeout = 30)
    
    $stopwatch = [System.Diagnostics.Stopwatch]::StartNew()
    
    while ($stopwatch.Elapsed.TotalSeconds -lt $timeout) {
        $processes = Get-Process | Where-Object { $_.MainWindowTitle -like "*$windowTitle*" -and $_.MainWindowHandle -ne 0 }
        
        foreach ($proc in $processes) {
            $handle = $proc.MainWindowHandle
            
            if ([WinAPI]::IsWindow($handle)) {
                Write-Host "Найдено окно: $($proc.MainWindowTitle) (PID: $($proc.Id))"
                
                # Показываем окно, если скрыто
                if (-not [WinAPI]::IsWindowVisible($handle)) {
                    Write-Host "Окно скрыто, показываем..."
                    [WinAPI]::ShowWindow($handle, [WinAPI]::SW_SHOWNORMAL)
                }
                
                # Восстанавливаем и активируем
                [WinAPI]::ShowWindow($handle, [WinAPI]::SW_RESTORE)
                Start-Sleep -Milliseconds 500
                [WinAPI]::SetForegroundWindow($handle)
                Start-Sleep -Milliseconds 300
                
                return $proc
            }
        }
        
        Start-Sleep -Milliseconds 500
    }
    
    return $null
}

# Ждём и активируем окно программы
Write-Host "Ожидание окна 'Маршрутизатор'..."
$targetProcess = Wait-AndActivateWindow -windowTitle "Маршрутизатор"

if ($targetProcess) {
    Write-Host "Окно активировано, начинаем отправку клавиш..."
    Start-Sleep -Seconds 1
    
    # Нажатие Tab 10 раз
    for ($i = 1; $i -le 11; $i++) {
        Write-Host "Tab #$i"
        [System.Windows.Forms.SendKeys]::SendWait("{TAB}")
        Start-Sleep -Seconds 2
    }
    
    # Двойное нажатие Enter
    Write-Host "Enter #1"
    [System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
    Start-Sleep -Seconds 2
    
    Write-Host "Enter #2"
    [System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
    
    Write-Host "Готово!"
} else {
    Write-Host "ОШИБКА: Окно 'Маршрутизатор' не найдено в течение времени ожидания"
}
Этот сайт использует куки. Находясь здесь, вы соглашаетесь с их хранением на вашем компьютере. Также вы подтверждаете, что прочитали и поняли нашу Политику конфиденциальности. Если вы не согласны - покиньте сайт.Больше информации о куки
  • articles/specialsoft/routersfr.txt
  • Последнее изменение: 2026/07/06 09:44
  • dragdrop