2010-06-14 7 views

ответ

3

К сожалению, вы используете cannot do that внутри скрипта, используя любой из объектов WSH.

Единственный способ сделать это - запустить скрипт через посредника (байт, используя команду TITLE или другой скрипт, используя аргумент% comspec%).

0

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

+0

проблема, я открою сценарий более чем один раз, и каждый раз, когда есть C: \ Windows \ system32 \ cscript.exe ...чем у меня открыто 5 окон, и чем я не сейчас, какое окно подходит для того, что я могу закрыть ... надеюсь, вы меня понимаете ... sry для моего английского ^^ – Sebastian

+0

@matthias: Не знаю, Боюсь. –

+0

ОК спасибо. Может быть, кто-то может мне помочь :-) – Sebastian

4

@AlexK Ссылка, на которую вы указываете, показывает, как вы можете изменить название командного окна, поэтому я не уверен, почему это не работает как решение проблемы Маттиаса.

@Matthias - так как вы уже используете Cscript у вас есть несколько вариантов:

  1. Вы можете создать родительский сценарий, который открывает несколько окон с уникальными названиями, как так:

    var x = new ActiveXObject("WScript.shell"); 

    for (var i=0; i < 5; i++) { 
     x.run('cmd title your title ' + i + '| cscript.exe "params"'); 
    } 

или просто заставьте родительский скрипт выполнить один дочерний скрипт, но запросите заголовок, прежде чем он выполнит команду cscript следующим образом:


    var x = new ActiveXObject("WScript.shell"); 
     x.run('cmd title your title ' + 
      WScript.StdIn.ReadLine() + 
      '| cscript.exe "script path and params"'); 
  1. Вы также можете использовать кнопку «Пуск» команду из существующей командной строки, а просто изменить значение заголовка каждый раз, когда вы запускаете скрипт
c:\>start "your title" cscript script_path.vbs
  1. Или вы могли бы использовать windows api для изменения названия программным путем с помощью специального объекта activex. Это определенно немного более глубокое решение, но вы можете создать объект activex с помощью C#, который может совершать вызовы в windows api, и выполнять функцию C# из vbscript с помощью COM. Вы захотите использовать вызовы findWindow и SetWindowText api для изменения названия окна CMD.

Проверьте проект IEUnit, в частности объект activex Win32Dom. Это хороший проект, потому что он решает «как создать объект C# activex» и «как вызвать win32 api», которые могут возникнуть у вас для этой опции. И у вас уже есть часть findWindow, которая вам нужна.

http://code.google.com/p/ieunit/source/browse/#svn%2Ftrunk%2Ftool%2FWin32Dom

Смежные вопросы