Função Descrição
Tempo Retorna uma variante do subtipo Encontro que foi definido igual ao horário atual
do sistema
Cronômetro Retorna um valor que representa o número de segundos que se passaram desde a
meia-noite
TimeSerial Retorna uma variante do subtipo Encontro que foi definido como igual a contendo o
Valor do tempo Retorna uma variante do subtipo Encontro que foi definido usando o tempo especificado
guarnições Retorna uma string após a remoção de qualquer líder ou espaços à direita
Digite o nome Retorna uma string que especificado as informações variante subtipo sobre a
variável especificada
VarType Retorna uma string que especificado as informações variante subtipo sobre a
variável especificada
dia da semana Retorna um número inteiro na forma de 1 a 7, que representa um determinado dia
numa semana
Como um exemplo rápido do benefício de usar um built-in função de VBScript para poupar tempo e simplificar
suas VBScripts, olhar para a função personalizada seguinte, que consiste em cinco declarações VBScript.
SqrRootSolver função ()
Para Contador = 1 a 15
Os cinco declarações contidas na função pedir que o usuário digite um número e, em seguida, usar um A
seguir loop para determinar a raiz quadrada desse número usando alguma matemática bastante
FIGURA 4.6 Criar uma função personalizada que determina a raiz quadrada de um número de entrada
Usando built-in do VBScript SQR () função, você pode executar a mesma tarefa com apenas duas linhas de código,
UserInput = InputBox ( “Digite um número”, “Calculadora Raiz Quadrada”) MsgBox “A raiz quadrada
Não só usando o built-in VBScript SQR () função de reduzir o número de linhas de código, mas
também reduz a complexidade do script, reduzindo assim a quantidade de tempo que leva a
desenvolver-lo.
resumo
Neste capítulo, você aprendeu a melhorar suas VBScripts, organizando-os em sub-rotinas e
funções. Isto incluiu o desenvolvimento de uma compreensão da
94 parte I Apresentando o Microsoft VBSCRIPT
diferenças entre estes dois tipos de procedimentos e como aproveitar o poder ea conveniência fornecidos pela
coleta built-in de VBScript de funções. Além de fazer os scripts mais fácil de ler e manter, procedimentos
proporcionam um mecanismo para limitar o âmbito variável. Você também aprendeu a chamar procedimentos
VBScript usando manipuladores de eventos a fim de desenvolver VBScripts que podem reagir de forma dinâmica
tanto para a atividade do usuário e do navegador.
capítulo 5
Arrays
você mary meio de armazenar
p a este ponto, todainformação natem-se
a discussão memória durante
centrado a execução
sobre o uso dedo script. As
variáveis variáveis
como o pri- são limitados em
sua capacidade de lidar eficazmente grandes quantidades de dados. Os scripts são geralmente concebidos para
processar dados que são relacionados de algum modo. VBScript proporciona a matriz de construir como um meio de
controlar de forma mais eficiente de grandes quantidades de dados relacionados. Neste capítulo, você vai aprender
como trabalhar com matrizes tridimensionais e multidimensionais individuais. Além disso, você vai aprender várias
serem processados é relativamente pequeno, ele pode ser armazenado em variáveis individuais. No entanto, como a
quantidade de dados processados por scripts cresce, torna-se cada vez mais difícil contar com variáveis. Por exemplo, um
script pode precisar para processar uma coleção de nomes de usuário. Definindo 100 nomes de variáveis únicas seria um
processo árduo. Em vez disso, o VBScript fornece matrizes como uma construo para o armazenamento de grandes
quantidades de dados relacionados. A ordem é uma lista indexada de dados relacionados. Arrays fornecer a capacidade
de armazenar peças relacionadas de informação de uma forma que é fácil de gerir. A maioria das matrizes são
constituídas por uma única dimensão e pode ser pensado como uma tabela única coluna. matrizes VBScript são à base
de zero, o que significa que o primeiro elemento é sempre atribuído um número de índice de 0. O segundo elemento
armazenados na matriz é atribuído um número de índice de 1, e assim por diante. Especificando o nome de uma matriz e
um número de índice, você pode fazer referência a qualquer elemento armazenado dentro do array. No entanto, as
matrizes VBScript não estão limitados a uma única dimensão. Por exemplo, uma matriz bidimensional VBScript pode ser
pensado como uma tabela que consiste em múltiplas colunas e linhas, como representado na Figura 5.1.
Como dimensões adicionais são adicionados, matrizes tornar-se mais complexo. Por exemplo, uma matriz
tridimensional pode ser pensado como um cubo. Qualquer coisa além de três dimensões é difícil para a maioria
das pessoas para conceituar e é igualmente difícil
ARRAYS capítulo 5 97
representar graficamente. Felizmente, apesar de VBScript pode suportar matrizes com até 60 dimensões, a maioria
das situações de chamada apenas para uma ou duas matrizes dimensionais. Cada elemento em uma matriz pode
conter um valor. Para matrizes unidimensionais, um elemento é uma linha na tabela ou coluna. Para matrizes
coleção de arquivos, usuários ou clientes. matrizes VBScript são à base de zero. Portanto, o primeiro elemento
armazenado em uma matriz unidimensional é atribuído um índice de posição 0. O comprimento efectivo de uma
array, por outro lado, pode ser redimensionada tantas vezes quanto necessário. Você pode definir uma matriz estática
usando o escurecer palavra-chave. A sintaxe para o escurecer indicação quando utilizado para definir matrizes é descrito a
seguir.
ArrayName é o nome atribuído à matriz, e dimensões é uma lista separada por vírgulas que especifica
o número de dimensões na matriz, bem como o seu comprimento.
A declaração anterior define uma matriz chamada astrCustomerList que pode armazenar até cinco
elementos (ou seja, elementos de 0 a 4).
GORJETA
Para fazer matrizes destacam-se outras variáveis, desenvolver uma convenção de nomenclatura única para eles.
Neste livro, a letra minúscula uma é anexado ao início de nomes de matriz, seguido por um de três caracteres
descrição denominada húngara do tipo de dados armazenados na matriz e um ou mais descritivos palavras que
identificam o conteúdo da matriz. No caso do exemplo anterior, o astrCustomerList matriz contém dados de cadeia
que representam os nomes de clientes.
Se você deseja que o usuário fornecer dados para a matriz, você pode recolhê-lo como demonstrado abaixo.
Para i = 0 a 4
Um ciclo tem sido criada para iterar cinco vezes (0-4). Ele usa o VBScript
Caixa de entrada() função para pedir ao utilizador para digitar o nome de um cliente em cada iteração do circuito
fechado, tal como demonstrado na Figura 5.2. Em seguida, armazena os valores digitados pelo usuário na matriz,
associando o valor de Eu com um número de índice na matriz.
Acesso direto
Uma vez que uma matriz foi preenchida com os dados, você pode processá-lo. Uma maneira de aceder ao conteúdo de
matriz é para especificar o número de índice de um elemento de matriz específico, tal como demonstrado abaixo.
Afirmações . . .
Próximo [ elemento]
Elemento é uma variável usado para controlar o ciclo, pois itera através da matriz.
Grupo especifica o nome da matriz a ser processado. Afirmações são as instruções que irão ser
utilizados para processar o conteúdo da matriz. o For Each ... Next itera ciclo até que cada elemento
<HTML>
<HEAD>
<TITLE> Script 5.1 Utilização da For ... Each ... Next loop para processar um
HEAD>
<BODY>
Option Explicit
i Dim
</ SCRIPT>
HTML>
Como você pode ver, um VBScript foi incorporado na secção do corpo de uma página HTML. Esse
script começa definindo uma matriz chamada astrCustomerList
que pode armazenar até cinco elementos. Os próximos cinco declarações armazenar valores em cada
elemento da matriz. Em seguida, uma Document.Write declaração é usado para exibir um título de coluna na
página da Web. Finalmente, um For Each ... Next laço é usado para percorrer a matriz e mostrar o seu
conteúdo, que são representados pela variável Eu. A Figura 5.4 mostra a saída criado quando esta página
HTML é carregado.
NOTA
FIGURA 5.4 Usando um For Each ... Next loop para processar todos os elementos armazenados em uma matriz
NOTA
Mais informações sobre como trabalhar com o For Each ... Next laço está disponível no capítulo 3, “A lógica
condicional e Estruturas iterativos.”
matriz. No entanto, como VBScript loops são sempre baseada em zero, essa função é de pouco valor.
NOTA
VBScript é parte da família Visual Basic de linguagens de programação. As outras línguas desta família são Visual Basic e Visual Basic
for Applications. VBScript representa um subconjunto dessas outras línguas. No Visual Basic e Visual Basic for Applications, os
programadores têm a capacidade de atribuir de uma variedade limite inferior, enquanto que no VBScript que é sempre definido como
zero. Portanto, embora seja útil em programas de Visual Basic e Visual Basic for Applications, o LBound () função é redundante em
VBScript.
ARRAYS capítulo 5 103
o LimiteSup () função, por outro lado, tem mérito. Ele é usado para recuperar o valor de limite superior (o
seu elemento mais alto) de uma matriz .A sintaxe do LimiteSup ()
função, quando usadas para processar um conjunto de dimensão única, é descrita abaixo.
UBound ( ArrayName)
ArrayName é o nome da matriz. o LimiteSup () função é normalmente usado como mostrado abaixo.
x = LimiteSup ( ArrayName)
O valor atribuído ao X é igual a um menos o número real de elementos na matriz. Por conseguinte, para
determinar o número de elementos armazenados na matriz, adicionar 1 para o valor devolvido pela LimiteSup (), como
mostrado abaixo.
x = LimiteSup ( ArrayName) + 1
Por exemplo, o seguinte usa o VBScript LimiteSup () função para terminar a execução de um A seguir ciclo
quando o processamento de uma matriz.
*************************************
'Seção de inicialização
Option Explicit
intArrayUpperBound
MsgBox “Contactos:” & vbCrLf & vbCrLf & strDisplayString, “Contatos do Cliente”
Figura 5.5 usando o LimiteSup () funcionar para determinar limite superior de uma matriz
Você pode usar o LimiteSup () funcionar para impedir que um VBScript de tentar aceder a elementos
que não existem, assim, evitar a ocorrência de erros. Por exemplo, as seguintes declarações definir
uma matriz e preenchê-lo com cinco elementos. A última declaração tenta acessar um elemento que
não existe na matriz, resultando na mensagem de erro mostrada na Figura 5.6.
Figura 5.6 Um erro ocorre quando VBScript tenta acessar um elemento que está além do limite superior de um array
X = astrCustomerList (6)
dados que são recolhidos consiste em diferentes tipos de dados relacionados. Por exemplo, um VBScript pode precisar de
armazenar inúmeras peças de informações sobre um cliente, incluindo o nome do cliente, número de cliente e número de
CUSTOMER_NO Customer_Phone
GORJETA
Outra forma de pensar de um matriz bi-dimensional é como uma matriz unidimensional que consiste de um
conjunto de matrizes unidimensionais.
106 parte I Apresentando o Microsoft VBSCRIPT
ArrayName é o nome da matriz que está sendo definido e dimensões é uma lista commaseparated de
subscritos, cada um dos quais define uma dimensão da matriz. Por exemplo, a seguinte declaração
define uma matriz bidimensional.
o astrCustomerList matriz, tal como definido acima, será capaz de armazenar cinco linhas e três colunas valor de
informação, permitindo que ele para armazenar toda a informação listada na Tabela 5.1.
cCustomerNo = 1 const
cCustomerPhone = 2
(cCustomerPhone, 4) = “877-444-1111”
ARRAYS capítulo 5 107
GORJETA
Observe o uso das constantes nas três primeiras declarações no exemplo anterior. Ao atribuir constantes
para representar o valor de cada uma das três colunas na matriz, o código torna-se auto-documentado,
tornando-o mais fácil de ler e apoio.
matrizes estáticas, você pode especificar a localização de elementos individuais, a fim de acessar seus valores. No
caso de uma matriz bidimensional, isto significa que especifica ambas as coordenadas de linha e coluna, tal como
demonstrado abaixo.
astrCustomerList (cCustomerPhone, 2)
No entanto, para processar matrizes multidimensionais com grandes quantidades de dados, será necessário para
'************************************************* ************************
'Seção de inicialização
Option Explicit
cCustomerNo = 1 const
cCustomerPhone = 2
LoadArray ()
intArrayUpperBound
'Secção Procedimento
LoadArray função ()
O script começa definindo constantes para representar cada coluna numa matriz bidimensional. Em seguida,
as variáveis a serem utilizados pelo roteiro são definidos, seguindo-se a definição de uma matriz
bidimensional. Então o LoadArray () função é executada. Esta função atribui valores a cada elemento da matriz.
Finalmente, um circuito é configurado para processar o conteúdo da matriz. o Ubound () função é usada para
determinar a fronteira superior de segunda dimensão da matriz (o comprimento da dimensão de coluna). UMA Para
laço é então configurado para processar todos os elementos da matriz
ARRAYS capítulo 5 109
NOTA
A sintaxe do LimiteSup () função quando utilizados para trabalhar com matrizes multidimensionais é mostrado abaixo:
ArrayName especifica a matriz a ser testado. o Dimensão parâmetro é opcional. Quando utilizado, o dimensão parâmetro
especifica a dimensão de matriz cujo limite superior deve ser devolvido. Especificar um para a primeira
dimensão, 2 para a segunda dimensão, e assim por diante.
matriz que pode ser redimensionado durante a execução do script, o que significa que o seu tamanho pode ser
aumentado ou diminuído.
Dim astrCustomerList ()
Isto permite-lhe voltar mais tarde em seu script e redimensionar o tamanho da matriz usando o ReDim declaração,
como segue.
Neste exemplo, a astrCustomerList matriz tiver sido redimensionado para que ele possa armazenar cinco
elementos. Outra opção quando se trabalha com matrizes dinâmicas é defini-los inicialmente com o ReDim declaração
em vez da escurecer declaração. Esta opção permite-lhe atribuir um tamanho inicial para a matriz. Não há
limite para o número de vezes que uma matriz dinâmica pode ser redimensionada.
No caso deste exemplo, a matriz astrCustomerList é redimensionada para permitir que ele armazene 50 elementos
sem fazendo-a perder quaisquer dados que ele continha antes de ser aumentado em tamanho.
NOTA
Se você redimensionar uma matriz dinâmica, tornando-a menor, todos os dados armazenados nos elementos do array que
foram removidos são perdidos, mesmo se você usar o Preservar palavra-chave quando o redimensionamento da matriz. Por
exemplo, se você definir uma matriz dinâmica de dimensão única, atribuir 10 elementos a ele, e depois redimensioná-la de
modo que só pode armazenar 5 elementos, em seguida, os últimos 5 elementos na matriz serão perdidos.
ARRAYS capítulo 5 111
O exemplo a seguir fornece uma demonstração simples de como redimensionar uma matriz dinâmica.
***********************************
'Seção de inicialização
Option Explicit
DimTheArray ()
ReDimTheArray ()
DisplayResults ()
'Secção Procedimento
Função DimTheArray ()
ReDimTheArray função ()
End Function
DisplayResults () função
MsgBox strMessage, “Redimensionar uma matriz” & Space (25) End Function
Três declarações na Seção de Processamento Principal do script controlar a execução global do script
apelando três funções localizado na seção de Procedimento. o DimTheArray () função define uma matriz
dinâmica de dimensão única, com um tamanho inicial de três elementos. Em seguida, atribui valores a cada um
desses elementos. Em seguida, o ReDimTheArray () função executa. Esta função redimensions o tamanho da
matriz para permitir que ele armazenar até cinco elementos. o Preservar palavra-chave está incluído, a fim de
garantir que nenhum dados atualmente armazenados na matriz está perdido. A função, então atribui valores
para os dois novos elementos de matriz. A última função que é executada é DisplayResults (). Ele usa um For Each
... Next loop para processar o conteúdo da matriz recentemente expandido de modo que possa visualizar o seu
O exemplo anterior demonstra como redimensionar uma matriz dinâmica com base no pressuposto de que você sabe
de antemão qual é o tamanho da matriz terá de ser expandido para. No entanto, em muitos casos, você não vai saber
com antecedência o quão grande a matriz dinâmica deve ser. Este exemplo a seguir demonstra como escrever um
script que redimensiona dinamicamente uma variedade cada vez que um novo elemento é adicionado. Isto permite
que o script de aumentar o tamanho da matriz, conforme necessário para acomodar qualquer quantidade de dados é
necessária.
ARRAYS capítulo 5 113
************************************** ***********************************
'Seção de inicialização
Option Explicit
CollectInputData ()
ProcessInputData ()
'Secção Procedimento
Função CollectInputData ()
Dim ii =
Saia Do
End If
114 parte I Apresentando o Microsoft VBSCRIPT
i=i+1
laço
End Function
Função ProcessInputData ()
Dim ii =
MsgBox strMessage
End Function
O script começa definindo as suas variáveis e definir uma matriz chamada astrCustomerList com um
tamanho inicial de 0. Isto permite que a matriz para armazenar um único elemento. A lógica controle do
script está localizado na Seção de Processamento Principal, e consiste em duas chamadas de função. A
primeira função chamada é CollectInputData (). Esta função usa um Fazer enquanto circuito para controlar os
dados collection.The VBScript Caixa de entrada() função é usada para coletar a entrada de texto do usuário.
A coleta de dados ocorre até que o usuário digita a palavra Sair. o Ucase ()
função é utilizada para testar cada pedaço de dados digitados pelo usuário para procurar a palavra
Sair. Cada vez que uma nova entrada é digitado, o script atribui a ele como o último elemento na matriz e, em seguida,
GORJETA
o Ucase () função pode ser usada para converter texto em todas as letras maiúsculas. Isso permite que você execute uma
comparação todo o texto em maiúsculas sem se preocupar com o caso em que o usuário utiliza. Por exemplo, no script
anterior, o usuário pode digitar Desistir, desistir,
ou Sair para terminar o processo de entrada de dados.
ARRAYS capítulo 5 115
A última função chamada no script usa um For Each ... Next loop para processar cada elemento armazenados na matriz,
A matriz definida por esta declaração pode ser visto como uma tabela composta por três colunas e três linhas. No
entanto, uma vez que apenas a última dimensão de uma matriz multidimensional pode ser redimensionada, apenas
os elementos armazenados na segunda dimensão da matriz pode ser resized.To redimensionar a matriz para conter
dados adicionais, você pode aumentar o tamanho de sua segunda dimensão como demonstrado abaixo.
Esta declaração permite-lhe expandir o tamanho da segunda dimensão para armazenar 10 elementos.
◆ Para evitar a perda de dados quando redimensionar uma matriz multidimensional, você
pode adicionar o Preservar palavra-chave para o ReDim declaração, mas ao fazê-lo, você limita a capacidade
apagar Arrays
VBScript fornece a capacidade de apagar o conteúdo de uma matriz usando o Apagar
declaração. A sintaxe deste comando é descrito abaixo.
apagar arrayname
o Apagar declaração apaga o conteúdo de um array estático, mas não reduz o tamanho dos array.When usada
para apagar uma matriz dinâmica, o Apagar declaração apaga o conteúdo do array e desaloca todo o
armazenamento utilizado pela matriz, liberando assim memória.
Por exemplo, a seguinte declaração apaga o conteúdo de uma matriz chamada astrCustomerList.
apagar astrCustomerList
VBScript fornece duas funções que são úteis ao trabalhar com matrizes. Estas funções são brevemente
abaixo definido.
array ( arglist)
Arglist é uma lista separada por vírgulas de elementos a serem armazenados na matriz. E se
arglist é omitido, então um conjunto de comprimento zero está configurada. Caso contrário, o tamanho inicial da
astrCustomerList = Array ( “ABC Corp”, “XYZ Inc”, “Acme Co.”, “L & F Inc”, “IV World”)
ARRAYS capítulo 5 117
o Array () função permite reduzir o número de instruções necessárias para criar pequenas matrizes. Por
exemplo, a matriz acima poderia ter apenas como facilmente sido definido como mostrado abaixo.
Exceto para matrizes, variáveis de VBScript são escalar, o que significa que eles só contêm um valor. Se um
VBScript tenta usar uma função relacionada com a matriz, tais como
LimiteSup () ou LBound () contra uma variável escalar, ocorre um erro, terminando a execução do script. Um
erro também ocorrerá se o script tentativas para tratar uma variável escalar como uma matriz especificando
um número de índice ao fazer referência a isso. Uma maneira de se proteger contra acidentalmente tentar
tratar uma variável escalar como se fosse uma matriz é a primeira prova-lo usando o IsArray () função. A sintaxe
Por exemplo, as seguintes declarações definir uma matriz e, em seguida, demonstram como o uso IsArray
() função.
(astrCustomerList) Se x = “True”, em
seguida,
resumo
Neste capítulo, você aprendeu a trabalhar com uma única dimensão e arrays multidimensionais. Você também
aprendeu a trabalhar com arrays estáticos e dinâmicos. Além disso, você aprendeu técnicas diferentes para o
processamento de conteúdo da matriz, incluindo como acessar os dados armazenados nas células da matriz
específicas e como criar loops que iteratively processar o conteúdo de uma matriz inteira. Outros tópicos abordados
neste capítulo incluído como redimensionar matrizes, bem como a forma de ambos preservar e apagar seu
conteúdo.
Capítulo 6
Recolha de Dados,
Notificação e Relatório
de Erros
Eu n Neste
funções exibemcapítulo,
caixas devocê aprenderá
diálogo pop-upcomo o VBScript
que podem ser utilizados
Caixa depara e MsgBox
recolher
entrada() entrada() do utilizador e para
exibir a saída. Você também vai aprender a controlar a apresentação do texto dentro destas caixas de diálogo
pop-up, bem como a forma de interrogar a entrada especificada pelo usuário. Além disso, este capítulo irá apresentar
informações sobre tratamento de erros, incluindo como gerar mais mensagens de erro amigáveis.
NOTA
o Janela e Documento objetos são objetos do navegador. o Janela objeto representa a janela do navegador
aberta no momento ou quadro. o Documento objeto representa a página HTML carregado no momento. Mais
informações sobre esses objetos está disponível no Capítulo 8, “VBScript e Internet Explorer.”
Método Descrição
Janela Alerta Exibe o texto em uma caixa de diálogo pop-up que exibe um Está bem botão
Pronto Exibe o texto em uma caixa de diálogo pop-up que exibe um campo e de entrada de texto Está
confirme Exibe uma mensagem de texto em uma caixa de diálogo pop-up e requer a
Cancelar botão
Quando desenvolver scripts para o WSH, os programadores têm a opção de exibir a saída usando
métodos fornecidos pelo WScript e WshShell objetos. Estes métodos são especificados abaixo.
NOTA
o WScript e WshShell objetos são objetos WSH. o WScript objecto é o objecto de mais alto ou pai para
outros objectos WSH. o WshShell objeto fornece acesso a métodos e propriedades que podem ser usados
para acessar o sistema Windows arquivo, registro e outros recursos do Windows. Mais informações sobre
esses objetos está disponível no Capítulo 9, “VBScript eo WSH.”
Além das opções de saída específicas do ambiente fornecidos pelo Internet Explorer eo WSH, o
VBScript fornece um par de funções que estão sempre disponíveis para a exibição de saída e recolher
a entrada do usuário. Estas duas funções são descritas abaixo.
◆ Caixa de entrada(). Exibe uma caixa de diálogo pop-up que recolhe a entrada de texto de
◆ MsgBox (). Exibe uma caixa de diálogo pop-up que contém uma mensagem de texto,
entrada() e MsgBox () funções serão mais explorados durante todo o restante deste capítulo.
O InputBox () Função
o VBScript Caixa de entrada() função fornece a capacidade de solicitar que o usuário digite a entrada de dados
durante o roteiro execution.This permite desenvolver scripts que podem interagir diretamente com o usuário. o Caixa
de entrada() função exibe uma caixa de diálogo pop-up que tem os seguintes recursos:
122 parte I Apresentando o Microsoft VBSCRIPT
Resposta é uma variante com um subtipo de cadeia que armazena o texto fornecido pelo usuário. Pronto é
uma mensagem de texto até 1.024 caracteres, que fornece instruções e orientações para o usuário. Titlebarmsg
é opcional. Quando fornecido, ele exibe seu texto na barra de título da caixa de diálogo pop-up do. Se
omitido, a palavra “VBScript” será exibido na barra de título. Padrão é opcional. Quando usado, ele fornece
uma resposta padrão que é exibido automaticamente no campo de texto na caixa de diálogo pop-up do. posx
e yPos são medições opcionais especificados como twips. Quando usado, posx especifica a distância do lado
esquerdo da tela para o lado esquerdo da caixa de diálogo pop-up. yPos especifica a distância do topo da
caixa de diálogo pop-up para o topo da tela. Helpfile e Contexto são opcionais. Eles especificar a localização
de um arquivo externo, onde a ajuda sensível ao contexto está disponível.
NOTA
Twip é uma medição de espaço e representa 1/20 de um ponto ou de 1/1440 de uma polegada.
strUserName)
A primeira declaração neste exemplo exibe a caixa de diálogo pop-up mostrado na Figura 6.1. Como você
pode ver, ele exibe uma mensagem e espera que o usuário a qualquer tipo em um nome e clique no botão
OK ou cancelar a operação clicando no botão Cancelar.
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 123
Figura 6.1 usando o Caixa de entrada() funcionam para recolher dados de entrada do utilizador
o Caixa de entrada() função retorna o texto digitado pelo usuário quando o botão OK é clicado. No entanto,
se o usuário clica em OK sem digitar qualquer texto, ou se o usuário clica no Cancelar botão, uma cadeia de
comprimento zero é retornado (isto é, “”).
No exemplo anterior, os dados digitados pelo usuário é salvo como uma variante com um subtipo corda em
uma variável chamada strUserName. A Figura 6.2 mostra a caixa de diálogo pop-up exibida pela segunda
instrução mostrada acima.
Caixa de entrada() parâmetros de função são sensíveis de posição. Se você não usar um parâmetro específico,
você deve substituir uma vírgula, a fim de continuar a adicionar outros parâmetros que seguem o parâmetro
omitido. Por exemplo, as seguintes declarações exibir a caixa de diálogo pop-up apresentados na Figura 6.3.
Este exemplo irá exibir uma mensagem e uma resposta padrão sem especificar qualquer texto de mensagem
para exibição na barra de título da caixa de diálogo pop-up do.
NOTA
Se você omitir o titlebarmsg parâmetro ao usar o Caixa de entrada() função, VBScript irá exibir a palavra
“VBScript” na barra de título da caixa de diálogo pop-up do.
124 parte I Apresentando o Microsoft VBSCRIPT
FIGURA 6.3 usando o Caixa de entrada() função para exibir uma caixa de diálogo pop-up com uma resposta padrão
Validação de entrada
Os usuários podem ser completamente imprevisível. Por isso, é essencial que você interrogar e validar todos os
dados retornados pelo Caixa de entrada() função para garantir que ele está em conformidade com as exigências de
seus VBScripts. Por exemplo, você pode escrever um script em que você pretende coletar o nome do usuário.
No entanto, em vez de digitar um nome, o usuário pode executar uma das seguintes ações:
Cada uma destas acções resulta em uma cadeia de comprimento zero. As declarações a seguir
demonstram como verificar a presença de dados ao usar o Caixa de entrada()
função.
Se strUserName = “” Then
A segunda instrução verifica para ver se os dados retornados pelo Caixa de entrada() função e
armazenado como strUserName é igual a “”.
O exemplo a seguir mostra outra maneira de ver se o utilizador tem quaisquer dados fornecidos para o Caixa
de entrada() função.
strChoice = InputBox ( “O que você prefere: jogos, utilitários ou outros?”) Se Len (strChoice) = 0 Then
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 125
Neste exemplo, o VBScript Len () função é usada para ver se o valor armazenado no strChoice é de
comprimento zero. Às vezes, pode ser apropriado para fornecer uma resposta padrão no caso em que o
usuário não fornecer quaisquer dados, como demonstrado abaixo.
strChoice = InputBox ( “O que você prefere: jogos, utilitários ou outros?”) Se Len (strChoice) = 0 Then
Neste exemplo, o valor de strChoice é automaticamente definida igual a De outros no caso em que o usuário
não digitar quaisquer dados. Haverá momentos em que fornecem uma resposta padrão não será suficiente.
Nestas circunstâncias, você pode envolver o
Caixa de entrada() função dentro de um loop que itera até que o utilizador fornece uma resposta adequada. Por
exemplo, as seguintes declarações usar um Fazer enquanto loop para forçar o utilizador escrever Sair quando
solicitado pelo Caixa de entrada() função de modo a sair do ciclo.
Saia Do
End If
laço
Neste exemplo, a UCase () função é usada para converter todas as respostas do usuário para maiúsculas. A
resposta do usuário é verificada para ver se a entrada correta foi fornecida.
VBScript fornece ferramentas para controlar o formato da mensagem de aviso exibida pelo Caixa de
entrada() função. Você pode usar qualquer uma das constantes VBScript listadas na Tabela 6.2 para
Descrição
vbCrLf & vbTab & “- escolhas -” & vbCrLf & vbCrLf & _ “1. Ver informações de
copyright.”& VbCrLf & _“2. Ver informações sobre o script.”& VbCrLf & _“3. Exibir
Caso 1
Else
A coerção de dados
VBScript só suporta o tipo de dados variante. No entanto, ele suporta vários subtipos variantes. VBScript
faz o seu melhor para determinar o tipo de dados armazenados em uma variável, a fim de associá-lo com
o subtipo de dados correto. Às vezes VBScript não vai identificar o subtipo dados da maneira em que você
deseja. Para remediar esta situação, o VBScript fornece duas maneiras de mudar subtipos de dados,
coerção implícita e coerção explícita.
coerção implícita
o Caixa de entrada() função só retorna dados de cadeia, independentemente do que o usuário entra no seu campo de
texto. No entanto, o VBScript fornece maneiras de contornar isso. Na maioria dos casos, VBScript é capaz de converter
automaticamente os dados armazenados em variáveis como exigido pela situação. Por exemplo, se um utilizador entra
o número 66 como entrada no campo de texto de um Caixa de entrada() caixa de diálogo pop-up, VBScript irá tratá-lo
como uma string equivalente a “66”. Se uma operação matemática é realizada que usa a variável, VBScript irá converter
coerção implícita.
Usando coerção implícita, o seguinte VBScript é capaz de converter automaticamente qualquer número digitado pelo
NOTA
o VBScript Digite o nome() função utilizada no exemplo anterior retorna uma cadeia de caracteres que exibe o subtipo da
variável especificada. o Digite o nome() função pode retornar qualquer um dos seguintes cadeias.
◆ Byte
◆ número inteiro
◆ Longo
◆ solteiro
◆ em dobro
continuou
128 parte I Apresentando o Microsoft VBSCRIPT
NOTA ( contínuo)
◆ Moeda
◆ Decimal
◆ Encontro
◆ Corda
◆ boleano
◆ Esvaziar
◆ Nulo
◆ Objeto
◆ Desconhecido
◆ Erro
Quando executado, o segundo declaração neste exemplo apresenta o resultado mostrado na Figura 6.4,
provando que o Caixa de entrada() função sempre retorna um valor string.
A terceira linha do script executa uma operação matemática, acrescentando 100 para o número
digitado pelo usuário. Usando coerção implícita, VBScript converte automaticamente o valor da variável
para uma variante com um subtipo da dupla. A saída exibida pela última linha no script, mostrado na
figura 6.5, mostra que a variável tenha sido convertida.
FIGURA 6.5 VBScript tenta automaticamente para converter uma variável a partir de um subtipo ao outro, conforme necessário pela situação
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 129
coerção explícita
Enquanto VBScript faz o seu melhor para ajustar automaticamente o subtipo de uma variável como cada
situação exige, pode haver ocasiões em que ele não consegue fazer o ajuste como se poderia esperar. Quando
isso acontece, você pode tentar usar coação explícita para forçar a conversão subtipo. VBScript fornece um
grande número de funções de conversão, como listados na Tabela 6.3.
Descrição
(intUserNumber) = 1, então
o Caixa de entrada() função é usada para solicitar que o usuário digite um valor entre 0 e 9. Para se certificar
de que o usuário digita um número e não uma letra ou caractere especial, o IsNumeric () função é usada. Se
um número é digitado, então o valor retornado por essa função será igual a Verdade. Neste caso, o CInt () função
é usada para coagir explicitamente o valor de entrada para um valor inteiro. Embora não seja estritamente
necessário, neste exemplo, o uso do CInt () função torna as intenções do programador mais clara.
NOTA
o IsNumeric () função retorna um valor booleano que determina se ou não o valor testado é um
número.
tipo incompatível
Se VBScript tenta executar uma operação em uma variável que não é suportado pelo seu subtipo, ocorre
um erro. VBScript não pode realizar uma comparação aritmética dos dados não numéricos. Por exemplo, o
seguinte script solicita ao utilizador que introduza um valor numérico entre 1 e 9.
Se intAnswer> 0 Then
Se o usuário digitar um número entre 1 e 9, é apresentada uma mensagem. Se o usuário digitar um número fora
deste intervalo, nada acontece. No entanto, se o usuário digitar uma letra ou caractere especial, em vez de um
valor numérico, um erro de incompatibilidade de tipo ocorre, como demonstrado na Figura 6.6.
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 131
FIGURA 6.6 Um erro de incompatibilidade de tipo ocorre quando VBScript tenta executar uma operação em uma variante que não é
suportado pelo seu subtipo
Para evitar a ocorrência de erros de incompatibilidade de tipo, você precisa executar validation.This entrada
normalmente envolve variáveis de teste para determinar a sua atribuição subtipo usando o Digite o nome() função
ou qualquer das funções de teste subtipo listadas na Tabela 6.4.
Descrição
IsArray Retorna um valor de Verdade ou Falso com base em se a variável especificada é uma matriz
IsDate Retorna um valor de Verdade ou Falso com base em se a variável especificada é uma data
Está vazia Retorna um valor de Verdade ou Falso com base em se a variável especificada foi inicializado
isFinite Retorna um valor de Verdade ou Falso com base em se o número especificado é finito
IsNaN Retorna um valor de Verdade ou Falso com base em se a variável especificada tem o NaN ( não um
número) valor
É nulo Retorna um valor de Verdade ou Falso com base em se a variável especificada contém quaisquer dados
IsNumeric Retorna um valor de Verdade ou Falso com base em se a variável especificada é numérico
132 parte I Apresentando o Microsoft VBSCRIPT
O MsgBox () Função
o Caixa de entrada() função fornece uma maneira conveniente de coletar dados cujo valor não pode ser determinado
com antecedência de usuários. Muitas vezes, porém, você precisa apresentar ao usuário uma gama limitada de
opções entre as quais você deseja permitir apenas uma seleção. Você pode realizar este tipo de interação com o
função. Como o Caixa de entrada() função, você pode usar as constantes string VBScript para controlar
a apresentação do texto exibido pelo MsgBox () função. Além disso, você tem controle sobre quais os
tipos de botões e ícones são exibidos.
Pronto é uma mensagem de texto até 1.024 caracteres, que fornece instruções e orientações para o usuário. botões
é uma especificação do valor que botões e ícones devem aparecer na caixa de diálogo pop-up. Titlebarmsg é
opcional. Quando fornecido, ele exibe seu texto na barra de título da caixa de diálogo pop-up do. Se omitido, a
palavra “VBScript” será exibido na barra de título. Helpfile e Contexto são opcionais. Eles especificar a
localização dos arquivos externos onde a ajuda sensível ao contexto está disponível. o MsgBox () função
fornece a capacidade de personalizar quatro recursos de caixa de diálogo pop-up. Estas características são
descritos abaixo.
Cada uma dessas opções é descrito nas tabelas que se seguem. Você tem a oportunidade de especificar
uma opção de cada tabela ao usar o MsgBox () função para exibir uma caixa de diálogo pop-up box.Table 6,5
listas os diferentes botões que podem ser exibidos pela MsgBox () função.
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 133
Valor Descrição
O exemplo a seguir demonstra como criar uma caixa de diálogo pop-up que exibe um botão OK.
Alternativamente, você pode substituir o valor numérico do vbOKOnly constante, como mostrado abaixo.
Tabela 6.6 lista os diferentes ícones que podem ser exibidos pela MsgBox () função.
Figura 6.7 usando o MsgBox () função para exibir uma caixa de diálogo pop-up com um Está bem botão
134 parte I Apresentando o Microsoft VBSCRIPT
Valor Descrição
O exemplo a seguir demonstra como criar uma caixa de diálogo pop-up que exibe Está bem e Cancelar botões,
bem como o ícone de interrogação.
O formato do primeiro exemplo é o mais claro e mais fácil de ler. Independentemente de qual dos formatos
acima que você usa, a saída mostrada na Figura 6.8 será sempre o mesmo.
Figura 6.8 usando o MsgBox () função para solicitar ao usuário para obter instruções
Tabela 6.7 fornece uma lista de constantes que você pode usar para especificar o botão padrão uma caixa de diálogo
pop-up do.
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 135
Valor Descrição
O exemplo a seguir demonstra como criar uma caixa de diálogo pop-up que exibe Sim não, e Cancelar
botões. Além disso, o Cancelar botão foi configurado como o botão padrão.
Figura 6.9 mostra como a caixa de diálogo pop-up aparece quando esta instrução é executada.
FIGURA 6.9 usando o MsgBox () função para apresentar o usuário com várias opções
Tabela 6.8 fornece uma lista de constantes que você pode usar para especificar a modalidade de uma caixa de
Valor Descrição
vbSystemModal 4096 Usuário deve responder antes que o script pode continuar. Além disso, a
ativos.
136 parte I Apresentando o Microsoft VBSCRIPT
O exemplo a seguir demonstra como criar uma caixa de diálogo pop-up que exibe tentar novamente e Cancelar
botões, bem como o ícone de ponto de exclamação. Além disso, o botão Cancelar foi configurado como
o botão padrão ea caixa de diálogo pop-up foi definido como o modelo de aplicação.
vbApplicationModal
Figura 6.10 mostra como a caixa de diálogo pop-up será exibida quando esta instrução é executada.
Figura 6.10 usando o MsgBox () função para criar uma caixa de diálogo modal aplicativo pop-up
resultados interrogando
Para determinar qual botão o usuário clicou, você precisa usar o MsgBox () função, tal como
demonstrado abaixo.
“Confirmação de diálogo”)
Valor Descrição
inválido, e recursos do sistema indisponíveis. VBScripts terminar automaticamente a sua execução e exibe uma
mensagem de erro quando ocorre um erro. Com bom planejamento e testar a maioria, mas não todos, os erros podem
ser eliminados. Infelizmente, os erros VBScript tendem a ser bastante enigmática e só servem para confundir a
No Capítulo 2, “Erros, constantes e variáveis,” você aprendeu sobre erros de sintaxe VBScript. Outra categoria de
erros que podem ocorrer dentro de VBScripts é executado em tempo erros. Run-Time erros ocorrem quando uma
instrução VBScript tenta executar uma ação inválida, como tentar aceder a uma unidade de disco rígido caiu. Erros
de tempo pode ser difícil de rastrear porque, ao contrário erros de sintaxe, eles não são detectados
automaticamente durante a interpretação script. Em vez disso, só ocorrem se a parte do código que os contém é
executado. A menos que cada parte de um VBScript é testado, é possível que os erros em tempo de execução não
pode ser capturado. Em muitos casos, você pode adicionar lógica de programação a seus VBScripts que antecipa
e recupera de erros em tempo de execução. No entanto, haverá ocasiões, como quando uma unidade de disco
falha ou a rede vai para baixo, que estão além de sua capacidade de controlar ou prever. Nestas circunstâncias, o
melhor que você normalmente pode fazer é apresentar o usuário com uma mensagem de erro personalizada que
explica claramente por que o script terminou sem cumprimento da sua missão.
138 parte I Apresentando o Microsoft VBSCRIPT
automatizar rapidamente a execução de uma tarefa comum particular. Nestas circunstâncias, muitas vezes é melhor
para omitir qualquer lógica de tratamento de erros e permitir erros para ocorrer de forma simples, uma vez que o
tempo necessário para antecipá-los e escrever código que tenta lidar com eles seria proibitivo. Isso geralmente é
aceitável quando os programadores a desenvolver pequenos scripts utilitários que só eles vão usar. No caso em que
os scripts serão compartilhadas com outros usuários, podem ser fornecidas instruções que perguntar ao usuário para
intTotal + intNoThree
MsgBox intTotal
Tudo funciona corretamente se o usuário digita em três números, conforme solicitado. Mas muitas vezes os
usuários não se comportam como esperado. Se, por exemplo, o usuário digita o número 3 seguido do número
3 e, em seguida, a palavra três, um erro de tempo de execução ocorreria. No entanto, se você modificar o
script, adicionando a seguinte declaração como sua primeira linha, VBScript irá ignorar o erro e exibir um valor
de 6 (isto é, o valor de intTotal antes da declaração onde ocorreu o erro).
Embora por vezes eficaz, esta abordagem deve ser usado com cautela. Há poucas situações em
que ignorando um erro em uma parte de um script não resulta em outro erro mais tarde na execução
do script. Além disso, haverá alguns erros
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 139
que a declaração não será capaz de ignorar e evitar de terminar a execução do script.
Quando adicionado ao início de um script, o On Error Resume Next declaração está em vigor para todo
o script. Se desejar, você pode depois desativar os efeitos dessa declaração; você pode fazê-lo
adicionando a seguinte declaração para o seu VBScript:
Em GoTo erro 0
NOTA
Assim como as variáveis, você pode localizar os efeitos da On Error Resume Next declaração de
procedimentos. Isto proporciona-lhe a capacidade de limitar os efeitos dessa declaração para partes do
script que pode ser útil sem afetar o comportamento de todo o script.
A fim de criar rotinas de tratamento de erros, você precisa saber como trabalhar com o VBScript Errar objeto.
Este objeto VBScript fornece acesso a mensagens de erro, bem como aos métodos que podem ser usados
para lidar com eles. o Errar objeto tem três propriedades que fornecem as seguintes informações sobre um
evento de erro:
Cada uma dessas propriedades podem ser modificadas, o que lhe permite reformular-los e torná-los mais
compreensíveis antes de permitir que eles sejam exibidos para o usuário. O exemplo a seguir demonstra como
criar uma rotina personalizada de tratamento de erros.
BogusProcedure ()
Se Err> 0, em seguida,
Err.Number = 9000
“Procedimento que não foi definido pelo programador.” MsgBox “Erro:“& Err.Number &
O primeiro passo na criação de um manipulador de erro é adicionar o On Error Resume Next declaração para o
início do script ou procedimento. Em seguida, você deve adicionar uma declaração que verifica a existência de
um erro imediatamente após uma declaração onde você acha que pode ocorrer um erro. Você pode verificar
se há um erro específico ou por qualquer erro ao determinar se o número de erro atribuído ao erro Err.Number é
maior que 0. Você pode verificar se há erros em qualquer ponto do seu VBScript, onde você acha que eles
podem ocorrer e tomar ações diferentes com base em cada situação. No caso do exemplo anterior, o
manipulador de erro fornece o usuário com uma mensagem de erro mais descritiva.
FIGURA 6.11 VBScript fornece a capacidade de reconhecer e reagir aos eventos de erro
800A0006 6 Transbordar
800A01B0 432 O nome do arquivo ou nome da classe não foi encontrado durante a operação de
automação
continuou
142 parte I Apresentando o Microsoft VBSCRIPT
800A01CA 458 Variável usa um tipo de automação não tem suportado no VBScript
800A01CE 462 A máquina servidor remoto não existe ou não está disponível
Limpando Erros
o Errar objeto fornece dois métodos que você vai achar útil. O primeiro método é o Claro() método. Se
ocorrer um erro em um script e é tratado, permitindo que o script para continuar, e depois ocorre um
novo erro, as informações sobre o novo erro irá substituir as informações armazenadas pela Errar objeto
sobre o erro anterior. No entanto, se o seu script verifica mais tarde para um erro e um novo erro não
ocorreu, as informações sobre o erro antigo será relatado novamente. para pré-
COLETA DE DADOS, notificação e relatório de erros Capítulo 6 143
desabafar este comportamento, utilize o Claro() método para excluir as informações para um erro previamente
tratada. Para usar o Claro() método, colocá-lo no final de sua rotina de tratamento de erros, como demonstrado
abaixo.
Se Err> 0, em seguida,
Err.Number = 9000
“Que não tenha sido definido pelo programador.” MsgBox “Erro:“& Err.Number &
NOTA
VBScript irá executar automaticamente o Claro() método quando o On Error Resume Next instrução é
executada. Ele também executa a Claro() método quando o
Exit Sub e Função Exit declarações executar.
levantando Erros
o Errar objeto de Levantar() método fornece a capacidade de simular erros ao testar seus manipuladores de erro. Para
utilizar este método, colocá-lo em seu código apenas antes de seu manipulador de erro, como demonstrado abaixo.
Err.Raise (92)
resumo
Este capítulo descreve os prós e contras de trabalhar com o VBScript Caixa de entrada() função.
Isto incluiu como formatar texto exibido dentro de caixas de diálogo pop-up, bem como a forma
de interrogar e validar os dados que o
Caixa de entrada() função de coleta. Você também aprendeu sobre VBScript variável implícita
144 parte I Apresentando o Microsoft VBSCRIPT
coerção e como executar manualmente coerção variável explícita. O capítulo coberto como trabalhar
com o MsgBox () função, incluindo uma revisão de como especificar botões, ícones, o botão padrão e
modalidade. Além disso, você aprendeu a determinar qual botão o usuário selecionado. Este capítulo
também mostrou como armadilha e mensagens de erro reformatação para torná-los mais descritivo e
compreensível para o usuário.
Capítulo 7
VBScript Objects
Eu n Neste capítulo, você irá examinar como VBScript interage com seu ambiente, trabalhando com
objetos. Isto incluirá um exame de built-in de VBScript e tempo de execução objetos, bem como uma lista
completa de propriedades e métodos associados dos objetos. Além disso, você vai ter uma breve visão geral
da importância de objetos em navegador e específicos do WSH. Você também vai aprender a criar seus
próprios objetos personalizados repleta de seus próprios conjuntos de propriedades e métodos.
Algumas propriedades são somente leitura, permitindo que VBScript para coletar informações sobre o recurso. Outras
propriedades podem ser modificadas, proporcionando assim a capacidade de alterar directamente alguma qualidade de
Por si só, VBScript tem recursos limitados. Ele não pode acessar os elementos da página HTML, o sistema de
arquivos do Windows, ou outros recursos do sistema. VBScript fornece apenas uma pequena coleção de objetos
embutidos. Estes objetos fornecem VBScript com a capacidade de reagir a erros e para analisar e extrair dados
de cordas. objetos embutidos do VBScript estão listadas na Tabela 7.1.
NOTA
coleção built-in de VBScript de objetos é fornecida pelo intérprete VBScript. Esses objetos estão disponíveis para
todos os VBScripts independentemente do ambiente no qual eles são executados.
VBSCRIPT OBJETOS Capítulo 7 147
Descrição
Jogos Colecção Uma coleção de expressão regular Combine objetos Propriedades: Este
eventos
IgnoreCase, Padrão
Coleção SubMatches Acessa somente leitura valores de cordas submatch expressões regulares
Este objeto não suporta quaisquer métodos Eventos: Este objeto não
Descrição
Ignorar caso recupera um boleano valor que indica se um padrão de pesquisa é sensível a maiúsculas
Método Descrição
RegExp Executar Realiza uma pesquisa de expressão regular contra uma string
RegExp Teste Realiza uma pesquisa de expressão regular contra uma string
VBSCRIPT OBJETOS Capítulo 7 149
Como a Tabela 7.1 mostra, VBScript fornece um número de objectos incorporados objects.These fornecer a
O objeto Err
Você já aprendeu a trabalhar com o built-in Errar objeto de volta no Capítulo 6, “Recolha de Dados,
Notificação e Relatório de Erros” Este objeto fornece acesso a tempo de execução informações de erro,
fornecendo acesso aos seguintes propriedades:
Além disso, este objeto fornece dois métodos para trabalhar com erros:
O objeto de classe
VBScript fornece suporte para um número de diferentes subtipos de dados, incluindo cordas e datas. VBScript também
suporta a estrutura de dados de matriz mais complexo. VBScript fornece a Classe objeto como um meio de criar uma
complexa estrutura de dados personalizado, ou objetos personalizados. Ao criar seus próprios objetos personalizados,
você pode encapsular funções de dados para criar novos objetos, que seus VBScripts pode acessar como quaisquer
outros objetos. Criação de objetos personalizados fornece seus scripts com uma ferramenta que ajuda
150 parte I Apresentando o Microsoft VBSCRIPT
assegurar a consistência dos dados, uma vez que permite definir os procedimentos para a validação e aplicação de
vez definido, esses objetos podem ser instanciado como um outro objeto. A sintaxe para esta afirmação é descrito
abaixo.
Afirmações
End Class
NOTA
Embora você pode permitir que as variáveis definidas dentro do Classe Classe ... End declaração para ter um
âmbito público, isso não é recomendado. Isso impede que você seja capaz de validar o valor atribuído à variável de
dentro do objeto. Em vez disso, é recomendável que você faça todas as variáveis privado e expô-los usando o Get
propriedade e Property Let afirmações. Dessa forma, você pode criar uma lógica de validação de dados em seu
objeto e garantir a integridade dos dados.
VBSCRIPT OBJETOS Capítulo 7 151
O exemplo a seguir demonstra como usar o Classe objeto para criar um objeto personalizado
chamado Cliente.
classe Cliente
strCustName privada
Property
propriedade StrCustName =
strnameAssignment End
DisplayName função
MsgBox (strCustName)
A primeira instrução define uma variável privada chamada strCustName. As próximas três instruções usar
essa variável para criar uma propriedade e torná-lo legível. As três declarações que se seguem fazem o
gravável propriedade. Finalmente, a última três instruções dentro do Classe Classe ... End declaração definir
uma função que vai servir como um método de objecto.
Agora que um novo objeto foi definido, você pode criar uma instância, como mostrado abaixo.
Dim objCustName
objCustName.DisplayName ()
152 parte I Apresentando o Microsoft VBSCRIPT
NOTA
Dados armazenados em objetos é destruído assim que o script termina. Isto tem um efeito um pouco limitante em seu valor. No entanto,
há uma série de maneiras para armazenar e recuperar dados do objeto. Por exemplo, quando se trabalha com o WSH, você poderia
escrever dados de objeto para um arquivo ou armazená-lo em uma variável do sistema. Da mesma forma, quando se utiliza VBScript no
desenvolvimento de páginas Web, você pode armazenar dados de objeto não sensíveis localmente em computadores clientes usando
cookies.
instância do objecto é destruído, proporcionando uma oportunidade para executar quaisquer tarefas de
limpeza necessários.
Uma vez adicionado um dentro Classe Classe ... End declaração, esses eventos será executado
automaticamente sempre que uma nova instância do objeto associado é criada ou destruída.
VBSCRIPT OBJETOS Capítulo 7 153
NOTA
Você pode criar uma nova instância de um objeto personalizado usando o Conjunto declaração eo
Novo palavras-chave, tal como demonstrado abaixo.
Da mesma forma, você pode destruir um objeto personalizado usando o Conjunto declaração.
Nada é uma palavra-chave VBScript que dissocia uma variável de objecto a partir de um objecto. Enquanto há outras
variáveis de objeto se referir ao objeto em questão, a memória usada para armazenar seus dados são liberados.
trabalhar com expressões regulares. UMA expressão regular é um padrão de texto composto por caracteres e
complexa e substituir operações. o RegExp objeto permite trabalhar com expressões regulares em VBScript. Para
adicionar um RegExp opor-se a seus VBScripts, você deve primeiro definir uma variável para representá-lo e, em
seguida, usar o Novo palavra-chave para instanciar que, como demonstrado abaixo.
Dim regExpObj
Por exemplo, as seguintes declarações demonstram como usar o RegExp opor-se a procurar uma cadeia
variável chamada strQuote e substituir uma ocorrência da palavra
criança.
regExpObj.Pattern = “menino”
(strQuote, “criança”)
As duas primeiras instruções neste exemplo definir e criar uma instância do RegExp objeto nomeado regExpObj.
A próxima linha usa o RegExp o projeto de padronizar
propriedade para definir um padrão de pesquisa. A declaração que se segue configura a string a ser
pesquisada. Finalmente, a última declaração no exemplo substitui a primeira ocorrência dos caracteres Garoto com
os personagens criança ( o valor atribuído ao Padrão RegExp propriedade).
O exemplo anterior substitui somente a primeira ocorrência do jogo padrão especificado. No entanto, você pode
modificar o padrão de pesquisa, como mostrado abaixo para procurar e substituir todos padrão corresponde na
seqüência de pesquisa.
regExpObj.Pattern = “menino”
regExpObj.Global = True
(strQuote, “criança”)
Como você pode ver, uma nova declaração foi adicionada para o exemplo, que usa o
Global propriedade do RegExp propriedade para substituir todas as instâncias correspondentes na seqüência de
pesquisa. VBScript também fornece uma série de metacaracteres que você pode usar quando se trabalha com a RegExp
objeto de padronizar propriedade. Por exemplo, as seguintes declarações executar uma substituição padrão usando um
intervalo de valores:
regExpObj.Global = True
O \ d metacharacter especifica que qualquer dígito deve ser usado como a string de substituição. No
caso deste exemplo, o número 8 é substituído com o número 1008. A Tabela 7.4 lista os
metacharacters suportados por VBScript expressões regulares.
Descrição
\ Define o próximo caractere como um caractere especial, uma referência para trás, um literal, ou um escape octal
( padronizar) Corresponde a um padrão e permite que o substring combinada a ser recuperada a partir do
Fósforos coleção.
x|y Fósforos X ou y
continuou
156 parte I Apresentando o Microsoft VBSCRIPT
Personagem Descrição
\s Corresponde a qualquer carácter espaço em branco (por exemplo, espaço, separador, forma-alimentação)
\ num Fósforos num, Onde num é um número inteiro positivo, em uma referência para trás para partidas capturados
\ NML Jogos valor de escape octal NML Onde n é um dígito octal na gama de 0-3 e m e eu são
dígitos octal na gama de 0-7
O teste () Método
o Teste() método permite verificar se uma string contém uma correspondência padrão. Ele tem a
seguinte sintaxe:
RegExp.Test ( corda)
VBSCRIPT OBJETOS Capítulo 7 157
regExpObj.Pattern = “menino”
True Then
Else
O Execute () Método
o RegExp objeto de Executar() método cria um Fósforos coleção de uma pesquisa de uma
expressão regular e tem a seguinte sintaxe:
RegExp.Execute (string)
********************************
'Seção de inicialização
Option Explicit
Dim regExpObj, strQuote, colMatchStmts, strDisplayText, intCount, Match Set regExpObj = New RegExp
CreateMatchesCollection ()
ProcessMatchesConnection ()
DisplayResults ()
'Secção Procedimento
Sub CreateMatchesCollection ()
'Use o objeto RegExp Execute () método para criar um corresponde coleção Set colMatchStmts =
Sub ProcessMatchesConnection ()
em colMatchStmts
'Construir uma string que exibe o local onde cada correspondência foi encontrada strDisplayText =
DisplayResults sub ()
'Mostrar os resultados
MsgBox “Número total de partidas =“& intCount & vbCrLf & vbCrLf & ‘’ & _
strDisplayText End
Sub
VBSCRIPT OBJETOS Capítulo 7 159
Neste exemplo, uma Fósforos recolha constituído por três Combine objetos é criada usando o RegExp objeto de Executar()
método. Cada um desses objetos jogo tem seu próprio conjunto de propriedades associadas, incluindo a FirstIndex propriedade,
que especifica a localização na seqüência de pesquisa, onde é encontrada uma correspondência. UMA For Each ... Next ansa
é, então, usado para montar uma cadeia de caracteres de exibição que mostra a localização de cada uma adequação
Figura 7.1 Processar os conteúdos de um Fósforos coleção criada pela RegExp objeto de
Executar() método
NOTA
Para mais informações sobre os modelos de objetos fornecidos pelo Internet Explorer, consulte o Capítulo 8,
“VBScript e Internet Explorer.”
NOTA
Para mais informações sobre o modelo de objeto WSH, consulte o Capítulo 9, “VBScript eo WSH.”
O segundo conjunto de objectos é referido como VBScript de tempo de execução objetos. Estes objectos são
fornecidos por uma DLL externa ( Dynamic Link Library) nomeado scrrun.dll.
Eles fornecem VBScript com a capacidade de acessar o sistema de arquivos do Windows. Além disso, os objectos
VBScript de tempo de execução incluem um objecto conhecido como um Dicionário objeto. o Dicionário objeto permite
armazenar dados em uma matriz associativa e para recuperar os dados armazenados nessa matriz usando as teclas em
vez de uma posição de índice, como é o caso de matrizes de VBScript regulares. objectos de tempo de execução do
Nome Descrição
Coleção Drives Fornece script com acesso a informações sobre as propriedades de localização de uma
Coleção arquivos Fornece scripts com acesso a arquivos armazenados em uma pasta especificada
arquivos: Drives
Coleção pastas Fornece scripts com acesso a pastas localizadas dentro de outro
Propriedades da pasta: Contagem,
ponto
Métodos: Adicionar
VBScript objetos de tempo de execução fornecidas pela oferta WSH uma extensa coleção de propriedades
properties.These fornecer informações sobre o sistema de arquivos do Windows e arquivos e pastas do Windows. Tabela
Propriedades Descrição
AtEndOfLine Retorna um valor de qualquer Verdade ou Falso com base em se o ponteiro do arquivo atingiu
AtEndOfStream Retorna um valor de qualquer Verdade ou Falso com base em se o fim de um TextStream
arquivo foi alcançado
DateLastAccessed Recupera a data e hora em que um arquivo ou pasta foi acessado pela última vez
data de modificação Recupera a data e hora em que um arquivo ou pasta foi modificada pela última vez
Drives estabelece uma Drives coleção que representa todas as unidades encontradas no computador
VBSCRIPT OBJETOS Capítulo 7 163
arquivos estabelece uma arquivos coleção para representar toda a Arquivo objetos localizados dentro de uma
pasta especificada
Está pronto Retorna um valor de qualquer Verdade ou Falso com base na disponibilidade da unidade
especificada
ParentFolder Retorna uma referência do arquivo especificado ou objeto pasta pai da pasta
Pasta raiz recupera o Pasta objecto associado com a pasta de raiz na unidade especificada
Nome curto Recupera o arquivo ou pasta especificada de nome curto 8.3 personagem
shortpath Recupera nome de caminho curto de um arquivo ou pasta associada a um arquivo ou nome de 8.3
personagem de pasta
subpastas estabelece uma Folders coleção composta pelas pastas localizadas dentro de uma pasta
especificada
Tamanho total Recupera um valor que representa o número total de bytes disponíveis em uma unidade
métodos em tempo de execução de VBScript fornecem a capacidade de acessar o sistema de arquivos do Windows; para
criar, modificar e apagar arquivos e pastas; e para criar e arquivos de texto processo. Tabela 7.7 contém uma lista
Método Descrição
Adicionar (dicionário) Adiciona um par de chaves e item para uma Dicionário objeto
CreateTextFile Cria um arquivo e um TextStream objeto para que ele pode ser lido
e escrito
DriveExists Retorna um valor de Verdade ou Falso com base em se existe uma unidade
Existe Retorna um valor de Verdade ou Falso com base em se existe uma chave em um Dicionário
objeto
O arquivo existe Retorna um valor de Verdade ou Falso com base em se o arquivo especificado pode
ser encontrada
FolderExists Retorna um valor de Verdade ou Falso com base em se a pasta especificada pode
ser encontrada
Unid Retorna uma matriz onde os itens em um Dicionário objeto são armazenados
OpenAsTextStream Abre um arquivo e recupera um TextStream objeto, a fim de fornecer uma referência
para o arquivo
OpenTextFile Abre um arquivo e recupera um TextStream objeto, a fim de fornecer uma referência
para o arquivo
Ler Retorna uma string contendo um número especificado de caracteres a partir de um TextStream
Arquivo
Arquivo
( continuou)
166 parte I Apresentando o Microsoft VBSCRIPT
com arquivos e o sistema de arquivos do Windows. A utilização destes objectos é coberto extensivamente em
partes III, IV, e V deste livro. Esta seção fornece uma revisão da Dicionário objeto. o Dicionário e o objeto FileSystemObject
objeto são os dois objetos em tempo de execução VBScript toplevel. o Dicionário objeto fornece a capacidade de
definir-se uma matriz associativa baseada em pares de chaves e de item. Em outras palavras, ao contrário de
matrizes tradicionais VBScript, que armazenam e recuperam dados com base na sua posição indexada dentro da
matriz, os itens armazenados em um Dicionário objeto são armazenados e recuperados usando uma chave. Essa
chave pode ser um número, uma string, ou qualquer um dos subtipos de dados suportados por VBScript. o Dicionário
objeto não até mesmo apoiar o uso de números de índice porque não armazenar itens com base em ordem. o Dicionário
objeto tem todas as vantagens de uma matriz, proporcionando uma maior flexibilidade no armazenamento e
recuperação de dados. Além disso, o Dicionário objecto proporciona um número de propriedades e métodos que
melhoram a sua capacidade para controlar os dados armazenados numa Dicionário objeto. o Dicionário objecto
objeto
◆ Chave. Acrescenta uma chave em um Dicionário objeto Além disso, o Dicionário objeto fornece
objeto
◆ Deletar tudo. Remove todos, pares de chaves item de uma Dicionário objecto Para melhor
demonstrar a aplicação do Dicionário objeto, considere o seguinte exemplo. Para adicionar uma
instância da Dicionário opor a uma VBScript, você deve primeiro definir uma variável pelo qual pode ser
referenciado e, em seguida, criar uma instância do objeto.
Dim dicObject
Uma vez instanciado, você pode então armazenar itens no objeto, juntamente com suas chaves associadas, como
demonstrado abaixo.
“OctReports.txt”
método. O primeiro argumento especificado é a chave que é para ser associado com os dados, que se segue
como o segundo argumento. A última declaração acrescenta um terceiro pedaço de dados usando o Item() propriedade,
demonstrando assim que se você faz referência um par chave / item que não existe, VBScript irá adicioná-lo
automaticamente para você. Depois de ter preenchido o seu Dicionário objeto com dados, você pode voltar e
trabalhar com os seus dados. Por exemplo, as seguintes declarações usar o Existe()
Método para determinar se existe um par de chaves / produto. Se isso acontecer, então o Item()
Remoção de pares de chave / item de uma Dicionário objeto é tão fácil quanto adicionar-las. Por
exemplo, a seguinte declaração mostra como usar o Remover()
método para excluir um elemento de dados usando sua chave associada:
DicObject.Remove “Sep2003Rpt”
Alternativamente, se você preferir para apagar todos os dados armazenados em um Dicionário objeto, você pode fazer isso
DicObject.RemoveAll
resumo
Neste capítulo, você foram apresentados com uma lista completa de built-in de VBScript e objetos em tempo
de execução. Além de analisar estes objetos e suas propriedades e métodos associados, você aprendeu a
criar seus próprios objetos personalizados. Você também aprendeu a criar uma matriz associativa usando o Dicionário
opor ao desenvolver VBScripts que funcionam com o WSH. Outras modelos de objetos também foram
discutidas, incluindo aqueles fornecidos pelo Internet Explorer eo WSH.
Capítulo 8
VBScript e Internet
Explorer
Eu n capítulos anteriores, você aprendeu o básico de programação VBScript e foram introduzidas para objetos
de tempo de execução incorporado e do VBScript. Este capítulo se concentra sobre as especificidades dos dois
modelos de objetos fornecidos para VBScript durante a execução dentro do Internet Explorer. Como você verá,
esses objetos fornecê-lo com a capacidade de desenvolver scripts que podem interagir com objetos do navegador
usando métodos do objeto navegador e propriedades. Isso permite que você abrir e fechar as janelas do
navegador, exibir mensagens pop-up, validar a entrada forma, criar efeitos visuais, e controlar inúmeros outros
aspectos da experiência dos usuários quando eles estão visitando suas páginas da Web. Este capítulo também vai
discutir eventos baseados em navegador e como desenvolver código que pode reagir a eles, a fim de tornar suas
páginas Web mais interativa.
Claro, você sempre pode desenvolver seus scripts com base no menor denominador comum (o
menor versão do Internet Explorer que você pretende apoiar), mas isso significa perdendo muitos
dos recursos disponibilizados no Internet Explorer versão 6. Tal é o caminho da a Internet.
Felizmente, se você é desen-
VBScript e INTERNET EXPLORER Capítulo 8 171
volvimento suas páginas da Web para executar em uma intranet corporativa, você costuma encontrar que todos os
usuários estão executando a mesma versão do Internet Explorer. Isso permite que você desenvolva VBScripts com base
nos recursos e funcionalidades suportadas pelo que determinada versão browser. Alternativamente, você pode
desenvolver diferentes versões de suas páginas da Web, adicione código para testar o tipo de navegador de cada
NOTA
Desde a escrita deste livro, a Microsoft lançou quatro diferentes versões principais do Internet Explorer que
suportam VBScript (versões 3.x, 4.x, 5.x, 6.x). Todos os scripts que você vê neste livro foram desenvolvidos e
testados usando o Internet Explorer 6.0.
Internet Explorer organiza páginas da Web em uma estrutura de árvore lógica, com pais, filhos e
relacionamentos entre irmãos entre os objetos encontrados na página da Web. Para demonstrar como o
Internet Explorer aplica essa estrutura para uma página da Web típico, considere o seguinte exemplo.
<HTML>
<HEAD>
<TITLE> Script 8.1 - HTML objeto página Exemplo Organização </ TITLE> </ HEAD>
<BODY>
</ HTML>
Figura 8.1 mostra como essa página da Web está logicamente representado pelo Internet Explorer. o documento
objeto está sempre no topo da hierarquia. o documento
filho do objeto é o < HTML> elemento. o < HTML> elemento tem dois filhos, os
<HEAD> e < BODY> elementos. o < HEAD> elemento tem um filho de seu próprio, e < BODY> elemento
tem dois filhos.
172 parte I Apresentando o Microsoft VBSCRIPT
FIGURA 8.1 Examinando a maneira pela qual o Internet Explorer representa logicamente o conteúdo de uma página Web
Internet Explorer versões 3 e 4 suporte uma coleção de objetos chamado o modelo de objeto DHTML.
Começando com o Internet Explorer versão 5, o navegador começou a apoiar um segundo modelo de
objeto, o DOM. Internet Explorer versões 5 e 6 suporte o DOM como seu modelo de objeto primário,
proporcionando suporte para o modelo de objeto DHTML para fins de compatibilidade com versões
anteriores. O modelo de objeto DHTML fornece VBScript, com acesso para a maioria dos elementos
encontrados em páginas da Web, enquanto o DOM fornece acesso a todos os elementos.
NOTA
O DOM foi desenvolvido por um grupo chamado World Wide Web Consortium e foi incorporada em todos os
principais navegadores de Internet. Para saber mais sobre o DOM, veja www.w3c.org/DOM.
VBScript e INTERNET EXPLORER Capítulo 8 173
Figura 8.2 o janela objeto fornece acesso a outros objetos que permitem VBScript para interagir com e controlar os elementos
encontrados em páginas HTML
o janela objeto fornece propriedades e métodos que você pode usar para abrir e fechar janelas, texto de
exibição na barra de status do navegador ou em caixas de diálogo pop-up, e URLs de carga em páginas da
Web. A lista a seguir descreve as capacidades fornecidas pelos seus objetos filho.
FIGURA 8.3 o documento objeto fornece acesso a uma série de outros objetos que permitem VBScript para interagir com os
elementos da página HTML específica
Para fazer referência a qualquer elemento em uma página HTML usando o modelo de objeto DHTML, você deve
fazer referência os objetos que fornecem acesso a ele de acordo com sua localização na hierarquia lógica fornecida
pelo modelo de objeto DHTML. Por exemplo, olhar para as seguintes declarações HTML.
Último nome:
<INPUT NAME =”Nome” TYPE =”text” size =”10” MAXLENGTH =” 25” > </ FORM>
Estas declarações definir um formulário HTML chamado Formulário de aplicação que contém um campo de
texto chamado Primeiro nome. Embora você tem a opção de desenvolver páginas HTML que não atribuir
nomes a elementos HTML, nomes devem ser
VBScript e INTERNET EXPLORER Capítulo 8 175
atribuídos em ordem para VBScript para ser capaz de referenciar elementos da página usando o modelo de
objeto DHTML. Por exemplo, as seguintes declarações do VBScript pode ser adicionado a um VBScript
inserido na página HTML para determinar se ou não o visitante inseriu qualquer texto no campo de texto do
formulário.
Como você pode ver, para determinar se alguma coisa foi digitado no campo de texto, você deve
especificar sua localização, começando com o elemento superior da página HTML ( documento), seguido
pelo nome do formulário que contém ( Formulário de aplicação), o nome do campo de texto ( Primeiro nome), e
finalmente o valor propriedade.
Examinando o DOM
O DOM fornece controle total sobre todos os elementos encontrados em uma página HTML e torna-los mais
acessíveis do que o modelo de objeto DHTML faz. Além de ser capaz de acessar qualquer elemento em uma
página HTML, especificando sua localização dentro da hierarquia lógica da página HTML, o DOM permite-lhe
navegar para cima, para baixo e para os lados dentro da hierarquia sem ter que referenciar elementos pelo
nome. O DOM proporciona esta capacidade, utilizando as propriedades descritas na Tabela 8.1.
Property Descrição
nodeType Especifica um valor que representa o tipo de elemento HTML (tag, atributo ou texto)
continuou
176 parte I Apresentando o Microsoft VBSCRIPT
Propriedade Descrição
<HTML>
<HEAD>
<TITLE> Script 8.2 - Um Exemplo DOM Navegação </ TITLE> </ HEAD>
<BODY ID =”BodyTag”>
<P ID =”TopParagraph” Name =”FirstTag”> Bem-vindo à página inicial do </ P> <P ID
=”BottomParagraph”> ABC Enterprises Inc. </ P> </ BODY> </ HTML>
Figura 8.4 mostra como esta página é visto pelo DOM. Como você pode ver, o documento objeto é o
objeto pai, e tem apenas uma criança, o < HTML> tag, que também é referido como o documentElement.
A declaração a seguir demonstra como usar o DOM para navegar os elementos localizados na
página HTML.
document.documentElement.firstChild.tagName)
Esta declaração VBScript faz referência a < HEAD> tag na página HTML, especificando sua relação com
o documento objeto. A próxima instrução exibe o nome do < BODY> tag referenciando novamente o < BODY>
O relacionamento da marca para o
documento objeto.
document.documentElement.firstChild.nextSibling.tagName)
VBScript e INTERNET EXPLORER Capítulo 8 177
Figura 8.4 Examinando uma página HTML a partir do ponto de vista do DOM
O próximo comunicado VBScript mostra como exibir o valor do primeiro filho do < P> tag
cujo ID é BottomParagraph. Esta VBScript usa o DOM
getElementById () método para executar esta operação, como mostrado abaixo.
elemento é: “& _
Usando o DOM, você também pode alterar o valor atribuído a elementos HTML, como demonstrado
pela seguinte declaração VBScript.
Obviamente, o DOM fornece uma ferramenta poderosa para navegar páginas HTML e acessar e manipular sua
content.The DOM é demasiado complexo para cobrir integralmente todos os seus objetos, propriedades e
métodos neste livro. No entanto, você pode visitar
www.w3c.org/DOM aprender mais.
◆ janela
◆ documento
◆ localização
◆ história
◆ navegador
180 parte I Apresentando o Microsoft VBSCRIPT
Cada um desses objetos é descrito em detalhes nas seções a seguir, juntamente com exemplos
demonstrando como elas podem ser usadas por VBScripts embutidos em páginas HTML.
NOTA
Na Figura 8.2, objectos de vários quadros estão representadas. Neste contexto, cada um dos quadros representados
representa um outro exemplo do janela objeto e em conjunto podem ser referidas como uma coleção.
Além de seus objetos filho e colecções, o janela objeto fornece acesso a um conjunto de
propriedades e métodos, que são demonstradas neste capítulo, bem como na Parte V deste
livro. Por exemplo, a página HTML a seguir contém um VBScript que demonstra como usar um
número da janela métodos do objeto.
<HTML>
<HEAD>
<TITLE> Script 8.3 - Trabalhando com métodos janela do objeto </ TITLE> </ HEAD>
declarações do VBScript
Option Explicit
VBScript e INTERNET EXPLORER Capítulo 8 181
“Propriedade da ABC Inc. Todo o material aqui é“& _ “estritamente confidencial. Clique
em OK para confirmar a sua “& _‘aceitação destes termos e acessar este site.’)
“Welcome“e strUserName)
Outro
window.close ()
Fim se
</ BODY>
</ HTML>
A premissa básica por trás deste exemplo é dar aos visitantes uma URL para uma página Web intermediário,
onde eles são solicitados a reconhecer a declaração de privacidade da empresa antes de ser redirecionado para
o site verdadeiro da empresa. Para começar, o
janela objeto de estado propriedade é usada para exibir uma mensagem de texto na barra de status do
navegador. Em seguida, a sua confirme() método é utilizado para solicitar ao visitante a reconhecer os direitos de
privacidade da empresa antes de acessar o site. Em seguida, o objeto do documento pronto método é usado
para coletar o nome do visitante, que é então utilizado pela alerta() método para saudar o visitante pelo nome.
Finalmente, uma nova janela do navegador é aberto usando o objeto de janela abrir() método, e que o visitante é
redirecionado para o site real da empresa ( www.yahoo.com foi utilizado neste exemplo, para ter um lugar para
o navegador para ir). Esta nova janela é configurado para abrir sem uma barra de rolagem, barra de menus ou
barra de ferramentas. Este exemplo termina com o fechar() método para fechar a janela original do navegador.
Figura 8.7 mostra como a segunda janela do navegador olha ao exibir o Web site ao qual o visitante é
redirecionado.
182 parte I Apresentando o Microsoft VBSCRIPT
Figura 8.7 Usando as propriedades e métodos que pertencem à documento objeto para controlar a atividade do navegador
<HTML>
<HEAD>
<TITLE> Script 8.4- Trabalhando com o objeto de documento </ TITLE> </ HEAD>
VBScript e INTERNET EXPLORER Capítulo 8 183
<BODY>
declarações do VBScript
Option Explicit
document.bgColor =”black”
document.fgColor =”amarelo”
document.write ( “<B> Usando o método write () para exibir </ B> <P>”) document.write ( “<B>
</ BODY>
</ HTML>
Como você pode ver, o script começa mudando cores do fundo e de primeiro plano da página HTML
para preto e amarelo. Então o documento objeto de escrever()
método é usado para exibir uma série de linhas de saída na página HTML. A Figura 8.8 mostra a
página HTML gerada pelo exemplo.
184 parte I Apresentando o Microsoft VBSCRIPT
FIGURA 8.8 Usando as propriedades e métodos que pertencem à documento objeto para controlar a tenda con- ea aparência de
uma página HTML
NOTA
o documento objeto fornece acesso a inúmeras outras propriedades que você vai ver usados na Parte V deste livro. Uma
propriedade particularmente útil é o biscoito propriedade, que lhe fornece a capacidade de armazenar pequenas quantidades
de dados no computador de cada visitante. Por exemplo, usando um cookie, você pode armazenar e mais tarde recuperar o
nome de um visitante e usá-lo para criar uma mensagem de saudação pessoal na próxima vez que um usuário retorna ao
seu Web site.
location.href =”http://www.microsoft.com”
VBScript e INTERNET EXPLORER Capítulo 8 185
Como um exemplo de trabalho, o seguinte VBScript mostra como usar o objeto do local href propriedade para
carregar um URL selecionado pelo usuário por meio de um elemento de formulário de seleção drop-down HTML.
<HTML>
<HEAD>
<TITLE> Script 8.5 - Usando o objeto de navegação para carregar páginas da web </ TITLE> </ HEAD>
<BODY>
declarações do VBScript
Option Explicit
OpenButton_onClick função ()
location.href = document.OnLineSitesForm.SupportList.value
End Function
<INPUT NAME =”OpenButton” TYPE =”button” VALUE =”Site Vendor Open”> </ FORM> </ BODY>
</ HTML>
186 parte I Apresentando o Microsoft VBSCRIPT
formulário. Este, por sua vez executa o OpenButton_onClick função. Esta função utiliza o localização objeto
de href propriedade para carregar o URL associado com a seleção do visitante, como mostrado abaixo.
window.location = document.myForm.myList.value
Figura 8.9 mostra a página HTML que permite ao visitante fazer uma nova seleção URL. Depois de selecionar
um nome de fornecedor a partir da lista drop-down, o URL associado com que a seleção é carregado,
substituindo a URL atualmente carregado.
FIGURA 8.9 usando o localização objeto de href propriedade para desenvolver um controle de navegação personalizado
histórico do navegador (a lista de URLs que foram abertos recentemente por este browser). Além disso,
você pode usar o história objeto de vai() método para carregar qualquer URL na lista. Por exemplo, a
seguinte declaração instrui o Internet Explorer para carregar a URL exibida anteriormente:
VBScript e INTERNET EXPLORER Capítulo 8 187
history.back ()
Da mesma forma, para avançar uma posição na lista de história, você poderia usar a seguinte declaração:
history.forward ()
history.go (0)
Para saltar para trás ou para a frente uma série de posições na lista de história, passar o
vai() Método um número positivo ou negativo.
que o visitante está usando ea versão do Internet Explorer que tem sido utilizado para carregar a página HTML.
Usando essas propriedades, você pode desenvolver um script que pode ajustar a sua apresentação baseada na
versão do Internet Explorer que está sendo usado. Alternativamente, você pode usar esta informação para que
você possa redirecionar os visitantes para páginas HTML projetados especificamente para apoiar a sua versão do
O exemplo a seguir demonstra uma maneira de usar o nome do aplicativo e appVersion properties.The VBScript
neste exemplo interroga o navegador do visitante e quer redireciona o navegador para outra URL ou exibe uma
mensagem informando que é necessário uma versão específica do Internet Explorer. Esta técnica pode ser útil
quando uma empresa pretende padronizar os recursos fornecidos por uma versão específica do Internet
Explorer. Ele exibe uma mensagem informando seus visitantes que a versão Internet Explorer 5 ou superior é
necessário para acessar o site da empresa. Este exemplo também funciona para navegadores não-Internet
Explorer, exibindo a mesma mensagem.
188 parte I Apresentando o Microsoft VBSCRIPT
<HTML>
<HEAD>
<TITLE> Script 8.6 - Detectar tipo de navegador e versão </ TITLE> </ HEAD>
<BODY>
declarações do VBScript
Option Explicit
strBrowserName = navigator.appName
strBrowserVersion = navigator.appVersion
strFindString
</ BODY>
</ HTML>
Este exemplo começa definindo uma variável chamada strBrowserName igual a navigator.appName. Em
seguida, verifica para ver se o valor atribuído a essa variável é igual a Microsoft Internet Explorer. Se
for, então o valor da navigator.version é atribuído a uma variável chamada strBrowserVersion. Os três
seguintes afirmações em seguida, analisar o número da versão do navegador.
strFindString
Por exemplo, o valor atribuído à strBrowserName será definida igual à seguinte se o Internet Explorer
6.x versão tem sido usado para carregar a página HTML.
A primeira instrução usa a VBScript Instr () função de definir um valor que indica a posição inicial das
cartas no MSIE strFindString. A segunda instrução, em seguida, adiciona 5 a este número. A terceira
declaração, em seguida, usa o VBScript
Mediana () funcionar para descascar número da versão principal do navegador (ou seja, 6). Se o número da
versão do navegador é inferior a 5 (por exemplo, Internet Explorer versão 4.x), em seguida, uma mensagem é
exibida na página da Web informando o visitante que a versão Internet Explorer 5.x ou acima é necessário para
acessar o site. Se o número da versão é de 5 ou superior, então o localização objeto de href propriedade é usada
NOTA
Se um visitante está usando o Netscape Communicator ou qualquer outro navegador compatível não-Internet
Explorer, o navegador ignora automaticamente o VBScript incorporado e, em vez exibe a seguinte mensagem
localizada na parte inferior da página HTML:
Desculpa. Para aceder a este web site uso Internet Explorer versão 5 ou superior.
190 parte I Apresentando o Microsoft VBSCRIPT
Você pode usar VBScript para criar manipuladores de eventos para reagir a eventos que eles ocorrem. A
manipulador de eventos é um gatilho que dispara quando um evento ocorre. Por exemplo, você pode criar um
manipulador de eventos que exibe uma mensagem de boas-vindas em uma caixa de diálogo pop-up quando os visitantes
primeiro carregar suas páginas HTML ou de agradecer o usuário para visitar apenas antes de o navegador descarrega
sua página HTML. Além disso, você pode usar um manipulador de eventos para criar efeitos gráficos mudando as cores
de texto como visitantes mover o ponteiro sobre os links. Você também pode usar manipuladores de eventos para validar
Os manipuladores de eventos estão associados com objetos específicos. Em outras palavras, se você tem uma página
HTML que define quatro links, então você pode criar manipuladores de eventos separados que administram interatividade
Tabela 8.2 fornece uma lista de eventos do navegador e seus manipuladores de eventos associados. Como você pode
Evento Descrição
Abortar OnAbort Executa quando o visitante aborta uma imagem enquanto ele está carregando
Arraste e solte OnDragDrop Executa quando o visitante arrasta e deixa cair um objecto sobre uma
estrutura ou janela
VBScript e INTERNET EXPLORER Capítulo 8 191
Pressione o botão onKeyPress Executa quando um prensas visitante e libera uma tecla
Carga carregando Executa quando uma página HTML ou imagem terminar o carregamento
MouseOut onMouseOut Executa quando um visitante move o ponteiro para fora de um objeto
Passe o rato por cima onMouseOver Executa quando um visitante move o cursor sobre um objeto
selecionar onSelect Executa quando um visitante seleciona o conteúdo de um campo de texto forma
Há uma série de maneiras diferentes para configurar manipuladores de eventos dentro de suas páginas HTML. Por
exemplo, você pode incorporá-los diretamente para tags HTML, como demonstrado abaixo.
Esta declaração exibe uma mensagem de boas vindas na barra de status do navegador quando a página HTML é
-los como procedimentos. A fim de fazer isso, você deve nomear seus procedimentos após os eventos para os
quais você pretende-los para reagir. Você pode fazer isso, fornecendo o nome de um elemento de página HTML
seguido pelo caractere sublinhado e, em seguida, o nome do manipulador de eventos para que o procedimento é
projetado para acomodar. Por exemplo, para criar um manipulador de eventos que reage a qualquer momento o
usuário move o ponteiro sobre um link chamado strCorpLogo, você precisa nomear seu procedimento como
demonstrado abaixo.
sub strCorpLogo_onMouseOver
Sub
Contudo uma outra maneira de configurar manipuladores de eventos é incorporá-los dentro do HTML
SCRIPT>
Como a Tabela 8.2 mostra, há uma série de tipos de eventos e manipuladores de eventos. As próximas seções
mostram como escrever VBScripts que interagem com vários eventos do navegador.
◆ carregando
◆ onResize
◆ onUnload
◆ Em movimento
Para responder ao carga, redimensionar, descarregar, e mover eventos, você deve colocar estes
manipuladores de eventos dentro de abertura da página HTML < BODY> tag. Por exemplo, a página HTML
a seguir demonstra como fazer uso do carregando() e
onUnload () manipuladores de eventos.
<HTML>
VBScript e INTERNET EXPLORER Capítulo 8 193
<HEAD>
<TITLE> Script 8.7 - Utilizando os manipuladores de evento onload e onunload </ TITLE>
declarações do VBScript
Função saudação ()
Função Adeus ()
MsgBox ( “Obrigado por visitar e por favor, voltar em breve!”) End Function
</ HEAD>
</ HTML>
Como você pode ver, a tag <BODY> foi modificado, adicionando as seguintes declarações:
◆ onLoad = cartões ()
◆ onUnload = Adeus ()
Estas duas declarações executar dois procedimentos VBScript localizados na seção HEAD da página
HTML. A primeira instrução é executada quando a página HTML é inicialmente carregada pelo navegador
ou quando o visitante atualiza a página. A segunda instrução é executada quando o visitante carrega uma
URL diferente ou fecha o browser. Em ambos os casos, uma mensagem pop-up é exibida que quer
recebe o visitante ou diz adeus. Figura 8.10 mostra a caixa de diálogo pop-up quando o script
Figura 8.10 usando o carregando e onUnload manipuladores de eventos para acionar a exibição de mensagens de texto
HTML. A fim de criar efeitos de sobreposição para as ligações, o NOME atributo deve ser adicionado a cada ligação
definida na página HTML. Em seguida, um par de procedimentos tem de ser definido para cada ligação, uma para
o
onMouseOver manipulador de eventos e outra para o onMouseOut manipulador de eventos. Cada procedimento
<HTML>
<HEAD>
<TITLE> Script 8.8 - eventos Use o mouse para criar rollovers </ TITLE>
declarações do VBScript
gateway_onMouseOver função
gateway.style.color = End
Function”vermelho”
função gateway_onMouseOut
Function
compaq_onMouseOver função
compaq.style.color = End
Function”vermelho”
compaq_onMouseOut função
dell_onMouseOver função
dell.style.color = End
Function”vermelho”
dell_onMouseOut função
HEAD>
<BODY>
Figura 8.11 mostra como a página Web aparece quando carregados pelo Internet Explorer. Infelizmente,
este valor não pode fazer o exemplo justiça. A fim de examinar esta figura em maior detalhe, baixá-lo www.premierpressbooks.c
Como você verá quando você executá-lo, a cor muda de vermelho para azul quando você passa o ponteiro
sobre e para fora de cada link.
196 parte I Apresentando o Microsoft VBSCRIPT
FIGURA 8,11 usando o onMouseOver e onMouseOut manipuladores de eventos para criar efeitos de sobreposição gráfica
resumo
Neste capítulo, você aprendeu sobre os modelos de objetos DOM e DHTML. Você também aprendeu a
desenvolver scripts que interagem com os objetos fornecidos por esses modelos de objeto a fim de reforçar o seu
controle sobre suas páginas HTML. Além disso, você aprendeu sobre os eventos do navegador e como
configurar manipuladores de eventos, a fim de desenvolver procedimentos que permitem criar páginas HTML
interativas.
Capítulo 9
VBScript eo WSH
Eu n Neste capítulo, você vai aprender sobre os objetos, propriedades e métodos fornecidos pelo WSH. Mais
tarde, você vai aprender como usar esses objetos para acessar e manipular uma série de recursos do Windows. Este
capítulo também irá demonstrar como criar scripts que podem receber e argumentos de processos passados em
tempo de execução. Finalmente, você vai aprender como criar um novo tipo de arquivo de script usando XML ( Extensive
Markup Language) que permitirá que você para combinar duas ou mais scripts separados, escritos em diferentes
linguagens de script, juntos em um novo arquivo de script do Windows.
acessar automaticamente qualquer de suas propriedades ou métodos. Todos os outros objetos no modelo de objeto
do núcleo WSH deve primeiro ser instanciado para usar suas propriedades e métodos.
VBScript e WSH Capítulo 9 199
objetos públicas
o WScript objeto é automaticamente exposta no início da execução do script. o
WScript objeto também é referido como um objeto público. O modelo de objeto de núcleo WSH tem três
outros objetos públicos, que são a WshController, WshShell, e
WshNetwork objetos. A fim de instanciar qualquer um desses três objetos, você deve usar o WScript objeto
de CreateObject () método. Os restantes objectos núcleo WSH é instanciado usando uma das
propriedades ou métodos destes quatro objectos comuns.
NOTA
o WScript objeto de CreateObject () método fornece os meios de instanciar outros objectos no modelo de
objecto núcleo WSH.
Tabela 9.1 fornece uma lista de outros objectos 10 que constituem o modelo de objecto núcleo WSH e uma lista de
Método de instanciação
WshArguments WScript.Arguments
WshNamed WScript.Arguments.Named
WshUnnamed WScript.Arguments.Unnamed
WshRemote WshController.CreateScript ()
WshRemoteError WshRemote.Error
WshShortcut WshShell.CreateShortcut ()
WshUrlShortcut WshShell.CreateShortcut ()
WshEnvironment WshShell.Environment
WshSpecialFolders WshShell.SpecialFolders
WshScriptExec WshShell.Exec ()
200 parte I Apresentando o Microsoft VBSCRIPT
Descrição
WScript Este é o objeto WSH raiz. Ele fornece o acesso a um número de propriedades e
métodos úteis. Ele também fornece acesso ao resto dos objetos no modelo de
objeto do núcleo WSH. propriedades: Argumentos, FullName, Interactive, Nome,
Caminho, ScriptFullName, ScriptName, StdErr, StdIn, StdOut, e Versão
WshArguments Este objeto permite-lhe aceder a linha de comando argumentos passados para o script em
WshNamed Este objeto fornece acesso a um conjunto de linha de comando argumentos nomeados.
WshUnnamed Este objeto fornece acesso a um conjunto de argumentos de linha de comando sem nome.
Métodos: Contagem()
WshController Este objeto fornece a capacidade de criar um processo de script remoto. Propriedades:
Objeto Descrição
WshRemoteError Este objeto fornece acesso a informações sobre os erros produzidos por scripts
WshNetwork Este objeto fornece acesso a um número de diferentes recursos de rede, tais
UserDomain, e UserName
SetDefaultPrinter ()
Meio Ambiente, e
SpecialFolders
WshShortcut Este objeto fornece scripts com métodos e propriedades para criar e
FullName, Hotkey,
Eu conLocation, TargetPath, WindowStyle, e
Diretório de trabalho
WshUrlShortcut Este objecto fornece scripts com métodos e propriedades para criar e manipular os
continuou
202 parte I Apresentando o Microsoft VBSCRIPT
Objeto Descrição
WshEnvironment Este objeto fornece acesso a variáveis ambientais Windows. propriedades: Item e comprimento
WshSpecialFolders Este objeto fornece acesso a pastas especiais do Windows que permitem
scripts para configurar o menu Iniciar, desktop, barra Quick Launch, e outras pastas
Métodos: Contagem()
WshScriptExec Este objeto fornece acesso a informações de erro de executar scripts usando o
Métodos: Terminar ()
Há muitos objetos WSH para cobri-los todos em um único capítulo. Portanto, este capítulo será
limitado a fornecê-lo com uma referência de objeto WSH, oferecendo alguns exemplos de como
trabalhar com alguns dos objetos WSH. Os capítulos restantes deste livro vai lhe dar a oportunidade
de trabalhar com muitas das propriedades e métodos que pertencem aos objetos mostrados na
Tabela 9.2.
Os objectos do núcleo WSH fornecer acesso a dezenas de propriedades diferentes. A Tabela 9.3 lista cada uma destas
propriedades.
NOTA
Em alguns casos, a mesma propriedade pode ser compartilhada por mais de um objeto. Use Tabela 9.2 para
determinar quais as propriedades que estão associadas com objectos.
VBScript e WSH Capítulo 9 203
Descrição
Personagem Identifica o carácter específico em uma linha de código onde ocorre um erro
Item Recupera o item especificado de uma coleção ou fornece acesso a itens armazenados
na WshNamed objeto
Linha Retorna o número da linha para a linha atual no fluxo de entrada ou identifica o número
da linha dentro de um script onde ocorreu um erro
WshScriptExec objeto
continuou
204 parte I Apresentando o Microsoft VBSCRIPT
Propriedade Descrição
estado Fornece informações de status sobre um script de executar remotamente ou um script começou
com Exec ()
StdErr Permite que um script para gravar o fluxo de saída de erro ou fornece acesso para somente
StdIn Permite o acesso de leitura para o fluxo de entrada ou fornece acesso ao grito de entrada
StdOut Permite acesso de gravação para o fluxo de saída ou fornece acesso para o fluxo de saída
'Descrição: Este script demonstra como usar propriedades pertencentes a' o objeto WshNetwork a fim de obter
'Seção de inicialização
Option Explicit
()
'Secção Procedimento
“Ele é conectado ao seguinte domínio:” & vbCrLf & vbCrLf & _ WshNtwk.UserDomain & vbCrLf &
End Sub
Esse script começa definindo duas variáveis, WshNtwk e strDisplayText. WshNtwk é então usada para
instanciar o WshNetwork objeto, como mostrado abaixo.
Como você pode ver, tanto o Conjunto declaração eo WScript objeto de CreateObject () método são necessárias
para configurar uma instância do WshNetwork objeto. Uma vez instanciado, você pode fazer referência a qualquer
uma das propriedades e métodos do objeto. Em seguida, o script é executado um procedimento chamado DisplayNetInfo
(). Esta sub-rotina contém duas declarações. A primeira instrução cria uma seqüência de exibição usando o
Descrição
executado remotamente
WshNamed objeto
<Recurso> etiqueta
continuou
208 parte I Apresentando o Microsoft VBSCRIPT
Método Descrição
Leia a linha() Recupera uma cadeia que contém uma linha inteira de dados a partir do
fluxo de entrada
ComandosPorTeclado () Emula as teclas digitadas e envia dados digitados para uma janela
especificada
'Descrição: Este script demonstra como usar métodos que pertencem a' o objeto WshNetwork a fim de
'Seção de inicialização
Option Explicit
FamilyPC \ D”
strDriveLetter, strDrivePath
()
'Secção Procedimento
210 parte I Apresentando o Microsoft VBSCRIPT
End Sub
◆ instanciar o WshNetwork objeto seguida, a Seção de Processamento Principal executa o MapDrive () procedimento,
o MapDrive () sub-rotina recebe os argumentos passados para ele e atribui-los a duas novas variáveis. Em
seguida, ele usa o WshNetwork objeto de MapNetworkDrive () método para estabelecer o mapeamento da
unidade. Finalmente, o controle retorna para a secção Processamento Main, onde o WScript objeto de Sair() método
é usado para terminar a execução do script. Figura 9.3 mostra como a unidade de rede mapeada aparece
na caixa de diálogo Meu computador.
VBScript e WSH Capítulo 9 211
FIGURA 9.3 Mapeamento de uma unidade de rede usando o WshNetwork objeto de MapNetworkDrive ()
método
variáveis e matrizes ou recolhidos de forma interativa do usuário através de caixas de diálogo pop-up. Scripts também
frequentemente receber dados para processar por ter que os dados passados para eles como argumentos em tempo
de execução. Por exemplo, você pode configurar um script para chamar outro script e usar a saída produzida pelo
Alternativamente, você pode passar argumentos para um script a partir da linha de comando do Windows.
Por exemplo, o seguinte comando deve executar um nome de script testscript.vbs e passá-lo três
argumentos:
O que acontece a seguir depende do script. Por exemplo, um script receber log, txt, e doutor como entrada pode usar
esses argumentos para construir uma lista de arquivos que devem ser processados de alguma maneira.
212 parte I Apresentando o Microsoft VBSCRIPT
NOTA
Você também pode passar argumentos para scripts que incluem um espaço em branco, mas para fazer isso, você deve
incluir o argumento dentro de um par de correspondentes aspas, como demonstrado abaixo.
Scripts têm de ser concebido para processar qualquer entrada argumento de que pode ser passado para eles.
Isto pode ser conseguido utilizando as propriedades pertencentes ao WshArguments objeto, como demonstrado
no exemplo seguinte.
'Descrição: Este script demonstra como processar argumentos passados para' um VBScript
'************************************************* ************************
'Seção de inicialização
Option Explicit
WshArgs dim
MsgBox “Erro:. Não há argumentos foram passados para este script” WScript.Quit ()
Else
ProcessArguments () End
If
VBScript e WSH Capítulo 9 213
WScript.Quit ()
'Secção Procedimento
ProcessArguments sub ()
Dim i, strDisplayString
Para i = 0 a (WshArgs.Count - 1)
MsgBox strDisplayString
End Sub
A primeira coisa que este VBScript faz é definir uma variável e usá-lo para criar uma instância do WshArguments
objeto, como mostrado abaixo.
WshArgs dim
objeto de Contagem propriedade para garantir que pelo menos um argumento foi passado para o script, caso o
que ProcessArguments () função é chamada. Caso contrário, uma mensagem de erro é exibida eo WScript objeto
de Sair() método é executado, terminando a execução do script. o ProcessArguments () função começa pela
Em seguida, ele usa um A seguir loop para percorrer a lista de argumentos passados para o script. o WshArguments
objeto armazena argumentos em uma lista indexada começando no zero. O circuito começa em zero
e gira até WshArgs.Count - 1
214 parte I Apresentando o Microsoft VBSCRIPT
(Por exemplo, se cinco argumentos são passados, o índice começarão na posição 0 e termina na posição 4).
O conteúdo do string de exibição são modificados em cada iteração do circuito adicionando o valor de cada
um argumento para a cadeia com base no seu número de índice, como especificado pela variável Eu ( por
exemplo, WshArgs.Item (i)).
Figura 9.4 demonstra a saída produzida por esse script se for aprovada uma lista de
argumentos de SalesReport.doc, MarketReport.doc, Forecast.xls, MonthlyStats.xls, e LogReports.log.
O WSH fornece programadores com um ambiente de script robusta que inclui o acesso a um conjunto
comum de objetos. Estes objetos fornecem acesso aos recursos do Windows que representam por meio
das propriedades e métodos. Um dos pontos fortes do WSH é que ele oferece o mesmo nível de
acesso, independentemente da linguagem de script a ser utilizado pelo programador. navios Microsoft o
WSH com VBScript e JScript, mas de terceiros linguagens de script WSHcompatible foram
disponibilizados que incluem Perl, o Python, e Rexx. faz o WSH não param por aí. Além de permitir que
você use a linguagem de script de sua escolha, que lhe fornece a capacidade de combinar dois ou mais
scripts, incluindo scripts escritos usando linguagens diferentes, em um único script conhecido como Arquivo
de Script do Windows. Windows Script Os arquivos são arquivos de texto simples que são salvos com
uma extensão de arquivo .wsf.
O WSH usa um subconjunto de XML para criar o Windows Script Files. XML é uma linguagem de marcação
que é sintaticamente semelhante ao HTML. tags XML são usados em
VBScript e WSH Capítulo 9 215
Windows Script arquivos para identificar ou marcar os componentes que compõem o arquivo. Por exemplo,
todos os scripts contidos em um arquivo script do Windows é fechado dentro de um par de < script> </ script> Tag.
O WSH atualmente fornece suporte para a versão XML 1.0.
XML é uma linguagem de marcação maiúsculas de minúsculas. Ele tem um rigoroso conjunto de regras que devem ser
seguidas quando a formatação tags. Ao contrário das linguagens de marcação HTML, você não pode sair com excluindo
marcas de fechamento necessários. O restante deste capítulo é dedicado para demonstrar um número de etiquetas XML
Tabela 9.5 XML Tag comumente usado em Windows Script Arquivos Tag
Descrição
<? XML?> Esta tag especifica nível XML o arquivo do Windows Script.
<? Trabalho?> Esta tag é usada para ativar ou desativar manipulação de erro e depuração para um
trabalho especificado.
<Comment> </ comment> Esta tag fornece a capacidade para incorporar observações no prazo de Windows
Script Files.
<Script> </ script> Esta tag identifica o início eo fim de um script dentro de um arquivo de
script do Windows.
<Job> </ job> Esta tag identifica o início eo fim de um trabalho dentro de um arquivo de
script do Windows.
<Package> </ package> Esta tag permite que vários trabalhos a serem definidos dentro de um único arquivo de
script do Windows.
<Resource> </ resource> Esta tag define dados estáticos (constantes) que podem ser refe-
ciada por um script dentro de um arquivo de script do Windows.
GORJETA
XML versão 1.0 permite a utilização de ambos ortografia maiúsculas e minúsculas em tags. No entanto, o uso de
letras maiúsculas ortografia é geralmente considerado má forma. Você deve, portanto, utilizar toda a soletração
minúsculas. Isso também irá poupar-lhe um monte de trabalho recodificação no caso de uma futura versão do XML
incorpora um requisito all-minúsculas.
216 parte I Apresentando o Microsoft VBSCRIPT
versão especifica a versão XML necessárias. Desde a escrita deste livro, a versão atual do XML é a versão
1.0. estar sozinho especifica um valor booleano que indica se ou não o script inclui uma referência a um DTD
externo ( Document Type Definition). O DTD é atualmente uma característica WSH não suportado. No
entanto, se desejar, você pode incluir isso. Se você optar por fazê-lo, então você deve especificar seu valor
como Sim. O <? XML?> tag não tem uma marca de fechamento. O objetivo do <? XML?> tag é permitir que o
programador para impor uma interpretação mais rigorosa das declarações XML dentro do Windows Script
Files. Por exemplo, este tag estritamente impõe maiúsculas e minúsculas. Além disso, exige que todos os
valores de atributos para ser colocado entre aspas simples ou duplas. O exemplo a seguir demonstra o uso
<Job>
MsgBox “Tratamento de erros e depuração estão agora habilitado.” </ Script> </
job>
errorflag é um valor booleano. Quando definido igual a Verdade, relatório de erros está habilitado. Se omitido, o
debugflag também é um valor booleano que controla se ou não a ocorrência de um erro irá iniciar o
depurador de scripts do Windows.
VBScript e WSH Capítulo 9 217
NOTA
O Microsoft Windows Script Debugger é um utilitário fornecido pela Microsoft que ajuda os programadores na
depuração de erros de script. Visita http://msdn.microsoft.com/scripting
para saber mais sobre este utilitário.
O exemplo a seguir demonstra como permitir que tanto o relatório de erros e depuração de script dentro de um
arquivo de script do Windows.
<Job>
MsgBox “Tratamento de erros e depuração estão agora habilitado.” </ Script> </
job>
<Job>
MsgBox “Tratamento de erros e depuração estão agora habilitado.” </ Script> </
job>
o início eo fim de roteiros individuais dentro de um arquivo de script do Windows. A sua sintaxe é
mostrado abaixo.
... </
script>
língua é usado para especificar a linguagem de script utilizada para desenvolver o roteiro. src
é opcional e pode ser usado para especificar a localização de um script externo. O exemplo a
<Job>
</ Script>
</ Job>
O próximo exemplo demonstra como configurar uma referência a um VBScript externo que está localizado na
mesma pasta que o arquivo de script do Windows.
<Job>
</ Job>
número de scripts. Cada trabalho é identificado usando o < job> e </ job> Tag. No mínimo, todos os Arquivos de Script
Windows deve conter pelo menos uma sintaxe job.The para essas marcas é mostrado abaixo.
. . .
</ Job>
identidade é usado para identificar exclusivamente postos de trabalho em um arquivo de script do Windows que contém
mais de um emprego. Este parâmetro pode ser omitido no Windows Script arquivos que consistem em apenas um
trabalho. Ao atribuir IDs de trabalho para cada trabalho dentro de um arquivo de script do Windows, você fornece a
capacidade de especificar qual trabalho que você deseja executar quando você executar o arquivo de script do Windows.
O exemplo a seguir mostra um Arquivo de Script do Windows que é composta de um único trabalho.
VBScript e WSH Capítulo 9 219
<Job>
</ Job>
Como você pode ver, esta tarefa executa três scripts, dois escritos em VBScript e um escritos usando
JScript. A segunda VBScript definido dentro do trabalho representa um script externo.
<Package>
. . .
</ Package>
O exemplo a seguir demonstra como usar o < pacote> e </ idade pacote> tags para adicionar três empregos
para um arquivo script do Windows.
<Package>
</ job>
</ Package>
O primeiro trabalho é nomeado Job_A. Ele contém um único segundo VBScript.The e empregos terceiros são nomeados Job_B
e Job_C, respectivamente.
. . .
</ Resource>
identidade é usado para especificar o nome de uma constante. O valor atribuído ao constante está especificado
<Job>
</ Job>
Neste exemplo, o valor da constante cTitleBarMsg é exibido por um MsgBox () função usando o
WSH getResource () método. Este método WSH built-in é projetado para recuperar o valor de
constantes definidas dentro < recurso>
e </ recurso> Tag.
Windows contém um trabalho, esse trabalho e todos os scripts que ele é feito de se executar. No entanto, se o arquivo de
script do Windows consiste em mais de um emprego, o primeiro trabalho que é definido será executado. A fim de executar
outros trabalhos que residem dentro do arquivo script do Windows, você deve executar o arquivo de script do Windows a
partir do prompt de comando do Windows e dizer-lhe que trabalho que você deseja executar, especificando o ID do
trabalho.
Por exemplo, a seguinte declaração poderia ser usado para executar o primeiro emprego definido em um arquivo de script
WScript SampleScript.wsf
Desde o primeiro trabalho definido no script será executado, não há necessidade de especificar o seu ID trabalho
atribuído. Se o arquivo de script do Windows continha um segundo emprego que foi atribuído um ID de trabalho Job_B, então
resumo
Neste capítulo, você aprendeu sobre os objetos que compõem o modelo de objeto WSH. Além disso, você
foram apresentados com uma lista completa das propriedades
222 parte I Apresentando o Microsoft VBSCRIPT
e métodos associados com esses objetos e exemplos que demonstram como incorporar o uso de objetos WSH
em seus VBScripts. Você também aprendeu a criar e executar scripts que podem aceitar e argumentos de
processos passados em tempo de execução. Finalmente, você aprendeu a desenvolver o Windows Script
arquivos usando XML. Isto incluiu uma revisão das tags XML comumente usados.