标签: vbscript

如何使用WScript.Shell对象调试ASP权限问题?

我必须从一些传统的ASP应用程序运行命令行操作.

这是我的代码:

<%
    cmd = "%comspec% /c echo Hello"    

    set wsh = CreateObject("WScript.Shell")
    ireturn = wsh.Run(cmd, 0, true)
    set wsh = nothing
%>
Run Code Online (Sandbox Code Playgroud)

这是我收到的结果:

Microsoft VBScript运行时错误"800a0046"

没有权限

/test.asp,第6行

您是否知道如何使IIS6运行此代码?

注意:当然我不必运行echo命令,但我想排除问题的任何其他原因.

更新:我尝试了大多数事情,但是没有任何帮助.也许我可以稍微改变一下问题.我该如何调试这个问题?

security permissions vbscript iis-6 asp-classic

5
推荐指数
1
解决办法
8042
查看次数

MSXML2.ServerXMLHTTP.4.0来源?

对象"MSXML2.ServerXMLHTTP.4.0"来自哪里?哪个安装包?

我正在尝试执行以下操作:

Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.4.0")
Run Code Online (Sandbox Code Playgroud)

这个尝试在我的开发机器上失败(没有返回任何对象),但它在我的同事的开发机器上是成功的.显然,他安装的东西我没有,反之亦然,但是这个对象,dll等来自何处?

我需要安装什么才能使此调用工作?

对于记录,将对象更改为其他版本不是一种选择,因为此依赖的代码针对此特定版本进行了几天的测试.我们必须再回去测试......

要扩展此问题,如何判断当前安装的MS XML版本?

vbscript msxml object

5
推荐指数
1
解决办法
1万
查看次数

VBScript在Excel文件中编写宏

是否有可能VBScript在生成excel文件时在宏文件中编写一个只要文件打开就能运行的宏?

我有一个VBScript自动生成一个excel文件和其中的一些数据,这运行一次并生成包含所有数据/排序等的文件.

我需要的是在程序运行时有一些通常用宏运行的交互性,有人查看数据,这里的问题是因为它是一个自动生成的文件,没有保存宏.

如果是这样,将如何实现,以后如何在vbscript中写入一个宏?

vbscript excel

5
推荐指数
1
解决办法
2万
查看次数

无法从vbscript调用c#代码 - ActiveX错误

我试图用VBScript中的C#编写一个方法.

我已经遵循了我在网上找到的所有说明,但仍然遇到问题.

具体来说,我得到了

错误:ActiveX组件无法创建对象

代码:800A01AD

到目前为止,我已经做了以下事情:

  1. ComVisible(true)
  2. 注册使用 regasm /codebase
  3. 强烈命名我的集会
  4. 确认它在注册表中并指向正确的位置
  5. 公开上课
  6. 没有静态方法
  7. 制作我想要公开的方法
  8. 有一个无参数的构造函数
  9. 明确定义GUID

我的VBScript看起来像这样:

set oObject = CreateObject("TTTTTT.FFFFF.CCCCCCCCC")
Run Code Online (Sandbox Code Playgroud)

我的C#代码如下所示:

using System;
using System.IO;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace XXXXX.YYYYY
{
    [ComVisible(true)]
    [Guid("3EB62C37-79BC-44f7-AFBD-7B8113D1FD4F")]
    [ProgId("TTTTTT.FFFFF.CCCCCCCCC")]
    public class CCCCCCCCC
    {
        public void MyFunc()
        {
            //
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

.net c# vbscript com-interop regasm

5
推荐指数
1
解决办法
4684
查看次数

从C#运行vbs Sub

是否可以从ac#应用程序执行vbs文件中的特定子?

我已经看过创建一个Process然后启动它但是找不到指定脚本文件中应该执行哪个特定子的方法.有没有办法指定这个或有更好的方法吗?

vbs可能看起来像下面的示例.我想要的是从C#代码启动test1或test2.

Public Sub test1
    msgbox "Hey1"
End Sub

Public Sub test2
    msgbox "Hey2"
End Sub
Run Code Online (Sandbox Code Playgroud)

c# vbscript

5
推荐指数
1
解决办法
1915
查看次数

在vb中使用"OR"时,IF条件是否有任何限制?

在我的代码中我想使用if条件.我想在其中使用"OR"约18次.喜欢例如

If a="something" or a="something" or a="something" or.........(up to 18 times)... then
  'do nothing
else
  'do action
end if
Run Code Online (Sandbox Code Playgroud)

[注:值一个正在改变For循环每次],所以我只想问确实有使用或有限次,如果有任何的限制.或者还有其他更好的方法来做同样的事情.

谢谢

vb6 vbscript vba

5
推荐指数
2
解决办法
1458
查看次数

看看Ma,即使Option Explicit有效,我也可以重新定义全局变量 - 但为什么呢?

这是一个很好的疯狂发现:

Option Explicit

ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=41"
ExecuteGlobal "Option Explicit: TestVar=42"

MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)

按预期工作 - 显示42.

和:

Option Explicit

ExecuteGlobal "Option Explicit: TestVar: TestVar=41"

MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)

由于未定义TestVar,因此在ExecuteGlobal调用中产生"未定义的变量".好.

明白的是:

Option Explicit

ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=41"
ExecuteGlobal "Option Explicit: Dim TestVar: TestVar=42"

MsgBox "TestVar=" & CStr (TestVar)
Run Code Online (Sandbox Code Playgroud)

不会扔在第二"标识符重新定义" ExecuteGlobal呼叫,但显示42 -如同Dim在第二ExecuteGlobal呼叫中不存在.

如果你对Class声明做同样的事情,一切正常,即你无法在任何情况下重新定义一个类.

我勒个去?

我的问题是:为什么ExecuteGlobal允许我重新定义一个全局变量,而a)ExecuteGlobal禁止访问未声明的变量,b)类定义被区别对待?

