Ooh, agora isso é um truque hacky. No entanto, funcionará se o usuário que o aplicativo está executando não estiver bloqueado, de modo que não possa usar o wshell.run. Eu acho que eu gosto mesmo ...
Se o aplicativo estiver sendo executado em uma caixa à qual você tenha acesso de administrador, para que você possa registrar uma DLL COM, quando eu quiser dormir em um código ASP clássico para teste (às vezes é útil inserir atrasos artificiais) uma DLL livre simples que infelizmente não está mais disponível a partir da fonte original ( veja aqui para alguma discussão ). Se você quiser experimentá-lo, coloquei uma cópia em aqui . Para invocar, use algo como Dim WaitObj: Set WaitObj = Server.CreateObject ("WaitFor.Comp"): WaitObj.WaitForSeconds 10
Não há dúvida de que a biblioteca é apenas um invólucro em torno da chamada da API de suspensão, portanto, você pode criar a sua própria se não quiser confiar em alguma biblioteca aleatória de alguma parte 3D não investigada (confiando no código anônimo de fontes não verificadas não é algo que eu não recomendaria, e eu conto como uma fonte não-revisada). Para o VB6, a chamada seria declarada como Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
.
A primeira coisa que gostaria de fazer neste ponto, antes de tentar qualquer um dos itens acima, é perguntar no StackOverflow para ver o que outras pessoas usam para esperas não ocupadas no ASP clássico. Você pode descobrir que existe outra biblioteca que ainda é suportada por seu criador, ou uma técnica melhor. Como o truque ping
está usando CreaetObject
, suspeito que qualquer coisa utilizável em um contexto ASP clássico possa ser usada em seu aplicativo.