2013-12-30 3 views
0

я наткнулся на одну или две должности на эту тему, например:Как сделать VBS окно сообщения «всегда сверху»

Create vbscript messagebox that stays on top and blocks other windows

, но это не похоже на работу с «если. . else '. Всякий раз, когда я пытаюсь добавить что-либо подобное во вторую строку моего скрипта, я получаю сообщения об ошибках компиляции WSH VBScript.

Это сценарий, и я пытаюсь сделать его видимым над всеми другими окнами, которые открываются на экране после его появления. Поблагодарите помощь. Спасибо,

Martin

intAnswer = _ 
Msgbox("   Do you want to run FS Earth?", _ 
    vbYesNo, " ") 

If intAnswer = vbYes Then 

Dim objShell 
Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run("""D:\FS9\FS_Earth\fs_earth_link.exe""") 
Set objShell = Nothing 

Else  

End If 

ответ

0

вы не можете контролировать наслоение, потому что эти другие окна отдельные процессы и MsgBox относится к процессу, который запустил в VBS.

+0

пример в ссылке, которую я дал, конечно, работает - окно сообщения остается выше любого другого окна Я открываю потом. Вы имеете в виду это, потому что я открываю другую программу из скрипта vbs, она работает по-другому? Почему? (Подлинный вопрос!). Благодарю. Мартин – user3146967

+0

для меня похоже, что вы обстреливаете приложение fs_earth_link.exe, это, скорее всего, еще один процесс, без отношения родитель/ребенок. Модальный Msgbox является модальным для процесса, к которому он принадлежит. –

3

Я потратил 5 минут на чтение вашего вопроса снова и снова. Я чувствую себя немного глупо - это наконец озарило меня, что вы просили!

В настоящее время вы не можете добавить что-либо в строку два, потому что ваши первые три строки кода на самом деле являются одной инструкцией, натянутой на несколько строк (с использованием символа подчеркивания _).

Если вы переписали код, как показано ниже, вы могли бы, конечно, добавить все, что вы, как между линией 1 и 2 :)

intAnswer = Msgbox("Do you want to run FS Earth?", vbYesNo + vbSystemModal, " ") 

If intAnswer = vbYes Then 
    Dim objShell 
    Set objShell = WScript.CreateObject("WScript.Shell") 
    objShell.Run("""D:\FS9\FS_Earth\fs_earth_link.exe""") 
    Set objShell = Nothing 
Else  

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