精华内容
下载资源
问答
  • 请问下VBScript 可视化执行界面 这个界面类似于cmd 可进入输入和输出显示。 不要是用IE的那种。 请问下,有吗。有的帮忙回答下。万分感谢。 在线等,谢谢
  • in a user friendly interface that can zoom, print and copy paste easily 我想要一种在用户友好的界面中集中所有这些脚本的方法,该界面可以轻松缩放,打印和复制粘贴 As a network administrator, I do not ...

    @wsh888666wsh

    PROBLEM:

    问题:

    When developping tools to manage simple tasks in an enterprise or a network, I often use vbscripts

    当开发工具来管理企业或网络中的简单任务时,我经常使用vbscripts

    I wanted a way to centralize all thoses scripts, in a user friendly interface that can zoom, print and copy paste easily

    我想要一种在用户友好的界面中集中所有这些脚本的方法,该界面可以轻松缩放,打印和复制粘贴

    As a network administrator, I do not have the time to program theses tools in visual basic

    作为网络管理员,我没有时间在Visual Basic中对这些工具进行编程

    DESCRIPTION:

    描述:

    That is a VBS script that use internet explorer as user interface, divided in 3 frames

    这是一个使用Internet Explorer作为用户界面的VBS脚本,分为3帧

    control (LEF)

    控制(LEF)

    input (MID ok i could have called this one top)

    输入(MID,好的,我本可以叫这顶)

    output (BOT)

    输出(BOT)

    FUNCTIONALITIES:

    功能:

    right now it's just an interface where you can:

    现在,它只是一个界面,您可以在其中:

    change the control buttons

    更改控制按钮

    and insert your own scripts for each button to ask for certain inputs and execute a command

    并为每个按钮插入自己的脚本,以请求某些输入并执行命令

    POSSIBLE USES:

    可能的用途:

    creation of a user in LDAP

    在LDAP中创建用户

    creation of folders for a new contrat that have just oppened

    为刚刚使用的新组件创建文件夹

    setting permissions for folders

    设置文件夹权限

    manage a small access or sql database like a phone list

    管理小型访问或sql数据库(例如电话列表)

    creation of public folders in outlook ora sharepoint folder in outlook

    在Outlook中创建公用文件夹或Outlook中的sharepoint文件夹

    They are currently in some of my scripts that are not merged yet with this interface

    它们当前在我的一些脚本中,尚未与此接口合并

    GUIDE TO ADD A SCRIPT IN THIS INTERFACE:

    在此界面中添加脚本的指南:

    1.为您的脚本添加一个按钮 (1. add a button for your script)

    第一部分是添加一个按钮来调用您的脚本,可以在这里完成:(大约86行)
    x=x+1
    ReDim Preserve arabutnam(x): ReDim Preserve arabutdes(x): ReDim Preserve aradepnam(x): ReDim Preserve aradepcol(x)
    arabutnam(x)="test2"
    arabutdes(x)="test2 my own script"
    aradepnam(x)="test"
    aradepcol(x)="cccccc"
    

    arabutnam - array of button names arabutnam-按钮名称数组

    arabutdes - description of the button arabutdes-按钮说明

    aradepnam - department or category name aradepnam-部门或类别名称

    aradepcol - color of the category aradepcol-类别的颜色

    when the button is added, the script will automatically generate it in internet explorer when run

    添加按钮后,脚本将在运行时在Internet Explorer中自动生成

    2.添加脚本 (2. add script)

    第二部分是添加您想要按钮运行的子目录/脚本,让我们说按钮“您好,世界!

    we will scroll to the section starting in line 176 approx here is the line to look for:

    我们将滚动到第176行开始的部分,大约是要查找的行:

    do                      
    
       '=== if the button named this is pressed we do this
       '=== resbutlefstr: result from pressing a button in the left frame (control frame, flef object)
       '=== its a string that contain the programmable name of the button that was pressed in the left frame (arabutnam)
       
    

    so, after the DO we add the sub we want to execute by pressing the button:

    因此,在DO之后,我们通过按按钮添加要执行的子项:

    when you press the test2 button, the resbutlefstr will contain the text "test2"

    当您按下test2按钮时,resbutlefstr将包含文本“ test2”

    before the code is executed, we must clear resbutlefstr and the frames or the main loop will act like if the button was still pressed

    在执行代码之前,我们必须清除resbutlefstr,并且框架或主循环的行为类似于是否仍然按下按钮

    do '=== already in the code do not put two "do" there!
    
       if resbutlefstr="test2" then
    
          '=== clear 2 frames (input: fmid, and result: fbot)
          '=== also clear the result button name for all frames and the key pressed on all frames
          a = clefra(array("fmid","fbot"))
          
          fbot.WriteLn("Hello world<br><br>") '=== write hello world in frame
    
       end if
    

    after hello world is displayed, nothing will happen until you press another button in the control frame (left)

    在显示hello world之后,直到您按控制框架中的另一个按钮(左),一切都不会发生

    3.输入表单如何工作 (3. How does the input form work)

    第三部分是解释输入表单生成器的工作方式

    as you can see in the other subs executed by the buttons, there is also a form ready to input something to process something more complicated than "hello world"

    如您在按钮执行的其他子程序中看到的那样,还有一种表单可以随时输入内容,以处理比“ hello world”更复杂的内容

    The sub to call to generate this from is called:

    要从中生成此信息的子调用称为:

    dynforgen dynamic form generator

    dynforgen动态表单生成器

    It's input are:

    它的输入是:

    distmp - description displayed in front of the field distmp-描述显示在字段前面

    namtmp - name of variable for programming purpose namtmp-用于编程目的的变量名称

    deftmp - default value inside the form (the form will be 20 char long if no value here, but you can enter more) deftmp-表单内的默认值(如果此处没有值,则表单的长度为20个字符,但您可以输入更多值)

    typtmp - type of data: textbox password (futur: more to come)

    typtmp-数据类型:文本框密码(以后: 还会有更多)

    errtmp - text to display after the formm if error string is in it the interface will generate red text errtmp-如果错误字符串在其中,则在格式后显示的文本,界面将生成红色文本
          x=0
          redim preserve distmp(x) :redim preserve namtmp(x) :redim preserve deftmp(x) :redim preserve typtmp(x) :redim preserve errtmp(x)
          distmp(x)="Database name"      '===== description displayed in front of the field
          namtmp(x)="dbnam"                 '===== name of variable for programming purpose and to be able to retrive it in VBS
          deftmp(x)="testmdbaccess2000"     '===== default value inside the form (the form will be 20 char long if no value here, but you can enter more)
          typtmp(x)="textbox"               '===== type of data: textbox password (futur: more to come)
          errtmp(x)=".MDB enter name of DB file" '===== text to display after the form "facultatif" blue text "error" red text are special keywords
    

    Each element of this matrix will be an input field, that have a name and it's value can be accessed in the vbs script after the user

    该矩阵的每个元素将是一个输入字段,其名称和名称可以在用户输入后通过vbs脚本进行访问。

    entered something and pressed "ok" (string value "ok" in resbutmidstr or "enter" (code 13) in reskeymid

    输入一些内容并在resbutmidstr中按“ ok”(字符串值“ ok”)或在reskeymid中按“ enter”(代码13)

    Some sub are premade to "scan" button values and keyboard values in the internet exploer object and put them in the results variables reskeymid and resbutmidstr

    预先制作了一些子控件,以“扫描” Internet Explorer对象中的按钮值和键盘值并将它们放入结果变量reskeymid和resbutmidstr

    a sub have been programmed for each frame and each event (button and key)

    为每个帧和每个事件(按钮和键)编程了一个子程序

    '=== sub to call when something is pressed
    '=== called for many buttons, return the button name or a keyboard code (Ascii)
    sub buttonlef
       set src = flef.parentWindow.event.srcElement
       resbutlefstr = src.name
    end sub
    

    reskeymid - containt the key code (Ascii) pressed by the user in middle frame (fmid object) reskeymid-包含用户在中间框架(fmid对象)中按下的键控代码(Ascii)

    resbutmidstr - is a string that will contain the name of the button that was pressed by the user resbutmidstr-是一个字符串,它将包含用户按下的按钮的名称

    4.如何插入表格并使用其输入值 (4. How to insert a form and use it's input value)

    第四部分是插入代码以输入内容然后显示它

    Finally, here is the code we have to insert to make a better "Hello World" with an input from the user:

    最后,这是我们必须插入的代码,以通过用户输入来创建更好的“ Hello World”:

       if resbutlefstr="test" then
          
          '=== this was a test with multiple button value (one for each line)
          a = clefra(array("fmid","fbot"))
       
          x=0
          redim preserve distmp(x) :redim preserve namtmp(x) :redim preserve deftmp(x) :redim preserve typtmp(x) :redim preserve errtmp(x)
          distmp(x)="what do you want to display"      '===== description displayed in front of the field
          namtmp(x)="text01"                  '===== name of variable for programming purpose
          deftmp(x)="hello world"           '===== default value inside the form (the form will be 20 char long if no value here, but you can enter more)
          typtmp(x)="textbox"               '===== type of data: textbox password (futur: more to come)
          errtmp(x)="enter a text to display" '===== text to display after the form "facultatif" blue text "error" red text are special keywords
    
          buttmp=array("ok","cancel")       '===== at the end, there will be an "ok" button and a "cancel" button
          
          a = dynforgen (distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
          
          do
             '=== flag to tell if the input is not valid
             err01=0
             '=== flag to say input is done, since there might be a defaut value, we must validate if user was finished
             inpdon=0
             '=== "ok" button or "enter" key are the same
             '=== and nothing was pressed on left frame (control frame)
             
             if resbutlefstr="" and (resbutmidstr="ok" or reskeymid=13) then 
                '=== User has clicked the OK button, retrieve the values
                text=fmid.form01.text01.Value '=== namtmp is the variable name used earlier,before we call the dynamic form generation for input
    
                if len(text) < 1 then
                   err01=1
                   '=== error message for the first form (if the keyword "error" is in this string, its displayed in RED)
                   if len(text) < 1 then
                      errtmp(0)="error - must be 1 char long at least"
                   end if
    
                   '=== if the value was not good, we generate the dynamic input for again, with an error message after the form in red
                   a = dynforgen(distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
                   '=== there was an invalid input so we reset the key or button pressed to nothing so the loop can continue
                   reskeymid=0
                   resbutmidstr=""
                else
                   '=== the input was validated, we flag err01 to none, and flag inpdon to exit the loop
                   inpdon=1
                   err01=0
                end if
             end if
             wscript.sleep 100
          
             '=== while we wait for input value, user can press "escape" key, "cancel" button or close internet explorer
             if resbutmidstr="cancel" or reskeymid=27 or bready=true or resbutlefstr<>"" then
                '=== if user pressed escape or cancel, we clear the frames
                if resbutmidstr="cancel" or reskeymid=27 then
                   a = clefra(array("fmid","fbot"))
                end if
                exit do
             end if
          '=== if there was an input error and no one used left control frame to exit, we keep asking for input
          loop while err01<>0 or inpdon=0
          '=== if internet explorer was not closed (bready), a button was not pressed on left frame, and no excape or cancel in middle frame
          if bready=false and resbutlefstr="" and reskeymid<>27 and resbutmidstr<>"cancel" then
             fbot.WriteLn(text & "<br>")
          end if
          
          reskeymid=0
          resbutmidstr=""
          
       end if
    

    I know this is a bit complicated for a beginner, but a simple copy paste to make another operation is not really hard once you have a base in VB

    我知道对于初学者来说这有点复杂,但是一旦在VB中有了基础,简单的复制粘贴就可以进行其他操作并不难。

    Here are the main lines to change:

    以下是要更改的主要内容:

    Here is the name of the button that will make the action happen:

    这是将使操作发生的按钮的名称:

    if resbutlefstr="test" then
    

    Name of the variable that will containt the text result from the interface:

    将包含来自接口的文本结果的变量的名称:

    namtmp(x)="text01"                  '===== name of variable for programming purpose
    

    Code where we will get this result to validate it: (text01)

    我们将获得此结果以对其进行验证的代码:(text01)

    text=fmid.form01.text01.Value '=== namtmp is the variable name used earlier,before we call the dynamic form generation for input
    

    Length validation and error message (errtmp(0), matrix element 0 for error message is for the first box, 1 for second etc)

    长度验证和错误消息(errtmp(0),错误消息的矩阵元素0用于第一个框,1代表第二个框等)

                if len(text) < 1 then
                   err01=1
                   '=== error message for the first form (if the keyword "error" is in this string, its displayed in RED)
                   if len(text) < 1 then
                      errtmp(0)="error - must be 1 char long at least"
                   end if
    

    And finally the action to do after all input are done and validated: (and there is nothing that hapenned before, like a cancel or closing internet explorer)

    最后,完成并验证所有输入后要执行的操作:(并且之前没有发生任何中断,例如取消或关闭Internet Explorer)

          '=== if internet explorer was not closed (bready), a button was not pressed on left frame, and no excape or cancel in middle frame
          if bready=false and resbutlefstr="" and reskeymid<>27 and resbutmidstr<>"cancel" then
             fbot.WriteLn(text & "<br>")
          end if
    

    CHANGE LOG:

    变更记录:

    2010-04-12 added some delay in internet explorer operation (frame clear) it was making ie crash

    2010-04-12在Internet Explorer的运行(框架清除)中添加了一些延迟,这使其崩溃

    2010-04-10 correction in the input loop, left frame now have a better control

    2010-04-10在输入循环中进行校正,现在左框有更好的控制

    2010-04-09 added dabatase creation with a masterkey based on an integer column autoincrement

    2010-04-09使用基于整数列自动增量的万能键添加了dabatase创建

    dynamic web interface
    '=== Ultimate dynamic web interface 2.0
    '=== Ultimate dynamic web interface 2.0
    
    '=== this script:
    '=== generate dynamically a web interface to manage virtually anything
    '=== control (left frame), input (middle frame), and output (bottom frame) from vbs/wsh (windows host scripts)
    
    '=== the first version was a simple interface made by a programmer
    '=== the second version have more explanations
    '=== more dynamism than ever
    '=== more functions to clean up main loop code
    '=== easier array display coding to add stuff more easily
    '=== MDB (access type database) management (creation, edition, search/edit)
    '=== futur: mdb import, mdb export, sql sync, excel export
    
    '=== by: SergeFournier(at)hotmail.com
    
    '=== tested on windows vista 64, internet explorer 7
    
    Set objFSO    = CreateObject("Scripting.FileSystemObject")
    Set objshe    = CreateObject("WScript.Shell")
    Set objNet    = CreateObject("WScript.Network") 
    
    Const hkcr = &H80000000 'HKEY_CLASSES_ROOT
    Const HKCU = &H80000001 'HKEY_CURRENT_USER
    Const hklm = &H80000002 'HKEY_LOCAL_MACHINE
    Const hku  = &H80000003 'HKEY_USERS
    Const hkcc = &H80000005 'HKEY_CURRENT_CONFIG
    
    '=== actual drive, actual directory, and "\"
    thepath=WScript.ScriptFullName
    p = instrRev(thepath,"\")
    basedir  = left(thepath,p)
    filnam = right(thepath,len(thepath)-p)
    
    '=== windows dir
    WinDir = objfso.GetSpecialFolder(0)
    
    '=== restart the script in 32 bits if we are on a 64 bits system
    '=== (databases drivers issues)
    a64 = windir & "\syswow64\wscript.exe"
    
    if objFSO.fileEXISTS(a64) and instr(lcase(wscript.fullname),"syswow64")=0 then
       '=== 64 bits system
       a = """" & a64 & """ """ & basedir & filnam & """"
       objshe.Run a,0, false
       wscript.quit
    end if
    
    '============================================== main loop =============================================
    
    '=== name of the user logged in window (network or not)
    usenam=lcase(objnet.username)
    
    '=== menu items on left side (control side, frame: flef)
    
    '= arabutnam: name of button, purely programmation name, used later to execute functions in main loop
    '= arabutdes: description of button, text inside it actually
    '= aradepnam: departement name, each departement (Section) is separated by a space
    '= aradepcol: color of departement, blue = computer, brown = accounting, etc will follow a standard on internet (vague)
       
    '=== button at the start for control frame (flef object)
    '=== you can add as many buttons as you want, it's all dynamic (extendable)
    
    x=0
    ReDim Preserve arabutnam(x): ReDim Preserve arabutdes(x): ReDim Preserve aradepnam(x): ReDim Preserve aradepcol(x)
    arabutnam(x)="newdb"
    arabutdes(x)="Create new database"
    aradepnam(x)="Change"
    aradepcol(x)="cccccc"
       
    x=x+1
    ReDim Preserve arabutnam(x): ReDim Preserve arabutdes(x): ReDim Preserve aradepnam(x): ReDim Preserve aradepcol(x)
    arabutnam(x)="edtdb"
    arabutdes(x)="Edit database"
    aradepnam(x)="Change"
    aradepcol(x)="cccccc"
       
    x=x+1
    ReDim Preserve arabutnam(x): ReDim Preserve arabutdes(x): ReDim Preserve aradepnam(x): ReDim Preserve aradepcol(x)
    arabutnam(x)="srcdb"
    arabutdes(x)="Search database"
    aradepnam(x)="View"
    aradepcol(x)="cccccc"
       
    x=x+1
    ReDim Preserve arabutnam(x): ReDim Preserve arabutdes(x): ReDim Preserve aradepnam(x): ReDim Preserve aradepcol(x)
    arabutnam(x)="test"
    arabutdes(x)="test multiple buttons"
    aradepnam(x)="test"
    aradepcol(x)="cccccc"
          
    x=x+1
    ReDim Preserve arabutnam(x): ReDim Preserve arabutdes(x): ReDim Preserve aradepnam(x): ReDim Preserve aradepcol(x)
    arabutnam(x)="quit01"
    arabutdes(x)="Quitter"
    aradepnam(x)="All"
    aradepcol(x)="cccccc"
    
    '=== old code for ref   
    'arabut=array("stristas", "striunig", "desarchive", "infocomp", "cretasks", "renamecomputer", "test", "clrframes", "quit01")
    'arabutdes=array("Crée Structure i: Stas", "Crée Structure i: Unigec", "Désarchivage", "Info computer", "Create tasks", "Rename computer", "test divers",  "Clear Frames",    "Quitter")
    'aradep=array("All", "All", "Informatique", "Informatique", "Informatique", "Informatique", "Other", "All")
    'aradepcol=array("cccccc", "cccccc", "6699ff", "6699ff", "6699ff", "6699ff", "6699ff", "cccccc")
    
    '=== i dont remember this one
    lasdep=""
       
    '=== web interface, internet explorer
    
    '=== set the objects before calling functions, so they are global objects/variables, accessibles in all the program
    set oIE = wscript.CreateObject("InternetExplorer.Application", "IE_")
    dim flef, fmid, fbot
    
    '=== title of internet explorer window
    doctit = "titre de la page"
    
    '=== title to display inside the left frame (control frame, flef object)
    maitit = "SKYNET interface<br><br>STAS "'=== title inside the left frame
    
    '=== create the main web interface with 3 frames, objects: flef, fmid, fbot
    a = crewebmai(oie, doctit, maitit, arabutnam, arabutdes, aradepnam, aradepcol)
    
    '=== defaut menu option for certain name logged
    '=== example: a certain user will use always the same function
    '=== so the interface will start, by executing this function at first, not an empty frame
    '=== simply enter the name of the button that should be pressed for this user when interface start
    
    if usenam="wildboy" or usenam="fournier.serge" then
       '=== defaut choice when program start
       'resbutlefstr = "stristas"
    end if
    
    '=== sub to call for each button
    '=== here we define a sub to be called when a button in the web page is pressed
    Do While (oIE.Busy)
       wscript.sleep 100
    loop
    do while oie.readystate<>4
       wscript.sleep 100
    loop
    
    '=== set up a return value on click of each button on the left frame
    '=== the returned value is the name (programmable name) of each button (arabutnam)
    '=== later any action will be taken according to this value
    '=== i use this method because i dont want to call a sub when a button is pressed
    '=== to remain in a loop for the main program, that is standard procedure in programming (to have a main loop)
    
    for i=0 to ubound(arabutnam)
       flef.forms(0).elements(arabutnam(i)).onclick = getref("buttonlef")
    next
    
    '=== we also chek the key presse in each frame
    '=== we do this cause we want "enter" key to be used instead of pressing "ok" button with the mouse
    set flef.onkeypress = GetRef("Checklef") 
    set fmid.onkeypress = GetRef("Checkmid") 
    set fbot.onkeypress = GetRef("Checkbot") 
    
    '=== if bready = true, it mean they closed internet explorer, see the sub on internet explorer closing later in this code
    '=== we have to chek this value often to stop the wscript.exe from interpreting this code, when internet explorer is closed
    bReady=false
          resbutlefstr = ""
          resbutmidstr = ""
          resbutbotstr = ""
          reskeylef = 0
          reskeymid = 0
          reskeybot = 0
    
    WScript.sleep(100) ' .1 seconds 
    
    '=== main loop, infinite
    '=== unless someone press QUIT button
    '=== or close internet explorer (bready = true)
    
    do                      
    
       '=== if the button named this is pressed we do this
       '=== resbutlefstr: result from pressing a button in the left frame (control frame, flef object)
       '=== its a string that contain the programmable name of the button that was pressed in the left frame (arabutnam)
       
       if resbutlefstr="test" then
          
          '=== this was a test with multiple button value (one for each line)
          a = clefra(array("fmid","fbot"))
       
          x=0
          redim preserve distmp(x) :redim preserve namtmp(x) :redim preserve deftmp(x) :redim preserve typtmp(x) :redim preserve errtmp(x)
          distmp(x)="what do you want to display"      '===== description displayed in front of the field
          namtmp(x)="text01"                  '===== name of variable for programming purpose
          deftmp(x)="hello world"           '===== default value inside the form (the form will be 20 char long if no value here, but you can enter more)
          typtmp(x)="textbox"               '===== type of data: textbox password (futur: more to come)
          errtmp(x)="enter a text to display" '===== text to display after the form "facultatif" blue text "error" red text are special keywords
    
          buttmp=array("ok","cancel")       '===== at the end, there will be an "ok" button and a "cancel" button
          
          a = dynforgen (distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
          
          do
             '=== flag to tell if the input is not valid
             err01=0
             '=== flag to say input is done, since there might be a defaut value, we must validate if user was finished
             inpdon=0
             '=== "ok" button or "enter" key are the same
             '=== and nothing was pressed on left frame (control frame)
             
             if resbutlefstr="" and (resbutmidstr="ok" or reskeymid=13) then 
                '=== User has clicked the OK button, retrieve the values
                text=fmid.form01.text01.Value '=== namtmp is the variable name used earlier,before we call the dynamic form generation for input
    
                if len(text) < 1 then
                   err01=1
                   '=== error message for the first form (if the keyword "error" is in this string, its displayed in RED)
                   if len(text) < 1 then
                      errtmp(0)="error - must be 1 char long at least"
                   else 
                      errtmp(0)="ok"
                   end if
    
                   '=== if the value was not good, we generate the dynamic input for again, with an error message after the form in red
                   a = dynforgen(distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
                   '=== there was an invalid input so we reset the key or button pressed to nothing so the loop can continue
                   reskeymid=0
                   resbutmidstr=""
                else
                   '=== the input was validated, we flag err01 to none, and flag inpdon to exit the loop
                   inpdon=1
                   err01=0
                end if
             end if
             wscript.sleep 100
          
             '=== while we wait for input value, user can press "escape" key, "cancel" button or close internet explorer
             if resbutmidstr="cancel" or reskeymid=27 or bready=true or resbutlefstr<>"" then
                '=== if user pressed escape or cancel, we clear the frames
                if resbutmidstr="cancel" or reskeymid=27 then
                   a = clefra(array("fmid","fbot"))
                   resbutmidstr="cancel"
                end if
                exit do
             end if
          '=== if there was an input error and no one used left control frame to exit, we keep asking for input
          loop while err01<>0 or inpdon=0
          
          '=== if internet explorer was not closed (bready), a button was not pressed on left frame, and no excape or cancel in middle frame
          if bready=false and resbutlefstr="" and reskeymid<>27 and resbutmidstr<>"cancel" then
             fbot.WriteLn(text & "<br>")
          end if
          
          reskeymid=0
          resbutmidstr=""
          
       end if
       
       if resbutlefstr="newdb" then
          '=== create a new database mdb type (Access 2000)
          tit="new database" '=== title to display in fmid frame (input frame)
          
          '=== clear 2 frames (input: fmid, and result: fbot)
          '=== also clear the result button name for all frames and the key pressed on all frames
          a = clefra(array("fmid","fbot"))
          
          '=== dynamic generation of input form, and control buttons in fmid (middle or up frame, called "input" frame for more clarity, fmid object)
          
          '=== inputs to do before processing
          '=== you can add more input forms, at the end, there will be an "ok" button and a "cancel" button
    
          x=0
          redim preserve distmp(x) :redim preserve namtmp(x) :redim preserve deftmp(x) :redim preserve typtmp(x) :redim preserve errtmp(x)
          distmp(x)="Database name"      '===== description displayed in front of the field
          namtmp(x)="dbnam"                 '===== name of variable for programming purpose
          deftmp(x)="testmdbaccess2000"     '===== default value inside the form (the form will be 20 char long if no value here, but you can enter more)
          typtmp(x)="textbox"               '===== type of data: textbox password (futur: more to come)
          errtmp(x)=".MDB enter name of DB file" '===== text to display after the form "facultatif" blue text "error" red text are special keywords
    
          x=x+1
          redim preserve distmp(x) :redim preserve namtmp(x) :redim preserve deftmp(x) :redim preserve typtmp(x) :redim preserve errtmp(x)
          distmp(x)="Table name"      '===== description displayed in front of the field
          namtmp(x)="tabnam"                 '===== name of variable for programming purpose
          deftmp(x)="table01"     '===== default value inside the form (the form will be 20 char long if no value here, but you can enter more)
          typtmp(x)="textbox"               '===== type of data: textbox password (futur: more to come)
          errtmp(x)="enter name of first table" '===== text to display after the form "facultatif" blue text "error" red text are special keywords
          
          buttmp=array("ok","cancel")       '===== at the end, there will be an "ok" button and a "cancel" button
          
          a = dynforgen (distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
          
          do
             '=== flag to say input is done, since there might be a defaut value, we must validate if user was finished
             inpdon=0
             err01=0
             
             '=== "ok" button or "enter" key are the same
             '=== and nothing was pressed on left frame (control frame)
             
             if resbutlefstr="" and (resbutmidstr="ok" or reskeymid=13) then 
          
                '=== User has clicked the OK button, retrieve the values
                dbnam = fmid.form01.dbnam.Value '=== namtmp is the variable name used earlier,before we call the dynamic form generation for input
                dbnam=lcase(dbnam)
                
                tabnam = fmid.form01.tabnam.Value '=== namtmp is the variable name used earlier,before we call the dynamic form generation for input
                tabnam=lcase(tabnam)
    
                if len(dbnam) < 1 or len(tabnam)<1 then
                   err01=1
                   '=== error message for the first form (if the keyword "error" is in this string, its displayed in RED)
                   if len(dbnam) < 1 then
                      errtmp(0)="error - name must be 1 char long at least"
                   else 
                      errtmp(0)="ok"
                   end if
                   if len(tabnam) < 1 then
                      errtmp(1)="error - name must be 1 char long at least"
                   else 
                      errtmp(1)="ok"
                   end if
    
                   '=== if the value was not good, we generate the dynamic input for again, with an error message after the form in red
                   a = dynforgen(distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
                   reskeymid=0
                   resbutmidstr=""
                else
                   '=== the input was validated, we flag err01 to none, and flag inpdon to exit the loop
                   inpdon=1
                   err01=0
                end if
                
             end if
             wscript.sleep 100
          
             '=== while we wait for input value, user can press "escape" key, "cancel" button or close internet explorer
             if resbutmidstr="cancel" or reskeymid=27 or bready=true or resbutlefstr<>"" then
                '=== if user pressed escape or cancel, we clear the frames
                if resbutmidstr="cancel" or reskeymid=27 then
                   a = clefra(array("fmid","fbot"))
                   resbutmidstr="cancel"
                end if
                exit do
             end if
             
          '=== if there was an input error and no one used left control frame to exit, we keep asking for input
          loop while err01<>0 or inpdon=0
       '===  
          if bready=false and resbutlefstr="" and reskeymid<>27 and resbutmidstr<>"cancel" then
             '=== all value were validated, we continue
             dbnam = dbnam & ".mdb"
          
             '=== chek if the file already exist
             Set objFolder2 = objFSO.GetFolder(basedir)'=== dir
             Set objFiles2 = objFolder2.files '=== fichiers
    
             found=0
             For Each objFile3 in objFiles2
                nomfile=objfile3.name
                nomfile=lcase(nomfile)
                if nomfile=dbnam then
                   found=1
                end if
             next  
             if found=1 then
                a = clefra(array("fmid"))
                fbot.WriteLn("The file: <br>" & dbnam & "<br>Already exist<br><br>Please use EDIT DATABASE to manage it<br><br>")
                fbot.WriteLn("FIN<br><br>")
             
                fbot.WriteLn("LIST of table in the existing database:<br><br>")
                Set objcat = CreateObject("ADOX.Catalog")
                Set objcon = CreateObject("ADODB.Connection") 
                constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbnam
                objcon.open constr
                objcat.activeconnection=(objcon)
                for each tab in objcat.Tables
                   If tab.Type = "TABLE" Then
                      fbot.WriteLn("<br>TABLES:<br><br>")
                      fbot.WriteLn(tab.name & "<br>")
                      fbot.WriteLn("<br>COLUMNS:<br><br>")
                      for each col in tab.columns
                         c = lcase(col.name)
                         fbot.WriteLn(c & "<br>Type: " & col.type & "&nbsp&nbsp&nbspAutoincrement: " & col.Properties("AutoIncrement") & "<br>")
                      next
                   end if
                next
                objcon.close
                set objcat=nothing
                set objcon=nothing
             else
                a = clefra(array("fmid"))
                '=== formats: jet10 = 1 Jet11 = 2 Jet20 = 3 Jet3x = 4 Jet4x = 5 (Access 2000)
                Dim Catalog
                fbot.WriteLn("Creation ADOX catalog (adox.dll, access required)<br><br>")
             
                Set objcat = CreateObject("ADOX.Catalog")
                format = 5
                fbot.WriteLn("database creation: " & dbnam & "<br><br>")
             
                constr="Provider=Microsoft.Jet.OLEDB.4.0;" & "Jet OLEDB:Engine Type=" & Format & ";Data Source=" & dbnam
                objcat.Create constr
    
                '=== add a table in the database
                fbot.WriteLn("table creation: " & tabnam &"<br>")
                Set objtab = CreateObject("ADOX.table")
                objtab.name = tabnam
                objcat.Tables.Append objtab
                objcat.Tables.refresh
             
                '=== add a columns in the only existing table
                for each tab in objcat.Tables
                   If tab.Type = "TABLE" Then
                
                      fbot.WriteLn("table existing: " & tab.name & "<br>")
                      '=== add column in database
                      Set objcol = Nothing
                      Set objcol = CreateObject("ADOX.Column")
                
                      'typdat=202   '=== string adVarWChar
                      'maxlen=250
                      'typdat=131   '=== float adnumeric
                      'maxlen=10
                      typdat=3     '=== integer adinteger
                      maxlen=10
                 
                      if typdat=3 then a="adinteger"
                      if typdat=202 then a="adVarWChar"
                      if typdat=131 then a="adnumeric"
                   
                      colnam="codint"
                      objcol.name = colnam
                      objcol.type = typdat
                      if typdat = 3 or typdat = 202 then 
                         objcol.DefinedSize = maxlen
                         if typdat=3 then
                            '=== must set parent catalog before setting autoincrement
                            Set objcol.ParentCatalog = objcat
                            objcol.Properties("AutoIncrement")=true
                         end if
                      elseif typdat = 131 then
                         objcol.precision = 28
                         objcol.numericscale = 8
                      end if
                      fbot.WriteLn("column creation: " & colnam & "<br>")
                      Tab.Columns.Append objcol
    
                      fbot.WriteLn("primary key creation: " & colnam & "<br>")
                      Set objkey = CreateObject("ADOX.key")
                      objkey.name="Primary"
                      objkey.columns.append colnam
                      tab.keys.append objkey
                   
                      'Set aIndex = New ADOX.Index
                      'aIndex.Name = "ByField2"
                      'aIndex.Clustered = False
                      'aIndex.Columns.Append "Field2"
                      'aIndex.Columns.Append "Field1"
                      'aTable.Indexes.Append aIndex ' save the index
    
                      for each col in tab.columns
                         c = lcase(col.name)
                         fbot.WriteLn("column existing: " & c & "&nbsp&nbsp&nbspautoincrement status: " & objcol.Properties("AutoIncrement") & "<br>")
                      next
                   
                   end if
                next
             
                set objcat=nothing
             
                fbot.WriteLn("<br>You database have been created with 1 table and a defaut column named " & colnam & "<br>")   
                fbot.WriteLn("<br>END<br>")
             end if
          else
          'msgbox(resbutlefstr & "   " & resbutmidstr & "   " & resmidkey & "   " & bready)
       '===
          end if
          reskeymid=0
          resbutmidstr=""
          dbnam=""
       end if
       '===========================
       if resbutlefstr="edtdb" then
          resbutlefstr = ""
    
          a = clefra(array("fmid","fbot"))
          
          '=== value
          '=== chek if the file already exist
          Set objFol01=objFSO.GetFolder(basedir)'=== dir
          Set objfol02=objFol01.files '=== files
          
          x=0
          redim ara01(0)
          dimnum=1
          For Each objFil in objFol02
             filnam=objfil.name
             filnam=lcase(filnam)
             if right(filnam,4)=".mdb" then
                redim preserve ara01(x)
                ara01(x)=filnam
                x=x+1
             end if
          next
          
          '=== title of the columns
          aratit = array("Name of the database")
    
          '=== array to put in table, choice button, header, middle line, bottom line, reload
          a = dynbotcho(fmid, "choose the database to edit", aratit, ara01, 1 ,1, 1, 1, 1)
         
          do
             wscript.sleep 100
          
             '=== while we wait for input value (or button press), user can press "escape" key, "cancel" button or close internet explorer
             if resbutmidstr="cancel" or reskeymid=27 or bready=true or resbutlefstr<>"" then
                '=== if user pressed escape or cancel, we clear the frames
                if resbutmidstr="cancel" or reskeymid=27 then
                   a = clefra(array("fmid","fbot"))
                   resbutmidstr="cancel"
                end if
                exit do
             end if    
          
          loop while resbutmidstr=""
          
          if bready=false and resbutlefstr="" and reskeymid<>27 and resbutmidstr<>"cancel" then
             
             '=== convert the choice made with the button to a number (remove "but" from left side)
             a=right(resbutmidstr,len(resbutmidstr)-3)
             resbutmidstr=""
             '=== get the array that contain the choice in dbnam (database name)
             dbnam=ara01(a-1)
             
             '=== open the database
             Set objcat = CreateObject("ADOX.Catalog")
             Set objcon = nothing
             Set objcon = CreateObject("ADODB.Connection") 
             
             constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbnam
             objcon.open constr
             objcat.activeconnection=(objcon)
             
             '=== pressing left control button while in a function will call a sub make internet explorer crash
             '=== so i have to put the table choice in main loop, cant do a sub
    
             '=== choose the table to edit
    
             a = clefra(array("fmid","fbot"))
             
             aratit=array("Table name")
             x=0
             redim ara01(0)
             for each tab in objcat.Tables
                If tab.Type = "TABLE" Then
                   c = lcase(tab.name)
                   redim preserve ara01(x)
                   ara01(x)=c
                   x=x+1
                end if
             next
                
             a = dynbotcho(fmid, "Choose the table to edit", aratit, ara01, 1 ,1, 1, 1, 1)
         
             do
                wscript.sleep 100
          
                '=== while we wait for input value (or button press), user can press "escape" key, "cancel" button or close internet explorer
                if resbutmidstr="cancel" or reskeymid=27 or bready=true or resbutlefstr<>"" then
                   '=== if user pressed escape or cancel, we clear the frames
                   if resbutmidstr="cancel" or reskeymid=27 then
                      a = clefra(array("fmid","fbot"))
                      resbutmidstr="cancel"
                   end if
                   exit do
                end if    
             
             loop while resbutmidstr=""
    
             if bready=false and resbutlefstr="" and reskeymid<>27 and resbutmidstr<>"cancel" then
             
                '=== convert the choice made with the button to a number (remove "but" from left side)
                a=right(resbutmidstr,len(resbutmidstr)-3)
                resbutmidstr=""
                '=== get the array that contain the choice in dbnam (database name)
                tabnam=ara01(a-1)
                
                fbot.WriteLn(tabnam)
             
                for each tab in objcat.Tables
                   If tab.Type = "TABLE" Then
                      if tabnam = lcase(tab.name) then set objtab=tab
                   end if
                next
             
                '=== list columns in table
                for each col in objtab.columns
                   fbot.WriteLn(c & "<br>Type: " & col.type & "&nbsp&nbsp&nbspAutoincrement: " & col.Properties("AutoIncrement") & "<br>")
                next
             
             end if
    
          end if
          
          '========================== caca
          
          
          
          'msgbox("exit on left button" & resbutlefstr)
          'resbutlefstr = ""
          resbutmidstr = ""
          resbutbotstr = ""
          reskeylef = 0
          reskeymid = 0
          reskeybot = 0
          
       end if
       
       if resbutlefstr="srcdb" then
       
       end if
    
       if resbutlefstr="test33" then
          
          '=== this was a test with multiple button value (one for each line)
          a = clefra(array("fmid","fbot"))
          
          fmid.WriteLn("<html><body>TEST</html></body>")
          '=== bottom section
          fbot.WriteLn("<html><body>TEST mid section")
          fbot.WriteLn("<html><body><form method='post' name='form1'>")
          
          butnam = "buttonbot"
          
          for ii=0 to 10
             fbot.WriteLn("<input type=""button"" style=""height:50px;font-size:14px;width:50%;"" name=""" & butnam & ii &""" value=""" & butnam & ii & """ ")
             fbot.WriteLn("style=""background-color: #cccccc; color: #000000;""><br>")
          next
          
          fbot.WriteLn("</form>")
          fbot.WriteLn("</html>")
          fbot.WriteLn("</body>")
          
          for ii=0 to 10
             fbot.forms(0).elements(butnam & ii).onclick = getref("buttonbot")
          next
          
          '=== loop until a button is pressed on left frame or ie is closed
          do
             wscript.sleep 100
             if resbutbotstr<>"" then
                fmid.WriteLn(resbutbotstr)
                resbutbotstr=""
             end if
          loop while resbutlefstr="" and bReady=false
    
          '=== ie is still open and but come button was pressed on left frame
          if bready=false and resbutlefstr<>"" then
             '=== we remove the actions on the buttons
             for ii=0 to 10
                fbot.forms(0).elements(butnam & ii).onclick = nothing
             next
             
             '=== clear frames, reset button value and keyvalue
             if resbutlefstr<>"quit01" then
                a = clefra(array("fmid","fbot"))
             end if
          end if
          
       end if
       
       '=== desarchivage (move files from archives to temp folder and pop outlook message)
       '=== here as reference onlym not working, missing a sub
       
       if resbutlefstr= "desarchive" then
          tit="Désarchivage"
          '=== refresh menu (chek button = 0)
          a = clefra(array("fmid","fbot"))
          '=== inputs to do before processing
       
          distmp=array("Login","Password","Numéro(s) de contrat")
          namtmp=array("login","password","connum")
          deftmp=array("","","")
          typtmp=array("textbox","password","textbox")
          errtmp=array("Facultatif","Facultatif","")
          buttmp=array("ok","cancel")
       
          a = dynforgen (distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
       
          do
             err01=0
    
             if resbutlefstr="" and (resbutmidstr="ok" or reskeymid=13) then 
          
                '=== User has clicked the OK button, retrieve the values
                connum = fmid.form01.connum.Value
             
                if len(connum) < 5 then
                   a = "error - contrat doit avec 5 caractères"
                   err01=1
                   errtmp(2)=a
                   a = dynforgen (distmp,namtmp,deftmp,typtmp,errtmp,buttmp,tit)
                end if
             end if
             wscript.sleep 100
             if resbutmidstr="cancel" or reskeymid=27 then exit do
          loop while (err01<>0 and resbutlefstr="") or (connum="" and resbutlefstr="")
    
          if resbutlefstr="" and (resbutmidstr="ok" or reskeymid=13) then
             '=== doing the job, all input are ok
          
             clefra(array("fmid"))
    
             a = desarchive2(connum,fbot)
          
             fbot.WriteLn("done<br>")
          
             resbutmidstr=""
             reskeymid=0
          
          elseif resbutlefstr="" and (resbutmidstr="cancel" or reskeymid=27) then
             '=== nothing was pressed on left, but cancel was used or escape
             a = clefra(array("fmid","fbot"))
          elseif resbutlefstr<>"" then
             '=== sometthing hapenned with the buton on the left side (menu/control)
             a = clefra(array("fmid","fbot"))
          end if
    
       end if
       '=== .1 seconds 
       wscript.sleep 100
       
    '=== we loop until internet explorer was closed or the quit button was pressed
    loop until bReady or resbutlefstr="quit01"
    
    '======================
    '====================== end of main loop
    '======================
    
    '=== someone pressed "quit" on left frame (control frame, flef object)
    
    '=== at the end, if internet explorer was not closed, we close it
    if bready=false then
       oie.quit
       set oie=nothing
    end if
    
    '=== we end wscript.exe, exiting all running code interpretation
    wscript.quit
    
    '==================================================================================================
    
    '=== many subs
    
    '=== if internet explorer is closed (event) we change bready value to TRUE
    sub IE_onQuit()
       bReady=true
    end sub
    
    '=== database creation, mdb, access 2000
    function credb()
       '=== formats: jet10 = 1 Jet11 = 2 Jet20 = 3 Jet3x = 4 Jet4x = 5
    
       '=== Create Access2000 database
       CreateNewMDB basedir & "test.mdb", 5
    
       '=== list of tables to create
       alltab(0) = "tab01"
       alltab(1) = "components"
       alltab(2) = "diagnostic"
       alltab(3) = "causes"
    
       '=== with a column for identification, numerical, autoincremental
    
       '=== 0 creation columns
       '=== 1 search in thoses columns
       '=== 2 fast/short results columns
       '=== 3 detail results columns
    
       '=== columns to create (first numner is table number, second is array number, 0 = creation)
       allara(0,0) = array( _
       "[codeint]", _
       "[test01]")
    
       '=== columns to search in
    
       '=== short result (What columns to display if the result should be short)
    
       '=== detailed results (almost all columns with data)
    
    end function
    
    '============================================== subs and functions ====================================
    
    Sub CreateNewMDB(FileName, Format)
      Dim Catalog
      Set Catalog = CreateObject("ADOX.Catalog")
      Catalog.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & "Jet OLEDB:Engine Type=" & Format & ";Data Source=" & FileName
    End Sub
    
    '=== frames clear content by navigating to a blank
    '=== input is an array containing name of frames as "flef" = frame left
    '=== this sub generate a code and execute it in a string (cc)
    '=== fully dynamic programming at it's best ;)
    
    function clefra(aara)
       
       cc=""
       for each aa in aara
          cc = cc & "Do While (oIE.Busy) " & vbcrlf
          cc = cc & "   wscript.sleep 200" & vbcrlf
          cc = cc & "Loop" & vbcrlf
          cc = cc & "Do While oie.readystate<>4" & vbcrlf
          cc = cc & "   wscript.sleep 200" & vbcrlf
          cc = cc & "Loop" & vbcrlf
          cc = cc & aa & ".location.reload(true)" & vbcrlf
          cc = cc & "Do While (oIE.Busy) " & vbcrlf
          cc = cc & "   wscript.sleep 200" & vbcrlf
          cc = cc & "Loop" & vbcrlf
          cc = cc & "Do While oie.readystate<>4" & vbcrlf
          cc = cc & "   wscript.sleep 200" & vbcrlf
          cc = cc & "Loop" & vbcrlf
          cc = cc & aa & ".WriteLn(""&nbsp;"")" & vbcrlf
          cc = cc & aa & ".location.reload(true)" & vbcrlf
          cc = cc & "Do While oie.readystate<>4" & vbcrlf
          cc = cc & "   wscript.sleep 200" & vbcrlf
          cc = cc & "Loop" & vbcrlf
          cc = cc & "Do While (oIE.Busy) " & vbcrlf
          cc = cc & "   wscript.sleep 200" & vbcrlf
          cc = cc & "Loop" & vbcrlf
       next
    
       execute cc
       
       '=== we also clear the variables used to control the action buttons and the key pressed in each frames
       '=== so the action wont be taken twice (or infinitly) in the main loop
       
       'set flef = oie.document.frames("left").document
       'set fmid = oie.document.frames("middle").document
       'set fbot = oie.document.frames("bottom").document
       
    'for i=0 to ubound(arabutnam)
    '   flef.forms(0).elements(arabutnam(i)).onclick = getref("buttonlef")
    'next
    
    '=== we also chek the key presse in each frame
    '=== we do this cause we want "enter" key to be used instead of pressing "ok" button with the mouse
    'set flef.onkeypress = GetRef("Checklef") 
    'set fmid.onkeypress = GetRef("Checkmid") 
    'set fbot.onkeypress = GetRef("Checkbot") 
    
       resbutlefstr = ""
       resbutmidstr = ""
       resbutbotstr = ""
       reskeylef = 0
       reskeymid = 0
       reskeybot = 0
    end function
    
    '=== form dynamically generated =========================================================================
    
    function dynforgen (distmp, namtmp,deftmp,typtmp,errtmp,buttmp,title)
       
       '=== generate a form for input in the input frame (fmid object)
       '=== focus on the first field with no default value
       '=== display suffix message in red if "error" (or "erreur" - french) keyword is in it
       
       fmid.WriteLn("<h3><span class=SpellE>" & title & "</span></h3>")
       '=== default focus on empty field (with no default value)
       deffoc=0
       for ii=0 to ubound(namtmp)
          if deftmp(ii)="" then
             if instr(lcase(errtmp(ii)),"facultatif")=0 then
                fmid.WriteLn("<BODY onLoad=""document.form01." & namtmp(ii) & ".focus()"">")
                deffoc=1
             end if
          end if
          '=== no default value empty, we focus on first field
       next
       if deffoc=0 then
          fmid.WriteLn("<BODY onLoad=""document.form01." & namtmp(0) & ".focus()"">")
       end if
       fmid.WriteLn("<div class=MsoNormal align=center style='text-align:center'>")
       fmid.WriteLn("</div>")
    
       fmid.WriteLn("<form name=form01>")
    
       '=== button and error message
       for ii=0 to ubound(namtmp)
    
          fmid.WriteLn(distmp(ii) & ": ")
    
          '=== we disable "enter" to submit form because we manage this event as a onkeypress in the parent frame of the form later
          '=== we had to do this, because the web page form is not run on a server, and the web page dont have control, the VBS script outside the page have control
          
          fmid.WriteLn("<input type=""" & typtmp(ii) & """ id=" & namtmp(ii) & " NAME=""" & namtmp(ii) & """ size=""" & max(20,len(deftmp(ii))) & """ value=""" & deftmp(ii) & """ onKeypress=""return event.keyCode!=13""")
          'fmid.WriteLn("")
          if instr(lcase(errtmp(ii)),"error")<>0 or instr(lcase(errtmp(ii)),"erreur")<>0 then
             col="red"
          else
             col="blue"
          end if
          fmid.WriteLn("&nbsp; <b><span style='color:" & col & "'>&nbsp" & errtmp(ii) & "</span></b><br style='mso-special-character:line-break'>")
       next
    
       fmid.WriteLn("<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>")
       fmid.WriteLn("<![endif]></p>")
       
       for ii=0 to ubound(buttmp)
          typ01 = "button"
          fmid.WriteLn("<input type=""" & typ01 & """ name=""" & buttmp(ii) & """ value=""&nbsp;" & buttmp(ii) & "&nbsp;"">")
          fmid.WriteLn("&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp")
       next
       
       fmid.WriteLn("</div>")
       fmid.WriteLn("</form>")
       fmid.WriteLn("</body>")
       fmid.WriteLn("</html>")
    
       fmid.location.reload(true)
    
       '=== wait for internet explorer to be ready after we refresh the page with the new form
       for ii=0 to ubound(buttmp)
          Do While (oIE.Busy)
             wscript.sleep 100
          loop
          do while oie.readystate<>4
             wscript.sleep 100
          Loop
          '=== value to return for each button in the form
          fmid.forms(0).elements(buttmp(ii)).onclick = getref("buttonmid")
       next
       
       '=== regenerate the event that call a sub if a button is pressed
       set fmid.onkeypress = GetRef("Checkmid") 
       
       '=== clear button pressed and key pressed for this frame
       resbutmidstr=""
       reskeymid=0
    end function
    
    '===  max
    Function max(a, b)
    	If a > b Then max = a Else max = b
    End Function
    
    function crewebmai(oie, doctit, maitit, arabutnam, arabutdes, aradepnam, aradepcol)
    
    '=== create an internet explorer object (oie) that will be in 3 frames (flef, fmid, fbot), acting at the main interface for all this program
    
    oie.FullScreen = False
    '.ToolBar   = False
    '.StatusBar = False
    '.Navigate("About:Blank")
    '.visible = true
    
    oIE.left=0 ' window position
    oIE.top = 0 ' and other properties
    '.ParentWindow
    '        .resizeto 640,300
    '        .moveto (.screen.width
    oIE.height = 500
    oIE.width = 500
    oIE.menubar = 1 '=== no menu
    oIE.toolbar = 1
    oIE.statusbar = 1
    oIE.RegisterAsDropTarget = True
    oie.Navigate("about:blank")
    oie.document.title = doctit
    oiewid = oie.document.parentwindow.screen.width
    oiehei = oie.document.parentwindow.screen.height
    sizwidpercent = 100
    sizheipercent = 95
    loswid = 100-sizwidpercent
    loshei = 100-sizheipercent
    newwid = oiewid*sizwidpercent*.01
    newhei = oiehei*sizheipercent*.01
    oie.document.parentwindow.resizeto newwid,newhei
    newx = oiewid * loswid * .01 /2
    newy = oiehei * (loshei/2) * .01 /2
    oie.document.parentwindow.moveto newx, newy
    oIE.visible = 1 '=== visible on
    oie.addressbar=false 
    
    '=== we will always have 3 frames, control, input and output (flef, fmid, fbot)
    '=== used an array to have a good view of the line of html and possibility to add something else easily
    aratmp=array(_ 
    "<HTML>",_ 
    "<HEAD><TITLE>" & doctit & "</TITLE>",_ 
    "<meta content=""text/html; charset=utf-8"" http-equiv=""Content-Type"">",_ 
    "<meta http-equiv=""X-UA-Compatible"" content=""IE=8"">",_
    "</HEAD>",_ 
    "<FRAMESET id='main' COLS=""13%, *"">",_ 
    "<FRAME SRC=""About:Blank"" NAME=""left"" id=""left"">",_ 
    "<frameset id='main2' rows=""30%,70%"">",_
    "<FRAME SRC=""About:Blank"" NAME=""middle"" id=""middle"">",_ 
    "<FRAME SRC=""About:Blank"" NAME=""bottom"" id=""bottom"">",_ 
    "</FRAMESET>", _ 
    "</frameset>", _ 
    "</HTML>")
    
    'oie.Navigate("About:Blank")
    
    '=== send the array content in internet explorer to create 3 frames
    for i = 0 to UBound(aratmp, 1)
       oie.document.WriteLn(aratmp(i))
    next
    oie.refresh
    Do While (oIE.Busy)
       wscript.sleep 100
    Loop
    
    '=== wait till document loaded
    do while oie.readystate<>4
       wscript.sleep 100
    Loop
    
    '=== vista activate
    '=== make internet explorer the main active window
    a = objShe.AppActivate("http:/// - " & doctit & " - M")
    a = objShe.AppActivate(doctit & " - M")
    
    '=== theses objects are used to send data to the 3 different frames
    '=== if you dont define them as object, the access to them is very slow when we use the names instead of the objects
    
    '=== object used to write in a frame with writeln
    fileversion = objFSO.GetFileVersion("C:\program files\internet explorer\iexplore.exe")
    finddot = instr(fileversion,".")
    fileversion2 = left(fileversion,finddot-1)
    
    if fileversion2 = "10" or fileversion2 = "11" then
    	'=== ie10 frame access
    	set flef = oie.parent.document.getElementByid("left").contentdocument
    	set fmid = oie.parent.document.getElementByid("middle").contentdocument
    	set fbot = oie.parent.document.getElementByid("bottom").contentdocument
    else
    	set flef = oie.document.frames("left").document
    	set fmid = oie.document.frames("middle").document
    	set fbot = oie.document.frames("bottom").document
    end if
    
    '=== object used to navigate an empty page in a frame
    'set flefl = oie.document.frames("left").location
    'set fmidl = oie.document.frames("middle").location
    'set fbotl = oie.document.frames("bottom").location
    
    '=== string result for a button press in a frame (lef = left frame, mid = middle frame (up))
    resbutlefstr=""
    resbutmidstr=""
    resbutbotstr=""
    
    reskeylef=0
    reskeymid=0
    reskeybot=0
    
    '=== all the chek to be made in first page (1 at the moment, since ready have many values)
    
    nbrbut=UBound(arabutnam, 1)
    redim buttag(nbrbut)
    form = "flef"
    
    flef.WriteLn("<html><body>")
    flef.WriteLn("<body background=""" & basedir & "LOGO-STAS-FOND.jpg"">")
    flef.WriteLn("<h3><span class=SpellE>" & maitit & "</span></h3>")
    flef.WriteLn("<form name='form1'>")
    
    for i=0 to ubound(arabutnam)
       
       '=== convert xls to mdb button appear for stas only
       
       if ((usenam="wildboy" or usenam="fournier.serge" or usenam="fortin.jp" or usenam="lavoie.daniel" or usenam="doucet.gm") and arabutnam(i)="excel2mdb") or arabutnam(i)<>"excel2mdb" then
       
          'style="background-color: #cc0000; color: #ffffff;" /
          b = "<input type=""button"" style=""height:50px;font-size:14px;width:100%;"" name=""" & arabutnam(i) & """ value=""" & arabutdes(i) & """"
          i2=i
          if i>ubound(aradepnam) then
             i2=ubound(aradepnam)
          else
             a=aradepnam(i2)
          end if
    
          if a<>lasdep then
             '=== new departement name
             flef.WriteLn( "<br>" & a & "<br>")
             lasdep=a       
          end if
          b = b & " style=""background-color: #" & aradepcol(i2) & "; color: #000000;""><br>"
          flef.WriteLn(b)
       end if
    next
    
    flef.WriteLn("</form>")
    flef.WriteLn("</body>")
    flef.WriteLn("</html>")
    
    '=== we dont refresh this frame, its the first one
    
    end function
    
    '=== sub to call when something is pressed
    '=== called for many buttons, return the button name or a keyboard code (Ascii)
    sub buttonlef
       set src = flef.parentWindow.event.srcElement
       resbutlefstr = src.name
    end sub
    
    sub buttonmid
       set src = fmid.parentWindow.event.srcElement
       resbutmidstr = src.name
    end sub
    
    sub buttonbot
       set src = fbot.parentWindow.event.srcElement
       resbutbotstr = src.name
    end sub
    
    sub Checklef
       reskeylef = flef.parentWindow.event.keycode
    end sub
    
    sub Checkmid 
       reskeymid = fmid.parentWindow.event.keycode
    end sub
    
    sub Checkbot
       reskeybot = fbot.parentWindow.event.keycode
    end sub
    
    '=== chek in the actual folder if a file exist
    function filsea(filname)
    
    '=== chek also actual folder for a "Rappel_LOG" file (instr)
    Set objFolder2 = objFSO.GetFolder(basedir)'=== dir
    Set objFiles2 = objFolder2.files '=== fichiers
    
    found=0  '=== fichier de rapport pas trouve
    For Each objFile3 in objFiles2
       nomfile =objfile3.name
       nomfile= lcase(nomfile)
       
    next  
    
    
    end function
    
    '=== delete a table in a database
    
    function tabdel()
             
             for each tab in objcat.Tables
                If tab.Type = "TABLE" Then
                   b=lcase(tab.name)
                   '=== object.delete not supported, so we delete with name
                   objcat.tables.delete b
                   fbot.WriteLn("delete: " & b & "<br>")  
                END IF
             next
    
    end function
    
    '=== for reference
    function dynbotcho00
                   i3=0
                   For each dia01 in choiceara
                      sql = makque(dia01,tab,sel,whe,"","=","")
                      a = exesql(objcon,tag,sql)
    
                      '=== make same array for a multiples queries
                      if tag.eof=0 then
                         'a = dynbotcho("DIAGNOSTIC",tag,0,sql,1,1,1,1) '=== 1 2 3
                         if ubound(choiceara)=0 and i3=0 then
                            a = dynbotcho("DIAGNOSTIC",tag,0,sql,1,1,1,1) '=== 1 2 3
                         elseif i3=0 then
                            '=== header
                            a = dynbotcho("DIAGNOSTIC",tag,0,sql,1,1,0,0) '=== 1 2 3
                         elseif i3<>ubound(choiceara) and i3<>0 then
                            '=== footer
                            a = dynbotcho("DIAGNOSTIC",tag,0,sql,0,1,0,0) '=== 1 2 3
                         elseif i3=ubound(choiceara) then
                            a = dynbotcho("DIAGNOSTIC",tag,0,sql,0,1,1,1) '=== 1 2 3
                         end if
                         i3 = i3 + 1
                      else
                         '=== 0 results
                         a = nores(sql)
                      end if
                   next
    end function
    
    function dynbotcho(ffra, ttext, aaratit, aara, cc01 ,hh, mm, ff, rr)
       '=== ffra frame to use for display (object)
       '=== ttext to display
       '=== aara = array with what to display
       '=== cc = choice button
       '=== sql = sql query for debugging
       '=== hh = 1 = header 
       '=== mm = 1 = middle
       '=== bb = 1 = footer
       '=== rr = 1 = reload at end
       call oieready
       '=== print button
       priara = array("<input type=""button"" onClick=""javascript:print()"" value=""Print""/><br><br>")
    
       xmax = UBound(aara, 1) 'Returns the Number of columns  --- elements in first dimension
       on error resume next
       ymax = UBound(aara, 2) 'Returns the Number of rows     --- elements in second dimension
          
       '=== number of dimensions in case there is only 1 column
       if err<>0 then
          dimnum=1
       else
          dimnum=2
       end if
       on error goto 0
       
       '=== web script for buttons to return the number of the button that was pressed
    
       '=== print button
       if hh=1 then
          for each a in priara
             ffra.WriteLn(a)
             fmid.WriteLn("<form name=form01>")
             'ffra.WriteLn("<BODY onLoad=""document.form01." & namtmp(0) & ".focus()"">")
          next
       end if
       
       '=== select buttons
       if cc01<>0 then 
          '=== buttons var only if select is active
          if cc01<>0 then
             for yy=0 to ymax
             next
          end if
       end if
       
       '=== header
       if hh=1 then
          
          htmtab = ttext & "<b><table width=""100%"" BORDERCOLOR=""black"" class=MsoTableGrid border=1 CELLSPACING=0 cellpadding=2 style='border-collapse:collapse;border:none'>"
          htmtab = htmtab & "<CAPTION></CAPTION><span style='color:purple'>" & vbcrlf
    
          '=== tableau html
          htmtab = htmtab & "<TR>"
          i=0
          For Each a In aaratit
             '=== columns names
             if cc01<>0 then if i=0 then htmtab = htmtab & "<td><p>Select</td>"
             htmtab = htmtab & "<td><p>" & Trim(a) & "</td>"
             i=i+1
             if dimnum=1 then exit for
          Next
             htmtab = htmtab & "</tr>"
       end if
       'ara01(x,y) = "ligne1 col1"
       'ara01(0,0) = "ligne1 col1"
       'ara01(0,1) = "ligne2 col1"
       'ara01(1,0) = "ligne1 col2"
       'ara01(1,1) = "ligne2 col2"      
          
       '=== middle
       if mm=1 then
          For xx = 0 To xmax
             htmtab = htmtab & "<TR>"
             if dimnum=2 then
                For yy = 0 To ymax
                   'If IsNull(myarray(xx, yy)) Then myarray(xx, yy) = ""
                   if yy=0 and cc01<>0 then
                      htmtab = htmtab & "<td><p>"
                      htmtab = htmtab & "<input type=""button"" name=""" & "but" & trim(cstr(yy+1)) & """ value=""" & "Select " & yy+1 & """"
                      htmtab = htmtab &  " style=""background-color: #" & "cccccc" & "; color: #000000;""><br>"
                      htmtab = htmtab & "</td>"
                   end if
                    
                htmtab = htmtab & "<td><p>" & aara(yy, xx) & "</td>"
                Next
             else
             '=== there is only 1 column
                htmtab = htmtab & "<td><p>"
                htmtab = htmtab & "<input type=""button"" name=""" & "but" & trim(cstr(xx+1)) & """ value=""" & "Select " & xx+1 & """"
                htmtab = htmtab &  " style=""background-color: #" & "cccccc" & "; color: #000000;""><br>"
                htmtab = htmtab & "</td>"
                htmtab = htmtab & "<td><p>" & aara(xx) & "</td>"
             end if
             htmtab = htmtab & "</tr>" & vbcrlf
       
          Next
       end if
          
       '=== footer
       if ff=1 then
          htmtab = htmtab & "</table></span></b><br>"
       end if
       
       htmtab = htmtab & "</form>"
       ffra.WriteLn(htmtab)
          
       '=== reload (will not reload if we are in middle of a muliple elements/query table)
       if rr=1 then
          ffra.location.reload(true)
          call oieready
       end if
       
       if mm=1 then
          For xx = 0 To xmax
             if dimnum=2 then
                For yy = 0 To ymax
                   if yy=0 and cc01<>0 then
                      fmid.forms(0).elements("but" & trim(cstr(yy+1))).onclick = getref("buttonmid")
                   end if
                Next
             else
             '=== there is only 1 column
                fmid.forms(0).elements("but" & trim(cstr(xx+1))).onclick = getref("buttonmid")
             end if
          Next
       end if
       
       set fmid.onkeypress = GetRef("Checkmid")
       
       'for i=0 to ubound(arabutnam)
       '   flef.forms(0).elements(arabutnam(i)).onclick = getref("buttonlef")
       'next
    end function
    
    sub oieready()
       do while oie.readystate<>4
          wscript.sleep 100
       loop
       Do While (oIE.Busy) 
          wscript.sleep 100
       Loop
    end sub
    

    翻译自: https://www.experts-exchange.com/articles/1053/web-interface-for-wsh-vbs-vbscript.html

    @wsh888666wsh

    展开全文
  • <SCRIPT Language=VbScript> Dim CurTable CurTable=MyTable.offsetLeft Dim TabII,TabJJ Dim CurWidth For TabII=0 To (MyTable.Rows.length-1) For TabJJ=0 To (MyTable.Rows(TabII).cells.length-1) If...

    <HEAD>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <TITLE></TITLE>
    </HEAD>
    <BODY οnmοuseleave="SetInitValue()"; οnmοusemοve="DyanmeicMove()";  οnmοusedοwn="javascript:DownBody();" OnMouseOver="" OnMouseUp="javascript:UpBody();" onselectstart="javascript:SelectBody();">
    <DIV id=MyDiv style="DISPLAY:none; HEIGHT: 268px; LEFT: 427px; POSITION: absolute; TOP: 37px; WIDTH: 23px; Z-INDEX: 1">
    <hr id=MyLine width="0" size="200" noshade Color="black"   >
    </DIV>
    <TABLE id=MyTable border=0 cellPadding=0 cellSpacing=0 width="300" >
    <TR id=MyRow01>
    <TD width="100" id="MyCol01" οnmοusemοve="javascript:MoveCol('MyCol01');" >0</TD>
    <TD width="100" id="MyCol02" οnmοusemοve="javascript:MoveCol('MyCol02');" >0</TD>
    <TD width="100" id="MyCol03" οnmοusemοve="javascript:MoveCol('MyCol03');" >0</TD></TR>
    <TR Id=MyRow02>
    <TD>04</TD>
    <TD>0</TD>
    <TD>0</TD></TR>
    <TR Id=MyRow03>
    <TD>0</TD>
    <TD>0</TD>
    <TD>0</TD></TR>
    <TR>
    <TD>1</TD>
    <TD>1</TD>
    <TD>1</TD></TR>
    </TABLE>
    <form method="POST" action="--WEBBOT-SELF--" name="form">
     <!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
     <p><input type="text" name="T1" size="20"><input type="button" value="按钮" name="B1" οnclick="  MyDiv.style.display='';  MyDiv.style.height = 10;"><input type="reset" value="重置" name="B2"><input type="text" name="T2" size="20"></p>
    </form>
    <script language="javascript">
    var CurState =false;
    var CurDown=false;
    var CurId ;
    var OldPlace,NewPlace ;
    var CurTable=MyTable.offsetLeft ;
    function MoveCol(MyColId) {
     window.status =window.document.body.scrollLeft;
     if (CurDown==false){
      if((window.event.x + window.document.body.scrollLeft) > (CurTable + window.document.body.all(CurId).offsetLeft + window.document.body.all(CurId).offsetWidth-3)) {
       CurState=true ;
       window.document.body.style.cursor="e-resize" ;
      }
      else {
       CurState=false ;
       window.document.body.style.cursor="Default" ;
      }
      CurId=MyColId ;

     }
    }

    function UpBody() {
     if (CurState==true ){
      NewPlace=window.event.x + window.document.body.scrollLeft ;
      if ( NewPlace> (CurTable + window.document.body.all(CurId).offsetLeft +20) ){
       window.document.body.all(CurId).width = window.document.body.all(CurId).width - (OldPlace - NewPlace) ;
       MyTable.width=MyTable.width- (OldPlace - NewPlace) ;
       window.document.body.all(CurId).innertext=window.document.body.all(CurId).width ;
      }
      CurState=false;
      CurDown=false;
      MyDiv.style.display="none" ;
      window.document.body.style.cursor="Default" ;
     }
    }

    function DownBody()  {
     if (CurState==true ) {
      CurDown=true ;
      MyLine.style.height = MyTable.offsetHeight; 
      OldPlace=window.event.x + window.document.body.scrollLeft ;
     }
    }
    function MoveBody()  {
     if (CurDown==true ) {
            document.getElementById('MyDiv').style.top = MyTable.offsetTop - MyLine.offsetTop      
      document.getElementById('MyDiv').style.left = window.event.x + window.document.body.scrollLeft - MyLine.offsetLeft ;
          document.getElementById('MyDiv').style.Heigth= MyTable.offsetHeight ;   
            MyLine.style.height =MyTable.offsetHeight;
      window.document.body.style.cursor="e-resize" ;
     }
    }

    function SelectBody(){
     if (CurDown==true ) {
      window.event.returnvalue=false ;
     }
    }
    function DyanmeicMove()
    {
     if (CurDown==true ) {     
      window.document.body.style.cursor="e-resize" ;
     }
    }
    function SetInitValue()
    {
      CurState=false ;
      CurDown=false ;
      MyDiv.style.display="None" ;
      window.document.body.style.cursor="Default" ;
     
    }
    </Script>

    <SCRIPT Language=VbScript>
    Dim CurTable
    CurTable=MyTable.offsetLeft

    Dim TabII,TabJJ
    Dim CurWidth
    For TabII=0 To (MyTable.Rows.length-1)
    For TabJJ=0 To (MyTable.Rows(TabII).cells.length-1)
    If MyTable.Rows(TabII).cells(TabJJ).innerHtml="" Then
    MyTable.Rows(TabII).cells(TabJJ).innerHtml=" "
    End If
    CurWidth="1"
    If TabII=0 Then '第一行
    CurWidth="2"
    End If
    MyTable.Rows(TabII).cells(TabJJ).Style.bordertop=CurWidth & "px solid Black"
    CurWidth="1"
    If TabJJ=0 Then '第一列
    CurWidth="2"
    End If
    MyTable.Rows(TabII).cells(TabJJ).Style.borderleft=CurWidth & "px solid Black"
    If TabII=(MyTable.Rows.length-1) Then '最后一行
    MyTable.Rows(TabII).cells(TabJJ).Style.borderbottom="2px solid Black"
    End If
    If TabJJ=(MyTable.Rows(TabII).cells.length-1) Then '最后一列
    MyTable.Rows(TabII).cells(TabJJ).Style.borderright="2px solid Black"
    End If
    Next
    Next
    </SCRIPT>

    </BODY>
    </HTML>

    展开全文
  • 脚本下载:ChangeNumberOfAppsTileRows(VBScript).zip ... 本VBScript脚本演示了如何修改Windows8中的开始界面的磁贴的行数。 默认情况下,磁贴的行数是完全依赖于屏幕分辨率或窗口大

    脚本下载:ChangeNumberOfAppsTileRows(VBScript).zip
    http://gallery.technet.microsoft.com/scriptcenter/Change-the-Number-of-Tile-cd9bcc1a

    VBScript脚本演示了如何修改Windows8中的开始界面的磁贴的行数。

    默认情况下,磁贴的行数是完全依赖于屏幕分辨率或窗口大小,适合在你的Windows屏幕的,但有时用户想要在开始屏幕显示一个不依赖于屏幕大小的特定的行数的磁贴。

    您可以在 微软一站式脚本示例库 中找到更多的脚本示例资源http://aka.ms/onescriptingallery

     

    展开全文
  • VBSCRIPT编译器.rar

    2011-11-19 14:09:12
    用vb编写的VBSCRIPT编译器,含有源码,界面简介,功能强大,可实现所有基本功能。
  • 资源介绍:易语言调用vbscript实现弹出信息框资源作者:易语言入门自学资源界面:资源下载:
  • 文档为基于VBScript和控件实现WINCC SQL报表查询功能,内含SQL数据库的创建过程,以及WINCC中VBS脚本的代码,WINCC的报表界面等,更有助于参考学习
  • 我的开源: UnInstaller for Windows(VBScript)

    千次阅读 2012-07-02 13:42:02
    简介 ...一般情况,对于使用MSI方式安装的软件,都使用一个Key来记录,并可使用下面命令卸载,可是这个key不好记忆,也因不同版本而不同,很不容易管理;...而且使用Windows的卸载界面不适合管理多电脑环境。 ms

    简介

            要卸载一个安装的软件,需要知道它的卸载信息,大多数软件在安装时都会在Registry中注册卸载信息。一般情况,对于使用MSI方式安装的软件,都使用一个Key来记录,并可使用下面命令卸载,可是这个key不好记忆,也因不同版本而不同,很不容易管理;另外使用msiexec卸载软件,需要一个一个地进行,不能同时运行;而且使用Windows的卸载界面不适合管理多电脑环境。

    msiexec /x {key}

            使用软件的名称来卸载软件,更加直观和方便,这就是本脚本的初衷。

            本脚本适用于Windows XP, Vista, 7,x86和x64版本

    功能:

    本脚本实现以下一些功能:

    • 列表:列出所有已安装的程序信息,信息包括:{key},软件名称,安装日期,主版本,次版本,估计大小,卸载Version命令,发布者,显示版本,和安装路径。并且可以列出指定名称/版本等程序信息的程序:通过给定的软件名称,版本等过滤选项显示该软件的程序信息。
    • 列卸载信息:列出指定名称/版本等信息的程序卸载信息,通过给定的软件名称,版本等过滤选项显示软件名称和卸载命令。
    • 卸载:根据指定名称/版本等信息卸载程序:通过给定的软件名称,版本等过滤选项卸载该(多个)软件。

    过滤选项:

            目前支持对软件名称(Display Name),主版本(Major Version),次版本(Minor Version),显示版本(Display Version)作为过滤选项,用户可以通过制定这些过滤选项的一个或者多个的组合,来找到所要的软件信息。

    卸载选项:

            客户可以指定卸载程序的选项,以适合自己的情况。比如: MSI的安静卸载选项可能使用:

    /quiet /norestart
    或者
    /qr /norestart

    对于其它卸载程序,可能使用/s等。

     

    下载:

            本脚本使用GNU GPL v2协议方式共享,在Google项目里下载源码。

    软件说明信息:

    ' ---------------------------------------------------------------------------
    ' Name: Uninstaller for Windows
    '
    ' Version 0.1
    ' Support Windows Xp, Vista, 7 (x86 or x64)
    '
    ' History:
    '    Created: May 14, 2012
    '    Updates: June 20, 2012: Initial
    '
    ' Description: 
    '    This script list/test/uninstall a program. User can provide commands/options
    '    to specify program to be operated.
    '    For help, run: cscript Uninstaller.vbs /h
    '
    ' Copyright (c) 2012, Tony Liu
    '
    ' This program is free software; you can redistribute it and/or
    ' modify it under the terms of the GNU General Public License
    ' as published by the Free Software Foundation; either version 2
    ' of the License, or (at your option) any later version.
    '
    ' This program is distributed in the hope that it will be useful,
    ' but WITHOUT ANY WARRANTY; without even the implied warranty of
    ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    ' GNU General Public License for more details.
    '
    ' You should have received a copy of the GNU General Public License
    ' along with this program; if not, write to the Free Software
    ' Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    '
    ' Contact: Tonyliu2ca@gmail.com
    '

     

    Tony Liu

    June 2012

    展开全文
  • 每次将文件夹打包为ISO都要打开图形界面比较麻烦,特此制作脚本来完成,此脚本只适合做数据光盘,其他功能的ISO还是要使用UltraISO来完成。使用前需要将脚本的快捷方式放置到系统的SendTo文件夹中。
  • 操作SecureCRT的界面

    2014-09-17 21:30:58
    主要用来操作SecureCRT的一个界面,脚本是VBscript,实现完全自动化
  • ASP模板类(VBScript实现)

    千次阅读 2006-08-15 12:45:00
    看这篇文章的内容之前,请大家先看看沐枫小筑的文章--《ASP网页模板的应用: 让程序和界面分离,让ASP脚本更清晰,更换界面更容易》,这个老小子用JScript实现了一个模板类 ...经过一段时间的调试,我把他的模版类给...
  • 脚本语言:Shell , JavaScript、VBScript、Perl、PHP、Python、Ruby、Lua 工作控制语言和shell Shell 脚本 此类脚本用于自动化工作控制,即启动和控制系统程序的行为。大多的脚本语言解释器也同时是命令行...
  • 一、我的需求: ... ... ######################### ...Document.getElementsByName(...)(...)获取的依然是前面登陆界面的元素?? ----------------------------------- 诚意求教,盼高人回复!
  • 学习经典的CSS盒模型、布局模型、定位技术,各个属性讲解及代码实例;HTML超文本标记语言用法详解……手册界面友好,设计精美,打包下载超值享受,欲下从速。
  • 网上没有搜到uplodify的asp实现,官网只提供了php的demo,根据这个demo改了个asp的实现,放到这里,或许能帮助一些人。...下载地址:http://download.csdn.net/source/1841325 下面是主要代码: 前台界面的调用:
  • Tkinter图形界面的应用

    2021-03-25 02:08:08
    Tkinter图形界面的应用 万年历 程序实现制作一个Tkinter图形界面日历(只显示阳历日期),用户选择某年某月,图形化显示当月...om = OptionMenu(root,v,'Python','PHP','CPP','C','Java','JavaScript','VBScript') 或者
  • 网页登录界面

    2018-09-16 21:28:00
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <%@ Language=VBScript %> <% if isempty(Request.Form("Login")) then Session.abandon Session("NumAttempts") ...
  • 后台网页界面

    2012-10-20 09:42:13
    文件→新建→动态页→ ASP VBScript →存至www下的admin中→名为a1.asp 修改菜单→页面属性→ 插入图像:a1.jpg 打开manage.asp→代码视图→找代码:mm_menu_1112203232_0.addMenuItem(“添加新闻”,“window....
  • 我自己做的一个简单的登录界面,学习所用,html,css以及简单的VBScript。未完成版。算是1.00版吧 《~0。。0~》
  • 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑。当需求变化时,只需要在服务端把相关代码调整一下,用户即可看到新的内容(界面)。...
  • 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑。当需求变化时,只需要在服务端把相关代码调整一下,用户即可看到新的内容(界面)...
  • Skype无法显示登录界面

    万次阅读 2013-09-10 11:30:22
    Skype突然抽风,双击运行程序之后,输入... 卸载重新安装,也出现。删除注册表中的Skype的相关信息后问题依旧。网上的建议中很多都是执行regsvr32 jscript.dll及 regsvr32 vbscript.dll 指令将库文件注册进注册表:
  • 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑。当需求变化时,只需要在服务端把相关代码调整一下,用户即可看到新的内容(界面)。...
  • 我们都知道在ASP里面,VBScript是嵌套在网页里面被解释执行的,也就是说代码和界面混杂在一起,所以用起来和维护起来非常的麻烦。在ASP.NET里面情况有了本质上的变化,界面已经和代码基本没有大的关系了,一个ASPX...
  • 我有一个java的spring boot 程序,运行在windows系统。之前一直使用java -jar 命令来启动程序,会有一个黑黑的cmd控制台界面,很容易被别人勿...%1 mshta vbscript:CreateObject("WScript.Shell").Run("%~s0 ::",0,.
  • 最近遇到一个很扯淡的问题,就是可以上网,百度、CSDN、各种论坛都可以打开查看,但就是不能打开登录界面,不能登录。 包括百度账号、CSDN账号、有道云笔记账号,都无法登录。 在网上查询了一圈,没有找到确切...
  • html个人网站xp界面

    2009-05-21 05:17:13
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ; charset=gb2312" /> 留言板首页 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 501
精华内容 200
关键字:

vbscript界面