我正在从C#中的代码中执行.VBS文件,以检查用户的真实性.我正在传递用户名和密码值,并且在登录时单击.vbs将运行并对用户进行身份验证.如果用户在不是真实的情况下,则在VBS中函数返回一个值,我该如何在C#中的代码中获取该值,并使用它在应用程序的UI中显示正确的错误消息. 请帮助.. 解决方案 不呈现生产代码,而是显示 原则上的"起作用" 您必须在文档中查找哪些关键字/组件 demo.cs: using System; using System.Diagnostics; namespace Demo { public class Demo { public static void Main(string [] args) { string user = "nix"; if (1
以下是关于 vbscript 的编程技术问答
我在Msword 2003中有这张简单的表: 我想将另外一行附加到此表: turtle dog rooster maple 我需要在这里自动执行哪些vbscript命令(或一组命令)? (我正在使用" Windows XP") 解决方案 这里有一些注释. Set wd = CreateObject("Word.Application") wd.Visible = True Set doc = wd.Documents.Open ("c:\docs\addtotable.doc") Set r = doc.Tables(1).Rows.Add aa = Split("turtle,dog,rooster,maple", ",") For i = 0 To r.Cells.Count - 1 r.Cells(i + 1).Range.Text = aa(i) Next
在WiFi连接链接后,如何启动VBS脚本? 预先感谢. 解决方案 您可以启动一个vbscript,该VBScript循环寻找来自Internet网站/设备/其他任何内容的响应.当它看到它时,它将执行代码,否则它将尝试多达xx分钟并流产,例如: Const strTarget = "cnn.com" startTime = Time boolExitFlag = False Do ' Check to see if I can get a ping response from target If Ping(strTarget) Then ' Call the code to run on connect Call runOnWIFI boolExitFlag = True End If WScript.sleep 1000 ' Pause for 1
我们开发了一个在阻塞模式下使用ConnectNamedPipe()的XP应用程序. 在WIN 7上测试时,应用程序的行为就好像没有阻碍:ConnectNamedPipe()在其VBS客户端连接之前返回.呼叫streamReader.readline()时,提出了一个例外("等待一个过程打开管道的另一端").使用调试器运行时,即使在Win 7! 中也不会发生这种情况. 这些是我们正在使用的功能: [ DllImport("kernel32.dll", SetLastError = true)] public static extern SafeFileHandle CreateNamedPipe( String pipeName, uint dwOpenMode, uint dwPipeMode, uint nMaxInstances, uint nOutBufferSize, uint nInBufferSize, uint nDefaultTimeOut, IntPtr
我刚收到此VBS代码,该代码在MS" Word" 2003中附加到我的表中的一行.它可以正常工作,但是我希望它在不打开文件的情况下将行添加到表中.是否可以 ?或者,也许我需要使用一些命令,该命令在打开后立即关闭. Set wd = CreateObject("Word.Application") wd.Visible = True Set doc = wd.Documents.Open ("c:\docs\addtotable.doc") Set r = doc.Tables(1).Rows.Add aa = Split("turtle,dog,rooster,maple", ",") For i = 0 To r.Cells.Count - 1 r.Cells(i + 1).Range.Text = aa(i) Next 解决方案 如果您不想打开Word的窗口,请使用" WD. Visible = false",而不是" WD. Visible = true"
我的应用程序中正在使用MSScript.ocx,这是Windows的ActiveX脚本主机. 尽管我希望能够将其用于XP嵌入式(XPE),这是可以自定义的. 1.我想知道是否可以选择安装xpe,msscript.ocx? 2.它是从哪里安装的,即? 3.或它是XPE设置期间安装的Windows Core组件吗? 回答任何或全部这些问题都会对我有很大帮助. 预先感谢. sam. 解决方案 我认为它没有使用Windows XP运送(不是100%确定)... ,但最好的选择是与安装程序一起运输(即使它已发货,也可以将其删除).关于安装 - 您可以将其放在想要的位置(在程序文件中的程序文件夹中可以),重要的是注册它. 制作安装程序的最佳选择 - 编辑: 参考 脚本控制船与视觉 基本6.0;但是,Visual Basic 6.0 设置不安装脚本 为您控制.控制是 位于CD目录 常见\ Tools \ vb \ script.安装 脚本控制,尝
当我手动替换图标时(即,不是在Explorer中的文件夹选项窗口中)时,图标不会更新.例如,如果我执行此批次代码: REG ADD HKCR\testfile\DefaultIcon /ve /d "C:\test.ico,0" /f 图标(s)在文件夹选项中的列表中表现出的,但是图标未在桌面或资源管理器中更新. 如果我只点击任何文件类型的"更改图标"按钮并退出文件夹选项窗口,则会更新图标.但据我所知,这不能通过批处理或VB进行. 重新启动Explorer.exe确实有效,但是如果我这样做,则由于某种原因,任务栏中的"应用程序"选项卡会变得越来越小(例如:当应用程序最大化时,我不能只是单击"任务栏"中的"选项卡"要最小化它 - 我实际上必须右键单击它并击中最小化...).更不用说,如果我这样做,所有打开的Explorer窗口都会关闭,这有点麻烦. 我还拥有 Tuneup Utilities 的副本,它具有重新加载图标缓存的选项,并且确实可以像预期的那样工作.但
我正在寻找一种将一些文本放在剪贴板上的方法,并使用 vbscript .有问题的VBScript将作为我们登录脚本的一部分部署.我想避免使用干净的Windows XP系统上无法使用的任何东西. 编辑: 回答有关这是什么的问题. 我们希望鼓励组织内的用户使用文件服务器传输文档,而不是通过电子邮件不断发送附件.最大的障碍之一是,对于人们来说,正确的网络路径是文件/文件夹的正确障碍.我们开发了一个快速脚本,并将其附加到Windows上下文菜单上,以便用户可以右键单击任何文件/文件夹,并获取可以通过电子邮件发送给我们组织中某人的URL. 我希望在对话框中显示的URL也放在剪贴板上. getNetworkpath 解决方案 Microsoft不能为VBScript提供直接访问剪贴板的方法.如果您在这个网站您会看到: 尽管应用程序的Visual Basic支持屏幕,打印机,应用程序,调试,ERR和剪贴板对象,但VBScript仅支持ERR对象.因此,VBScri
如何使用我正在使用以下脚本.它在Windows XP上工作正常,但在Windows Vista上给了我一个错误: strUserName = "username" strPassword = "password" strComputer = "." set objSystem = GetObject("WinNT://" & strComputer) set objUser = objSystem.Create("user", strUserName) objUser.SetPassword strPassword objUser.SetInfo 解决方案 我能够在我的Vista框上运行此脚本,并且可以创建用户. 我怀疑您可能会出现UAC问题. 选项1 - 代码通过提高权限重新启动: If WScript.Arguments.length = 0 Then Set objShell = CreateObject("Shell.Application")
我在服务器上有一个文件夹(Windows Server 2012 R2),该文件夹与所有人共享.我所有的用户每天上传一个纯文本清单文件.然后,我有一个安排在管理员凭据下运行的VBScript,该凭据在阅读这些文件后删除这些文件.但是,我在尝试删除或移动文件时会获得权限拒绝错误. 这是一些失败的简单代码: Dim PathtoInventoryFiles Dim myFSO Dim myFile Dim colFiles PathtoInventoryFiles = "D:\Inventory$" Set myFSO = CreateObject("Scripting.FileSystemObject") Set colFiles = myFSO.GetFolder(PathtoInventoryFiles).Files For Each myFile In colFiles wscript.echo myFile.path 'Tried both of t
在我的Windows Server 2008 R2上,我安装了一个com对象,可以从经典的ASP页面创建它. 当我从vbscript文件调用它时,我会收到"无法创建"消息. 我尝试启动PowerShell作为管理员,并使用它来运行脚本.没有运气. 我尝试给予"每个人"用户对COM DLL的完全控制.没有运气. 有什么想法? 解决方案 对我来说唯一有意义的是,com对象与类ASP的比特性与与脚本引擎的比特性不同.我不知道,但是我想经典的ASP是32位,您的com对象是32位. 检查它是否是位(32和64位之间的不匹配),请转到命令行和type cscript myscript.vbs 其中myScript.vbs是您的vbscript文件的名称/路径.然后,从命令行键入 C:\Windows\SysWOW64\cscript myscript.vbs 从标准命令提示符运行的cscript(或wscript)的版本为64位.从\Win
我们使用IIS6在服务器2003计算机上运行的现有网站,并使用经典ASP编码到服务器2008 64位机器,使用IIS7和Classic ASP.页面的唯一更改是我们需要新连接字符串的宇宙DB的呼叫.我们测试了运行4-5个用户的部门中的所有页面,一切都很好.当我们为每个人(40至100个用户之间)活着时,用户会立即失去会话变量,而其他则在3分钟后. . IIS7中是否有一个设置可能会为会话变量分配的内存即可吗?还是有人对可能发生的事情有其他想法.谢谢. 解决方案 坏驱动程序;在64位OS中崩溃 其他解决方案 我也有同样的问题,显然通过将应用程序池更改为经典而解决. Net AppPool,尚未测试我的整个应用程序,但显然已解决 其他解决方案 我现在无法在这里和现在进行测试,但是如果我没记错的话,您必须提供ASP应用程序自己的应用程序池(请参阅IIS设置中的适当部分).
我正在尝试通过名为WINSCP的软件连接到SFTP服务器,这是一个安全的FTP客户端,我可以通过发送键并在psuedo无人值守的模式下脚本脚本来工作,但是该服务器必须具有用户登录在发送键,我需要winscp登录和传输文件,就像控制台无法启动的服务一样. 我尝试遵循有关的教程 winscp 网站(用于自动化/无人值守的转移,但它给我带来了错误: cannot find library(来自我与com关联的DLL文件) 运行以下代码时我遇到的错误是: line 13, Char: 2 Could not created object named "WinSCP.SessionOptions" Code: 80040154 Source: Wscipt.CreateObject 我还应该提到,当我在第13行上删除代码以查看这是否是唯一的问题 时,关于创建会话对象的第21或22行有类似的错误
我有一个vbscript脚本,我自己运行时运行良好. 出于某种原因,当我以管理用户为管理者在任务调度程序下运行它时,它会运行,但甚至没有写入我的日志文件.不应该是权限,因为 用户我运行它是管理员. 它的脚本调用Win2008 64位机器上的32位DLL. c:\ windows \ syswow64 \ cscript.exe bob.vbs 我还将本地目录设置为从. 运行的位置 具有讽刺意味的是,任务调度程序说"成功完成"任务. 另外,任务调度程序在运行良好中还有其他脚本,只是此脚本. 有人有我可以检查的东西列表吗? 解决方案 我在我的SVN服务器上运行计划任务的类似问题. 我的脚本正在写入我认为是当前的工作目录(我为任务指定为"启动"文件夹的目录).如果我登录服务器并运行脚本,则可以正常工作.当作为计划的作业运行时,它不会. 在我的情况下,看起来调度程序将工作目录重新分配为用于运行工作的用户帐户中指定的目录,而不是我为任务指
我刚刚在Windows Server 2008服务器上安装了第三方应用程序 我得到 Activex组件无法创建对象 消息尝试使用vbscript中的CreateObject访问时. 它肯定是安装并存在于"程序和功能"下的.有人有我可以检查的事情清单以找出正在发生的事情吗? 我现在尝试使用建议的regsvr32.exe /i bob.dll注册DLL,但我会收到此错误: 已加载模块" bob.dll",但入口点dllregisterserver是 找不到. 确保" bob.dll"是有效的DLL或OCX文件,然后重试. 我应该注意,这是64位机器上的32位应用 这点.它在我的机器上也可以正常工作,这是Windows XP 32位. 解决方案 事实证明,根据VBScript,我必须做两件事. 运行Regasm.exe注册DLL. 运行C:\ Windows \ syswow64 \ cscript.exe运行我的vbscript.
.focus()函数将在Windows Server 2003中无法使用.我可以做任何使它起作用的事情吗? WScript.Sleep 1000 .getElementByID("quickSearchMsisdn").value = "085729916" WScript.Sleep 1000 .getElementByID("quickSearchMsisdn").value = "0857299167" WScript.Sleep 1000 .getElementByID("quickSearchMsisdn").value = "0857299167" .getElementByID("quickSearchMsisdn").Focus WScript.Sleep 10000 .getElementByID("doSendSMS").click 是登录我的在线移动帐户并向我发送自动文本.该页面的设计方式都需要单击. 解决方案 您可能需要尝试使用Fi
我有一个任务调度程序. 任何帮助都将不胜感激,这是vbscript脚本: set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "cmd" WScript.Sleep 100 WshShell.AppActivate "C:\Windows\system32\cmd.exe" WScript.Sleep 300 WshShell.SendKeys "telnet 10.20.70.254{ENTER}" WScript.Sleep 300 WshShell.SendKeys "netscreen" WScript.Sleep 300 WshShell.SendKeys "{ENTER}" WScript.Sleep 300 WshShell.SendKeys "netscreen" WshShell.SendKeys "{ENTER}" WScript.Sleep 300
我在Win2003服务器Web应用程序上突然收到此错误: Microsoft VBScript运行时错误'800A0006' 溢出:'appName' 在此服务器上执行的一堆更新,但我将它们全部滚动. 页面是旧的ASP代码,如果我运行文件监视器实用程序,则在击中GIF时显示缓冲区溢出. 有什么想法? 解决方案 Microsoft VBScript runtime error '800a0006'几乎总是指示除零误差的划分. 其他解决方案 您可以重现这样的错误: Dim testVar testVar = 99999 testVar = CInt(testVar) 因此,也许这表明您在该文件上设置一些变量的数据类型存在一些问题? 其他解决方案 您可以弄清楚错误中发生错误的地方吗?您可以使用 响应.写入"此处" 响应.End 然后加载页面以查看其要点.然后,您可以发布崩溃的代码,我们也许可以为您提供更多帮助.
目标:将本地用户帐户共享级别的读/写入权限到现有文件共享. 我正在开发这一障碍时遇到了障碍.显然,微软希望您将用户的ACE添加到DACL中,然后回到共享的安全描述符中. (1). (否,净共享/加上现有股票不可用,我感到惊讶.) 理论上应该足够简单,但是我的主要恐惧是做错了并丢失了现有的份额权限(很多网络用户,特定组).该解决方案需要扩展到几千股.我正在开发解决现有DACL数据的解决方案,以防我需要退出.我应该编写代码来解释该日志,并准备在任何问题上都添加回去. 目前我正在使用vbscript-我觉得PowerShell可能会更强大,但是VBScript/WMI是已知数量. 研究: (1) http:http://blogds. msdn.com/b/helledorld/archive/2008/07/22/editing-share-permission.aspx 解决方案 将现有ACE复制到数组: rc = shareSec.GetSecuri
我有多个在Windows 2003服务器上运行actactemate的用户.我想杀死由user_1启动的nestemate.exe,而无需杀死actachemate.exe由user_2启动. 我想使用vbscript. 解决方案 您可以使用它来找出过程所有者是谁,然后一旦您拥有Win32_Process,可以通过进程ID杀死该过程. msdn win32_process类详细信息 msdn用win32_process /p> 肯定有一种更干净的方法可以做到这一点,但这是我想到的.注意:当然,这并不涉及相同名称的多个过程,但是我认为您可以用数组来固定它们或类似的东西. :) strComputer = "." strOwner = "A111111" strProcess = "'notepad.exe'" ' Connect to WMI service and Win32_Process filtering by name' Set objWMIS