1 (изменено: gts, 2012-09-05 10:43:37)

Тема: VBS:Организация меню для вызова программ вместо папки с ярлыками

<!-- Подскажите, пожалуйста,
1. как подсветить пункт списка, на который наведена мышь;
2. как задействовать курсор, чтобы можно было работать с клавиатуры и пользоваться onkeypress;
3. есть ли возможность объявить глобальную переменную, чтобы не вычислять,
   пусть и вызовом подпрограммы, одно и то же при каждом выборе;
4. почему не срабатывает изменение размера шрифта в элементе STYLE,
   возможно, перебивается атрибутом content элемента META
5. почему не высвечивается текст, присваиваемый comm1 в функции onload
   (LastChange работает правильно, конструкция списана с одного из найденных в Интернет примеров,
   только в элементе PRE comm1 было без кавычек, но и так тоже не работает). Как написать аналогичный
   скрипт на VBScript;
6. как обычно в процессе работы страницы программно вставляют какой-то текст в нужное место, не заводя кнопок и полей ввода?
   Если пользоваться элементом Input с атрибутом readonly или disabled, с заданными name или id, то как установить программно его
   свойства;
7. может быть, меню обычно организуют иным способом?

   Фрагмент приведен ниже. Т.к. я только начинаю работать с HTML и VBScript, пожалуйста, давайте ответ, понятный непродвинутому
   человеку
   Заранее спасибо.
-->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<HEAD>
<TITLE></title> 
<HTA:application 
  id="ohta"
  applicationname="MYFIRST"
  sysmenu="yes"
  singleinstance="yes"
  showintaskbar="yes"
 >
<META http-equiv="Default-Style" content="compact">

<STYLE type="text/css">
BODY { font-family: Times, Garamond, serif;font-size: 14px}
</STYLE>

<SCRIPT>
function window.onload(){
comm1.InnerText = "модуль от " & LastChange('prg1.exe'); 
}
</SCRIPT>


</HEAD>
<!-- ***************** -->
<BODY>
<UL TYPE=DISC>
  <LH><B>Основные функции</B><BR>
  <LI ondblclick="Plaunch('prg1.exe')" onkeypress="Plaunch('prg1.exe')">Выбор1 (<PRE id="comm1"></PRE>)]
  <LI ondblclick="Plaunch('prg2.exe')" onkeypress="Plaunch('prg2.exe')">Выбор2
  ...
</UL>
<!-- ********************** -->
<SCRIPT type="text/vbscript">

sub Plaunch(var_name)
Подсвечивание выбранного пункта меню'


' Запуск программы-параметра
set app=CreateObject("Shell.Application")
app.ShellExecute var_name,,,,5
end sub
' ------------

function LastChange(var_name)
' Посл.изменение файла-параметра
LastChange = ""
set fso=CreateObject("Scripting.FileSystemObject")
pathv = fso.GetAbsolutePathName(".")
set app=CreateObject("Shell.Application")
set curdir = app.NameSpace(pathv)
  if not curdir is Nothing then
    set objfi = curdir.ParseName(var_name)
    LastChange = objfi.ModifyDate
  end if
end function
'-------------

...
</SCRIPT>
</BODY>

2 (изменено: smaharbA, 2012-09-05 11:59:19)

Re: VBS:Организация меню для вызова программ вместо папки с ярлыками

<BODY>
<UL TYPE=DISC>
  <LH><B>Основные функции</B><BR>
  <LI ondblclick="Plaunch('prg1.exe')" onkeypress="Plaunch('prg1.exe')">Выбор1 (<PRE id="comm1"></PRE>)]
  <LI ondblclick="Plaunch('prg2.exe')" onkeypress="Plaunch('prg2.exe')">Выбор2
  ...
</UL>
Я конечно далек от мысли... (с)

3

Re: VBS:Организация меню для вызова программ вместо папки с ярлыками

Спасибо

4

Re: VBS:Организация меню для вызова программ вместо папки с ярлыками

gts пишет:

6. как обычно в процессе работы страницы программно вставляют какой-то текст в нужное место, не заводя кнопок и полей ввода?
   Если пользоваться элементом Input с атрибутом readonly или disabled, с заданными name или id, то как установить программно его
   свойства;

Я в своих hta-приложениях в разметку окна закладываю в местах небольших вставок текста span-теги, а потом меняю содержимое, например:

кусочек из разметки страницы:

<hr>
Текущее значение = [<span id=spn_kuku style='color:blue'>kukukuuk</span>]
<hr>

Меняем значение на свое пару раз и возвращаем прежнее


Dim sKuku_old
sKuku_old = spn_kuku.innerHTML

spn_kuku.innerTEXT = "test1" ' меняем только текст
msgbox "test1"

spn_kuku.innerHTML = "test<b>2222</b>" ' меняем HTML-содержимое - текст со своей дополнительной разметкой
msgbox "test2"

spn_kuku.innerHTML = sKuku_old 'возвращаем прежнее

У input-ов значение -- это аттрибут "value". Пишите в скрипте: айди_инпута.value="new_value".

WBR. Roman

5

Re: VBS:Организация меню для вызова программ вместо папки с ярлыками

gts пишет:

3. есть ли возможность объявить глобальную переменную, чтобы не вычислять,
   пусть и вызовом подпрограммы, одно и то же при каждом выборе;

Объявляйте ее не внутри функций и процедур, а снаружи, например:


<SCRIPT Language="VBScript">

' ----- константы глобальные для всего приложения
Const ADS_SERVER_BIND = &h200

' ----- объекты глобальные для всего приложения ---------------------------------------
Dim fso, oShell
Set fso = CreateObject("Scripting.FileSystemObject")
Set oShell = CreateObject("WScript.Shell")

' глоб.переменные для последних данных пингования машины'
Dim gsPing_IP                   : gsPing_IP = ""


</SCRIPT>

Либо:


<SCRIPT LANGUAGE="JScript">

var gi_count; gi_count = 0;

//создаем массивы 
var ga_globalArray    = new Array();

</SCRIPT>
WBR. Roman

6

Re: VBS:Организация меню для вызова программ вместо папки с ярлыками

Большое спасибо

7 (изменено: smaharbA, 2012-09-05 21:06:51)

Re: VBS:Организация меню для вызова программ вместо папки с ярлыками

не понял, чо это код не тот в моем посте ?
где стили и т.п. ?

<HTML>
<HEAD>
<STYLE> 
a {cursor:default;
text-decoration: none}
a:hover { background-color: red; }
a:active { background-color: green; }
</STYLE>
</HEAD>
<BODY>
<UL TYPE=DISC>
  <LH><B>Основные функции</B><BR>
  <li><a href="javascript:alert(1)">Выбор1</a></li>
  <li><a href="javascript:alert(2)">Выбор2</a></li>
</UL>
</BODY>
</HTML>
Я конечно далек от мысли... (с)

8

Re: VBS:Организация меню для вызова программ вместо папки с ярлыками

Большое спасибо