window.name
значение сохраняется через изменения страницы, может быть считан родительским окном, если в том же домене (если в iframe, используйте document.getElementById("your frame's ID").contentWindow.name
для доступа к нему), и ограничен только доступной памятью.
Я бы сделал это с помощью PowerShell или пакетного сценария. Сценарий может запустить ваш процесс и нормально вернуться в CC.NET после создания исполняемого файла. Это единственный способ, которым я могу это сделать, поскольку CC.NET действительно должен знать, что он вернулся, и сценарий может вернуться, даже если процесс, который вы создали, все еще работает. Пример сценария PowerShell, который сделает то, что вы хотите. Затем вы просто вызываете сценарий PowerShell с путем к исполняемому файлу в качестве параметра.
param( [string] $exePath = $(throw "A path to executable required.")
)
Invoke-Item $exePath
здесь, в CC.NET 1.5, будет описано, как настроить задачу PowerShell
<powershell>
<script>yourScriptName.ps1</script>
<scriptsDirectory>D:\CruiseControl</scriptsDirectory>
<buildArgs>full path to exe you want to kick-off</buildArgs>
</powershell>
Поместите запуск программы в отдельный проект CCNET и добавьте ForceBuildPublisher в исходный проект.
<project name="OriginalProject">
<!-- ... -->
<publishers>
<!-- ... -->
<forcebuild>
<project>LaunchProgram</project>
</forcebuild>
</publishers>
</project>
Как насчет этого ... 2 Маленькие программы
1) Процесс, который работает все время (может быть, служба Windows?), И слушает сокет tcp, когда он получает подключения, выполните свой трехнедельный процесс.
2) Процесс, который может быть вызван CC.NET, и открывает TCP-соединение с процессом №1, а затем завершает работу.
Вы можете использовать любую форму взаимодействия между процессами. связь, но сокеты TCP просты и надежны.