我确实有一个导致这种情况的用例(在测试运行时生成源代码并通过ExecuteGlobal执行它,因为某些不那么奇怪的因为你可能期望的原因),但我刚刚提出的要点是有效的,没有我认为现实世界的情景描述.

我使用QTP(HP QuickTest Professional)来解决这个问题,它使用VisualBasic脚本主机引擎进行脚本回放,但它只与VB脚本主机完全相同.

vbscript

5
推荐指数
1
解决办法
1000
查看次数

使用VBScript打开应用程序并在其中执行操作

我写了下面的vbs打开ciphergraph:

Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run("""C:\Program Files (x86)\CipherGraph\LaunchStub.exe""")
Set objShell = Nothing
WScript.Sleep 250
Run Code Online (Sandbox Code Playgroud)

我还想在密码图窗口中选择"连接"按钮 - 我可以通过两次点击'TAB'然后在应用启动时'返回'来实现它

我该怎么做呢?对不起,如果这是一个基本问题,VBS新手,但找不到答案?

干杯

vbscript

5
推荐指数
1
解决办法
3万
查看次数

Reg-Free COM“ Microsoft.Windows.ActCtx”是否可以与脚本-后期绑定一起使用?

我已经成功使用清单文件(即早期绑定)使用C ++和C#成功运行了Reg-Free COM。我现在正尝试使用后期绑定使此工作正常。经过大量的网络搜索,我发现的技术似乎正在使用“ Microsoft.Windows.ActCtx”。

我用来测试此示例的示例是在http://msdn.microsoft.com/zh-cn/library/ms973913.aspx上找到的MS的“基于COM的组件的免注册激活”,以生成SideBySide示例。然后,我尝试使用脚本语言。但是,VBScript和Python都以相同的方式失败(也尝试过VBA)。下面给出了VBScript示例:

Set actctx = CreateObject("Microsoft.Windows.ActCtx")
actctx.manifest = "C:\test\client.exe.manifest"

Set SBSObj = actctx.CreateObject("SideBySide.SideBySideClass")
wscript.echo SBSObj.Version
Run Code Online (Sandbox Code Playgroud)

使用SysInternals的“ Process Monitor”之类的东西,您可以看到运行以下命令(Windows 7 x64):

C:\Windows\SysWOW64\cscript.exe //Nologo C:\test\VBRegFreeTest.vbs
Run Code Online (Sandbox Code Playgroud)

似乎可以通过加载清单来工作,并尝试开始寻找等效的注册表调用,但找不到它们。因此,它似乎部分起作用。我还将wScript.exe复制到本地目录中,以排除运行应用程序和清单文件的目录问题。

我已经阅读了Windows Xp上的Microsoft.Windows.ActCtx,并在清单中包含了“ prodID”,但仍然失败。清单文件可与C ++和C#示例一起正常使用。

我忍不住感觉到“ Microsoft.Windows.ActCtx”有问题。关于此的文档非常有限。非常感谢在Python或VBScript中使用清单文件的任何帮助。我想知道是否有人可以使用“ Microsoft.Windows.ActCtx”。

c# c++ python windows vbscript

5
推荐指数
1
解决办法
951
查看次数

从R启动VBA宏

我目前正在尝试从R启动一个非常简单的VBA宏.为此,我遵循此处找到的过程:从R运行VBA脚本 不幸的是,当我打开Excel文件之后,它已损坏并且Excel停止.这是我的代码:

:

library(XLConnect)
saveWorkbook(wb,pathfile)
# The saveWorkbook part is working
shell(shQuote(normalizePath(pathtovbs)), "cscript", flag = "//nologo")
Run Code Online (Sandbox Code Playgroud)

:

Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample() 
  Dim xlApp 
  Dim xlBook 
  Set xlApp = CreateObject("Excel.Application") 
  Set xlBook =     xlApp.Workbooks.Open(pathfile, 0, True) 
  xlApp.Run "PERSONAL.XLSB!MyMacro"
  xlApp.Quit 
  Set xlBook = Nothing 
  Set xlApp = Nothing 
End Sub
Run Code Online (Sandbox Code Playgroud)

PESONAL.XLSB!MyMacro:

Sub MyMacro()

 Dim ws As Worksheet
    For Each ws In Sheets
       ws.Range("C:C").EntireColumn.Delete
       ws.Range("A:A").EntireColumn.Delete
   Next ws
End Sub
Run Code Online (Sandbox Code Playgroud)

你知道发生了什么吗?我检查了每个文件的路径,它们很好.非常感谢你提前.

编辑:显然,问题来自vbscript.该文件打开但无法找到位于我的个人库(PERSONAL.XLSB)中的宏.当我手动打开Excel时,我可以访问这个宏,但是当我从另一个程序打开Excel时,我不能.知道为什么吗?

宝莲

vbscript excel vba r excel-vba

5
推荐指数
1
解决办法
2038
查看次数

标签 统计

vbscript ×10

c# ×3

excel ×2

vba ×2

.net ×1

asp-classic ×1

c++ ×1

com-interop ×1

excel-vba ×1

iis-6 ×1

msxml ×1

object ×1

permissions ×1

python ×1

r ×1

regasm ×1

security ×1

vb6 ×1

windows ×1