我想学习如何编程计算机.我觉得我对计算机比一般人更有经验,我每天都使用命令提示符,我知道如何在命令提示符下访问命令行,但我不知道应该从哪个程序开始,用什么语言使用.下载某种语言或使用我的计算机上的某个程序(如命令行或vbscript)会更好吗?
我今天早上下载了C#,已经编写了两个程序.他们是小型的控制台程序,但我学得很快,熟悉这门语言.
在批处理文件中,您可以使用%PROGRAMFILES%来获取程序文件目录的位置,如何在VBScript中执行此操作?
使用下面显示的Wscript.Network对象,有一种简单的方法来检索计算机上的默认打印机吗?我知道如何设置默认打印机,但我希望获得当前的默认打印机名称.我有Windows 2000,XP和7客户端的混合物,因此不想使用WMI.
Set objNetwork = CreateObject("WScript.Network")
Set objLocalPrinters = objNetwork.EnumPrinterConnections
Run Code Online (Sandbox Code Playgroud) 我在HTA中有VBScript从本地WMI调用获取ping状态..我还有一个函数来获取远程pc的最后一次重启时间..
Function GetReboot(strComputer)
Set objWMIService = GetObject _
("winmgmts:\\" & strComputer & "\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")
For Each objOS in colOperatingSystems
dtmBootup = objOS.LastBootUpTime
dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
Wscript.Echo dtmSystemUptime
Next
GetReboot = dtmLastbootupTime
End Function
Run Code Online (Sandbox Code Playgroud)
这大致就是它,显然我声明了变量,并有另一个日期函数等.
如果我WMI调用"localhost",因为我是本地管理员,这是有效的.但是当对远程服务器进行WMI调用时,这只有在我使用AD管理员帐户登录到本地计算机时才有效.
有没有办法可以提示用户输入用户名和密码,然后将其传递给WMI调用,以便它可以像管理员详细信息一样工作?
我正在尝试创建一个VBScript解析器.我想知道最好的方法是什么.我研究过和研究过.最流行的方式似乎是像Gold Parser或ANTLR这样的东西.
我想实现的功能是动态检查VBScript中的语法错误.每次文本更改时,我都不想编译整个VBS.我该怎么做呢?我尝试使用Gold Parser,但我认为没有增量方法可以通过它进行解析,比如部分解析树...有关如何为这种情况实现部分解析树的任何想法?
我通过GOLD Parser实现了VBscript Parsing.但是它仍然不是部分解析器,在每次文本更改后解析整个脚本.有没有办法建立这样的东西.
THKS
我到处找这个,真的有可能吗?如果您按 WIN + 向左箭头,它会将您选择的窗口安装到屏幕左侧,这正是我想要做的。
我试过这样的事情:
shl.sendkeys "#{LEFT}"
Run Code Online (Sandbox Code Playgroud)
因为我发现这#可能适用于 WIN,就像+适用于 Shift 和%Alt 一样。
这可能是一个愚蠢的问题,但它会帮助我很多。谢谢你的时间
在切换到使用 SQL Native Client (SQLNCLI) 作为 ADO 提供程序时,我们的旧应用程序遇到了问题。
我们原来的连接字符串是:
Provider=SQLOLEDB; Server=host; Database=bob; Integrated Security=SSPI;
Run Code Online (Sandbox Code Playgroud)
我们将其更改为:
Provider=SQLNCLI11; Server=host; Database=bob; Integrated Security=SSPI; DataTypeCompatibility=80;
Run Code Online (Sandbox Code Playgroud)
我们发现,在调用存储过程时,使用 adDBTimeStamp 参数,Native Client 似乎将时间戳视为 smalldatetime,而不是 datetime。这给我们带来了问题,因为我们在某些比较中使用 9999 年 12 月 31 日作为“最高端”日期,而 Native Client 因“无效日期格式”错误而失败,而 SQLOLEDB 没有问题。
现在看起来我们可能只能在创建参数时将 adDBTimeStamp 更改为 adDate 作为数据类型,但是我想知道在我们继续进行代码更改之前,连接字符串中是否缺少某些内容。
VBScript 代码重现如下。为免生疑问,在有人建议我们应该使用 12/31/9999 之前,日期格式是 UK (dd/mm/yyyy) :-) 但还要确认一下,CDate 不会失败。
Set db = CreateObject("ADODB.Command")
' If Provider=SQLOLEDB then there is no error.
db.ActiveConnection = "Provider=SQLNCLI11; Server=host; Database=bob; Integrated Security=SSPI; DataTypeCompatibility=80;"
db.CommandText = "usp_FetchData"
db.CommandType = &H0004
' …Run Code Online (Sandbox Code Playgroud) 我主要是一名 PHP 开发人员,但我有一些旧的 ASP,我们以前的开发人员之一弄坏了,我不知道如何修复它。我们有一个程序将一些变量发送到侦听器页面,该页面将这些数据与 msSQL 数据库的注册代码进行比较,然后让程序知道注册代码是否有效。
我收到以下错误
.Parameters.Append .CreateParameter("@code", adVarChar, 1, 50, x)
Run Code Online (Sandbox Code Playgroud)
是第 134 行:
ADODB.Parameters 错误“800a0e7c”
参数对象定义不正确。提供了不一致或不完整的信息。
/checkregistrationpro.asp,第 134 行
我已经在包含文件中指定了我未包含在代码中的任何命名常量,因此与此无关。
我的连接字符串(我已经验证这些设置是正确的):
set conn = Server.CreateObject("ADODB.Connection")
set cmd = Server.CreateObject("ADODB.Command")
sConnString = "Provider=sqloledb; Data Source=MYDATASOURCE; Initial Catalog=MYCATALOG; User ID=MYUSERID; Password='MYPASSWORD';"
conn.Open sConnString
Run Code Online (Sandbox Code Playgroud)
我的代码:
...
Function BlockInjectCode(StrVal)
BlockInjectCode = Replace(StrVal,"--","")
BlockInjectCode = Replace(BlockInjectCode,"'","")
BlockInjectCode = Replace(BlockInjectCode,"""","")
if instr(lcase(BlockInjectCode),"<") > 0 then
BlockInjectCode = ""
end if
End Function
x = BlockInjectCode(Request.QueryString("rid"))
uid = BlockInjectCode(Request.QueryString("uid"))
chkcode = BlockInjectCode(Request.QueryString("Code"))
CheckPro = …Run Code Online (Sandbox Code Playgroud) 所以我正在研究一些可以自动化 Internet Explorer 的 VBScript:打开它、导航并下载一个文件。我已经让它工作了,但是有一个问题在于我需要向它发送击键。SendKeys正在为我工作,但问题是当我习惯于AppActivate将焦点设置在 IE 上时,它并不总是有效。基本上可以分为以下两种情况:
案例 1:双击我的 .vbs 文件,自动化过程顺利进行。窗口被激活,一切正常。
情况 2:双击我的 .vbs 文件,其他一些应用程序会打开一个窃取焦点的窗口(或手动单击其他内容以更改焦点)。当AppActivate稍后执行该行时,IE 永远不会获得焦点并且击键显然不会通过。
那么你们对为什么AppActivate不设置焦点有什么想法吗?
这是我用来激活 IE 窗口的代码:
Do While Not wshell.AppActivate("Active Agents - Internet Explorer")
WScript.Sleep(1)
Loop
Run Code Online (Sandbox Code Playgroud) @ECHO OFF
DFC.EXE get /isfrozen
IF Errorlevel 1 GOTO Frozen
IF Errorlevel 0 GOTO Thawed
:Frozen
Echo Errorlevel 1 Computer is Frozen, Thawing Now
DFC.EXE fakepassword123 /BOOTTHAWED
Echo
Goto END
:Thawed
Echo Errorlevel 0 Computer is Not Frozen
Echo
Goto END
:END
Exit
Run Code Online (Sandbox Code Playgroud)
我正在尝试运行一个非常简单的批处理文件,但如果有人要编辑密码,我不希望以纯文本形式存储密码。
现在 DFC.exe 密码行是存储密码的地方。
有没有办法将此密码隐藏在另一个文件中并从那里调用它?
vbscript ×10
ado ×1
adodb ×1
antlr ×1
asp-classic ×1
automation ×1
batch-file ×1
command-line ×1
credentials ×1
dllimport ×1
focus ×1
gold-parser ×1
hta ×1
parsing ×1
powershell ×1
printing ×1
sqlncli ×1
vb6 ×1
windows ×1
wmi ×1