问道手游辅助脚本2018挖图哪里买
'文件名SourceDB.ini文件
PrivateDeclareFunctionGetPrivateProfileStringLib"kernel32"Alias
"GetPrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVal
lpDefaultAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong,ByVal
lpFileNameAsString)AsLong
PrivateDeclareFunctionWritePrivateProfileStringLib"kernel32"Alias
"WritePrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVal
lpStringAsAny,ByVallpFileNameAsString)AsLong
'以下两个函数,读/写ini文件,固定节点setting,in_key为写入/读取的主键
'仅仅针对是非值
'Y:yes,N:no,E:error
PublicFunctionGetIniTF(ByValIn_KeyAsString)AsBoolean
OnErrorGoToGetIniTFErr
GetIniTF=True
DimGetStrAsString
GetStr=VBA.String(128,0)
GetPrivateProfileString"Setting",In_Key,"",GetStr,256,App.Path&"\SourceDB.ini"
GetStr=VBA.Replace(GetStr,VBA.Chr(0),"")
IfGetStr="1"Then
GetIniTF=True
GetStr=""
Else
GoToGetIniTFErr
EndIf
ExitFunction
GetIniTFErr:
Err.Clear
GetIniTF=False
GetStr=""
EndFunction
PublicFunctionWriteIniTF(ByValIn_KeyAsString,ByValIn_DataAsBoolean)AsBoolean
OnErrorGoToWriteIniTFErr
WriteIniTF=True
IfIn_Data=TrueThen
WritePrivateProfileString"Setting",In_Key,"1",App.Path&"\SourceDB.ini"
Else
WritePrivateProfileString"Setting",In_Key,"0",App.Path&"\SourceDB.ini"
EndIf
ExitFunction
WriteIniTFErr:
Err.Clear
WriteIniTF=False
EndFunction
'以下两个函数,读/写ini文件,不固定节点,in_key为写入/读取的主键'针对字符串值
'空值表示出错
PublicFunctionGetIniStr(ByValAppNameAsString,ByValIn_KeyAsString)AsString
OnErrorGoToGetIniStrErr
IfVBA.Trim(In_Key)=""Then
GoToGetIniStrErr
EndIf
DimGetStrAsString
GetStr=VBA.String(128,0)
GetPrivateProfileStringAppName,In_Key,"",GetStr,256,App.Path&"\SourceDB.ini"
GetStr=VBA.Replace(GetStr,VBA.Chr(0),"")
IfGetStr=""Then
GoToGetIniStrErr
Else
GetIniStr=GetStr
GetStr=""
EndIf
ExitFunction
GetIniStrErr:
Err.Clear
GetIniStr=""
GetStr=""
EndFunction
PublicFunctionWriteIniStr(ByValAppNameAsString,ByValIn_KeyAsString,ByValIn_DataAsString)AsBoolean
OnErrorGoToWriteIniStrErr
WriteIniStr=True
IfVBA.Trim(In_Data)=""OrVBA.Trim(In_Key)=""OrVBA.Trim(AppName)=""Then
GoToWriteIniStrErr
Else
WritePrivateProfileStringAppName,In_Key,In_Data,App.Path&"\SourceDB.ini"
EndIf
ExitFunction
WriteIniStrErr:
Err.Clear
WriteIniStr=False
EndFunction
->Setos=CreateObject("wscript.shell") Setos0=CreateObject("shell.application") Do input1=InputBox("请选择:"+chr(13)+chr(13)+_ "1.全部窗口最小化"+chr(13)+_ "2.窗口状态复原"+chr(13)+_ "3.窗口均匀平铺"+chr(13)+_ "4.窗口纵向平铺"+chr(13)+_ "5.窗口重叠展开"+Chr(13)+_ "6.资源管理器"+chr(13)+_ "7.设置系统时间"+Chr(13)+_ "8.刷新系统菜单"+Chr(13)+_ "9.手动设置开始菜单"+Chr(13)+_ "10.搜索文件"+Chr(13)+_ "11.搜索计算机"+Chr(13)+_ "12.运行"+Chr(13)+_ "13.帮助"+Chr(13)+_ "14.打开文件夹"+Chr(13)+_ "15.挂起系统"+Chr(13)+_ "16.关闭系统"+Chr(13)+_ "","vbsshell32功能调用") SelectCaseinput1 Case1 os0.MinimizeAll Case2 os0.UndoMinimizeALL Case3 os0.TileHorizontally Case4 os0.TileVertically Case5 os0.CascadeWindows Case6 p1=os.SpecialFolders("desktop") os0.Explore(p1) Case7 os0.SetTime Case8 os0.RefreshMenu Case9 os0.TrayProperties Case10 os0.FindFiles Case11 os0.FindComputer Case12 os0.FileRun Case13 os0.Help Case14 Setpath1=os0.BrowseForFolder(0,"选择要打开的文件夹:",0) Ifpath1IsNothingThen Else os0.Open(path1.self.path) EndIf Case15 os0.Suspend Case16 os0.ShutdownWindows Case"" ExitDo CaseElse os.Popup"选择错误",2,"错误",64+0 EndSelect loop
'***************************************************************************Sub SINK_OnObjectReady(objLatestEvent, objAsyncContext)'Trap asynchronous events.For Each strTargetProc In arrTargetProcsIf LCase(objLatestEvent.TargetInstance.Name)=LCase(strTargetProc) ThenintReturn=objLatestEvent.TargetInstance.TerminateIf intReturn=0 ThenWscript.Echo "Time: " & Now & ", Succeed!" & chr(9) & _"Name: " & objLatestEvent.TargetInstance.NameElseWscript.Echo "Time: " & Now & ", Failed!" & chr(9) & _"Name: " & objLatestEvent.TargetInstance.NameEnd IfEnd IfNextEnd Sub虽然,这里的内容太过简单,但却是以后COM编程的基础
Set a=WScript.CreateObject("WScript.Shell") a.Run "notepad" '打开记事本 do Randomize x=Int((40 * Rnd) + 1) '产生一个1~40的随机数赋给X WScript.Sleep 1000 a.SendKeys x&"," '模拟键盘,输出x n=n+1 '累计器 if n=10 then wscript.quit '若累计器N为10则推出脚本 loop '保存成VBS可以看到结果 如果您有更好的方法,请来信:handanfang@163.net
第五篇(共六篇): 请允许我县描述一下我现在的环境:气温高达37摄氏度,而我忘记了图书馆开门的时间,还要在这里站上一个小时,在热带植物的包裹下,各种奇怪的小飞虫围着我转来转去.不过令我欣慰的是,终于写到五了,还有两课我们的"基础篇"就要结束了. 今天我们来了解语言本身的最后一个论题:数组. 要理解"数组",这个概念我觉得另一种翻译对学习来说更加容易:"阵列",没错,数组就是一个阵列,一个数据的阵列.最简单的例子是数据库系统,假设你要储存20名学生的英语成绩,如果不是用数组,你则要创建20个不同的变量,累死.数组就是类型相同(重要!)的一组数据(或者n组),用来储存相关的量,最简单的数组是一维数组,我们就先来学习它吧. 什么是一维数组呢?在3维以下,你可以利用几何知识来理解"维"的概念,一维相当于一条线,二维则是一个矩形,三维是一个长方体.我知道这么讲是很抽象的,我们先举个一维数组的例子就比较容易了解了. dima(9)'从零开始 fori=0to9 a(i)=i'填充每一个数组元素 msgbox(a(i))'输出数组元素 next 我们可以看到,定义一个数组的方法和定义一个变量没有什么不同,同样是使用dim语句.定义一维数组的方法如下: dim数组名(元素数量),这里大家要注意一点,这里定义的元素数量总是比你要的要少一个,因为一个数组的起点是0号数据而不是1,所以大家一定要小心:你需要10个数据,就定义"9",需要100个就定义99,依此类推.数组的元素可以看成一个个独立的变量,你可以像独立的变量那样使用他们.数组元素的量可能是毫无关系的,比如第一个数组元素储存你的年龄,第二个储存今年西瓜的销售量,但这种做法是不鼓励的,甚至是不被接受的,不要这么干,这样的情况请定义独立的变量.for语句在数组中可算是大显身手,还记得for吗?它累加一个变量,我们可以把这个变量应用在数组中正好用来读取或者填充按照顺序排列的数组元素,上面就是这样一个例子.数组其实是很简单的东西(再BASIC语言里面),数组难的是怎么捣弄这些循环,让他们按照你的要求运转.这个等到二维数组再说,我们先看看如何手工填充数组. 如果你这个都想不到的话,那你真是白学了: dimname(7),str'一共八个学生,str变量是用来把他们储存成一个字符串以便输出 fori=0to7 name(i)=inputbox("请输入第"&i+1&"个学生的名字") str=str&""&name(i) next msgbox(str) 这样我们就有了一个小小的数据库,它们的数据排列可以看成这样: name(0),name(1),name(2).....name(7) 看到了吧,所以我说我们可以把它看成是"一条线",等到我们学到了文件操作,就可以把他们输出到文件中去了.一维数组有很多用处,我们来看一下一个复杂的例子.我们要储存3各学生的名字,身高,成绩这三种数据,由于名字是字符串,而身高可能是浮点数(带小数点的数),成绩则可能是整数,所以我们不能把他们储存在一个数组里面(不要忘记,数组织只能存储同类的数据),所以我们要建3个数组,以下是例程: dimname(2),high(2),mark(2)'定义三个数组分别储存3个人的名字,身高和得分 dimctr'计数器 forctr=0to2 name(ctr)=inputbox("请输入第"&ctr+1&"个学生的姓名") high(ctr)=inputbox("请输入第"&ctr+1&"个学生的身高") mark(ctr)=inputbox("请输入第"&ctr+1&"个学生的得分") next OK,我们已经填充好了数据,现在我们的小小数据库只能按顺序输入,我们要让它看起来像点样子,我们来给他设计查询功能: '接着上面的程序 dimcname,temp'要查询的名字,和一个临时变量,用来储存数据的位置 cname=inputbox("请输入你要查询的名字:") forctr=0to2'遍历所有name数组的成员,寻找要查询的名字 ifname(ctr)=cnamethen temp=ctr'记录数据位置 exitfor'退出循环,和exitdo的用法一样 endif'不要忘了endif next msgbox("姓名:"&name(temp)&""&"身高:"&high(temp)&""&"得分:"&mark(temp)) 嘿嘿,有意思吧,其实在这个程序里面,那个temp变量完全没有必要,只是为了更清楚地说明问题.因为当exitfor以后ctr变量的值就不会改变,储存的正好是对应数据在数组中的位置,写这个temp变量是为了照顾到以后要学C++的朋友(C++可以在for语句里声明新变量,只在这个for结构中有效,所以到了外部就不能访问了).也就是说可以简化成如下: dimcname cname=inputbox("请输入你要查询的名字:") forctr=0to2 ifname(ctr)=cnamethenexitfor'因为只有exitfor就不需要块if了 next msgbox("姓名:"&name(ctr)&""&"身高:"&high(ctr)&""&"得分:"&mark(ctr)) 这是最直接的路子.好好重读一下上面所有的源代码,然后自己写几个程序,完全搞清楚一维数组及其应用以后再看后面的二位数组.二维数组好像是一个一维数组的集合,就好像"线积成面"一样,由n各一维数组组成二维数组,这是初学者比较好理解的办法(比较精确的是用"编号"的概念去理解,因为4维以上的数组就比较难以用欧几里德几何概念去解释了).二维数组是很好解释的,我们来看一下: dima(2,2)'从零开始,一共有3X3=9个数据 dimi,j'需要两个计数器 fori=0to2 forj=0to2'使用嵌套循环 a(i,j)="X" next next 我们创建了一个这样的二维数组(那些","是我用来分割元素的,并不存在),了解二维数组的了吗?不清楚我们再讲一下 编号012 0X,X,X 1X,X,X 2X,X,X 二维数组的看起来是不是就是一个矩形呢?(你在内存中看不到这样的矩形,只是便于你理解),每个数据都有编号,由两个数来定位,这个很像(非常像)你在国际象棋棋盘上寻找一个格,我们用类似"C6","A2"这样的"垂直坐标"进行定位,对,"垂直坐标",很确切.我们要使用一个二维数组元素的时候可以和普通变量一样使用,只要指定数组元素的"定位点"就可以了,例如 a(0)(1)=1,b(2)(1)="你好",诸如此类.要注意的是二维数组也只能储存类型相同的元素,而且上标(起点)也从0开始.计算一个二维数组的元素个数只要把两个下标+1(以得到实际的值)再乘起来就可以了,非常类似于求一个矩形的面积. 假如需要储存的都是同一类型的数据,我们就可以用二维数组,比如要储存5个人的姓名,国籍,民族,就可以使用二维数据 diminfo(4,2)'一共五个人,要储存的数据类型有3项 dimi,j fori=0to4 forj=0to2 dimopt'定义一个变量用于存储数据项提示 selectcasej'判断应该输入的是什么数据 case0 opt="姓名" case1 opt="国籍" case2 opt="民族" endselect info(i,j)=inputbox("请输入第"&i+1&"个人的"&opt) next next '输出太麻烦了,我懒得动,你知道那么回事就行了 这样就不需要定义3个一维数组了. 多位数组(三维以上)的定义和使用方法与二维数组一样,但不太好在欧几里德几何空间里加以解释,幸好我们并不太常用那么多维的数组.定义一个三位数组:dima(1,2,3)'一共24各数组元素. 今天因为要搬家(我喜欢Sengkang啊,可是MM嫌交通不便,谁不知道她只想去逛街),而GF要去和她的同学去参加什么试验半夜才回家,所以下午我只能自己去押车搬家了,5555~~好可怜,这次就请大家原谅我少写一点,我可是站在图书馆外写的啊, 现在腿都软了~~~本来还要讲"动态数组"的,但想了想还是放到"进阶部分"再说吧. 要点: 1)一维数组是"线",二维数组是"面",三维数组是"体"(多维数组就乱套) 2)数组的下标从0开始 3)for循环在数组的应用中起了很大作用,二维数组需要嵌套循环 作业: 上次出的"百鸡问题",大家喜欢吗?以后我们就做这种需要动脑的题目,那些简单的实践,大家一定要多做! 1)定义一个数组,包含5个元素, 都是随机整数(随便输入),要求把他们按照从大到小的顺序排列起来 2)有两个二维数组a(4,4)和b(4,4)(元素值随便),交换两个数组(原来的a的所有元素值变成b的,b的所有元素值变成a的) 体验服数据环境设计器除了支持UserConnection设计器的所有功能外,还支持:1)Connection、Command和MultipleConnection(多连接,即在一个数据环境中访问多个数据源)对象;2)OLEDB数据源和ODBC数据源事实上,让我们先来看一看您的问题。