求破解一EXCEL的VBA密码
网上有很多, 可是你为什么要破解呢给你个绝对可以破解的 run 破解Option ExplicitPrivate Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" _ (Destination As Long, Source As Long, ByVal Length As Long)Private Declare Function VirtualProtect Lib "kernel32" (lpAddress As Long, _ ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As LongPrivate Declare Function GetModuleHandleA Lib "kernel32" (ByVal lpModuleName As String) As LongPrivate Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, _ ByVal lpProcName As String) As LongPrivate Declare Function DialogBoxParam Lib "user32" Alias "DialogBoxParamA" (ByVal hInstance As Long, _ ByVal pTemplateName As Long, ByVal hWndParent As Long, _ ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As IntegerDim HookBytes(0 To 5) As ByteDim OriginBytes(0 To 5) As ByteDim pFunc As LongDim Flag As BooleanPrivate Function GetPtr(ByVal Value As Long) As Long '获得函数的地址 GetPtr = ValueEnd FunctionPublic Sub RecoverBytes() '若已经hook,则恢复原API开头的6字节,也就是恢复原来函数的功能 If Flag Then MoveMemory ByVal pFunc, ByVal VarPtr(OriginBytes(0)), 6End SubPublic Function Hook() As Boolean Dim TmpBytes(0 To 5) As Byte Dim p As Long Dim OriginProtect As Long Hook = False 'VBE6.dll调用DialogBoxParamA显示VB6INTL.dll资源中的第4070号对话框(就是输入密码的窗口) '若DialogBoxParamA返回值非0,则VBE会认为密码正确,所以我们要hook DialogBoxParamA函数 pFunc = GetProcAddress(GetModuleHandleA("user32.dll"), "DialogBoxParamA") '标准api hook过程之一: 修改内存属性,使其可写 If VirtualProtect(ByVal pFunc, 6, &H40, OriginProtect) 0 Then '标准api hook过程之二: 判断是否已经hook,看看API的第一个字节是否为&H68, '若是则说明已经Hook MoveMemory ByVal VarPtr(TmpBytes(0)), ByVal pFunc, 6 If TmpBytes(0) &H68 Then '标准api hook过程之三: 保存原函数开头字节,这里是6个字节,以备后面恢复 MoveMemory ByVal VarPtr(OriginBytes(0)), ByVal pFunc, 6 '用AddressOf获取MyDialogBoxParam的地址 '因为语法不允许写成p = AddressOf MyDialogBoxParam,这里我们写一个函数 'GetPtr,作用仅仅是返回AddressOf MyDialogBoxParam的值,从而实现将 'MyDialogBoxParam的地址付给p的目的 p = GetPtr(AddressOf MyDialogBoxParam) '标准api hook过程之四: 组装API入口的新代码 'HookBytes 组成如下汇编 'push MyDialogBoxParam的地址 'ret '作用是跳转到MyDialogBoxParam函数 HookBytes(0) = &H68 MoveMemory ByVal VarPtr(HookBytes(1)), ByVal VarPtr(p), 4 HookBytes(5) = &HC3 '标准api hook过程之五: 用HookBytes的内容改写API前6个字节 MoveMemory ByVal pFunc, ByVal VarPtr(HookBytes(0)), 6 '设置hook成功标志 Flag = True Hook = True End If End IfEnd FunctionPrivate Function MyDialogBoxParam(ByVal hInstance As Long, _ ByVal pTemplateName As Long, ByVal hWndParent As Long, _ ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Integer If pTemplateName = 4070 Then '有程序调用DialogBoxParamA装入4070号对话框,这里我们直接返回1,让 'VBE以为密码正确了 MyDialogBoxParam = 1 Else '有程序调用DialogBoxParamA,但装入的不是4070号对话框,这里我们调用 'RecoverBytes函数恢复原来函数的功能,在进行原来的函数 RecoverBytes MyDialogBoxParam = DialogBoxParam(hInstance, pTemplateName, _ hWndParent, lpDialogFunc, dwInitParam) '原来的函数执行完毕,再次hook Hook End IfEnd FunctionSub 破解()If Hook ThenMsgBox "破解成功"End IfEnd SubSub 恢复()RecoverBytesMsgBox "恢复成功"End Sub
我抓了一个WPA格式的握手包怎么破解密码?我用EWSA破解了一天...
目前的破解方法是我们获得握手包后,用我们字典中的PSK+ssid先生成PMK(如果有HASH表则略过),然后结合握手包中的(客户端MAC,AP的BSSID,A-NONCE,S-NONCE)计算PTK,再加上原始的报文数据算出MIC并与AP发送的MIC比较,如果一致,那么该PSK就是密钥。
目前最耗时的就是算PMK,可谓破解的瓶颈。
即使搞定了运算量的问题,海量的密钥存储也是个问题(PMK都是64字节长度)! 最近出来的tkiptun-ng只是可以解开使用tkip加密了的数据包,并不是说能够快速算出PMK或PSK。
如果感兴趣,可以到书店看看讲哈希的书,说不定你把这些HASH算法都破解出来了。
wpa_supplicant套件中有个小工具,叫做wpa_passphrase,它和airolib-ng的作用差不多,都是用来生成PMK,在backtrack中应该自带这个工具。
比如有个ssid为TP-LINK,PSK是12345678,那么生成PMK的方法就是wpa_passphrase TP-LINK 12345678,结果应该是这样: network={ ssid="TP-LINK" #psk="12345678" psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da psk=1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da其实就是PMK了,一般在电脑上运行查看无线密码的软件就是得到这个,把1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da直接输入到无线客户端中就可以连上该ssid,相当于输入了12345678,生成PMK的过程是不可逆的,即无法通过1eecc652f354863e9f985a96d48545c4994e0d21b04955432b60c2600c0743da来逆推得到12345678。
可以看到同样是psk是12345678,如果ssid名字改变,那么pmk就会发生改变,这就是为什么用airolib-ng建表是只能按ssid生成。
去看详细教程。
用字典破解
jsp做一个最简单的,连接数据库,实现增删改查人员姓名的功能。
一定...
展开全部 (1)把mysql的驱动放到tomcat的lib中(2)建一个很简单的表person就两个字段username和password,数据库名和数据库密码换成你的就是了 create database ibatis;--创建数据库 use ibatis;--使用数据库,以下表在该数据库中 create table person(username varchar(20),password varchar(20));--创建person表 (3)创建index.jsp和regist.jsp 1: index.jsp 提交表单页面 username : password : 2:regist.jsp //用户注册同时显示所有用户 这也是我从网上找了一个例子,大概流程就是这样,慢慢来。
适用shell实现以下功能自动建立账号和密码以及删除账号
#!/bin/bash#Program# Add ten user#Date 2014/12/24#Email# kinyou_xy@126.comPATH=/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/binexport PATH#定义添加用户的名字user_name=user#初始化添加用户的密码user_pwd=123456echo "Add user start......"for(( i=1;i<=10;i=i+1 ))douseradd $user_name$iecho $user_pwd | passwd --stdin $user_name$idoneecho "Add user end......"
Oracle GoldenGate具体有什么作用或功能是什么(ITJOB)?
展开全部 Oracle GoldenGate 用于在各种企业系统间以亚秒级速度复制和集成事务数据,是同类最佳的、易于部署的产品。
Oracle GoldenGate 可以灵活地在同类和异类系统(包括不同版本的 Oracle Database、不同的硬件平台)之间以及 Oracle 数据库和非 Oracle 数据库(包括 Microsoft SQL Server、用于开放系统和 z/OS 的 IBM DB2、Sybase 等等)之间移动数据。
本文演示如何安装、设置和配置此产品以轻松实现 Oracle Database 10g 和 11g 之间数据的无缝复制,还介绍了此产品的加速能力。
Oracle 于 2009 年收购了 GoldenGate,我们可以看到在全球各行业超过 4,000 个解决方案中实施了 Oracle GoldenGate。
该软件执行实时的、基于日志的更改数据捕获 (CDC),能够在异构数据库间以极低的延迟和很小的空间移动大量事务数据。
通常,您部署 GoldenGate 捕获、数据泵和交付进程,并且可将这些进程部署在许多不同的操作系统和数据库上。
可根据目标数据库的需要,复制所有数据或部分数据。
当 Oracle GoldenGate 用于 Oracle 数据库时,可以复制数据操作语言 (DML) 和数据定义语言 (DDL) 操作。
(目前只能在同类(不能在异类的)Oracle 版本间复制 DDL 操作。
)Oracle GoldenGate 官方支持 Oracle9i 第 2 版到 Oracle Database 11g 第 2 版,并且对所有这些版本提供 DML/DDL 支持。
该产品可用于 Oracle Database 的企业版和标准版。
如上所述,可以在所支持的同类或异类 Oracle Database 版本间移动数据,也可以在 Oracle 数据库和非 Oracle 数据库间移动数据。
大多数情况下,可对数据进行筛选、映射和转换。
注意,如果启用了 DDL 支持(换言之,如果使用 GoldenGate 进行同类 Oracle Database 版本之间的 DDL 复制),则不支持数据筛选、映射和转换。
Oracle GoldenGate 是以 DBA 为中心的,因此 DBA 很容易学会如何使用它。
其实现时间也是最少的 — 一些站点只用一个月的时间就完全付诸实现。
可获得什么 Oracle GoldenGate 产品系列包括: Oracle GoldenGate Management Pack for Oracle GoldenGate(也称为 Oracle GoldenGate Director)Oracle GoldenGate Veridata Oracle GoldenGate Application Adapters Oracle GoldenGate for Mainframe 为使增值服务造福客户,Oracle GoldenGate 核心许可包括 Oracle Active Data Guard 的全权使用许可和 Oracle Database 中 XStream 的全权使用许可。
XStream 是与 Oracle Streams 接口的 API。
Oracle Active Data Guard 支持主动打开备用数据库以提供报表服务,甚至在应用重做数据的同时也如此。
这个特性非常棒,可将生产报表和查询工作分流到备用数据库上。
一直以来,Oracle Streams 只用于在 Oracle 数据库间复制数据。
Oracle GoldenGate 还可以在非 Oracle 数据库间复制数据,并且这种复制易于建立。
我们应注意到,已发布的 Oracle — GoldenGate 发展方向声明中指出,“由于 Oracle GoldenGate 的战略性,将继续支持 Oracle Streams,但不会对其进行主动增强。
而是对 Oracle Streams 中最好的内容行评估以确定是否将其并入 Oracle GoldenGate 中。
” 此演示的目的 为了进行此次演示,您应在一台 Microsoft Windows 服务器上有三个数据库。
这三个数据库是 HRPRD1、HRPRD2 和 HRPRD3。
其数据库版本分别为 Oracle Database 11g、Oracle Database 10g 和 Oracle Database 10g。
这三个数据库的 SYS 和 SYSTEM 口令已设置为 hrpassword1,用于测试目的。
稍后可更改此口令。
此演示的目的是在 HRPRD2 和 HRPRD3 这两个 Oracle 10g 数据库的 HR.EMPLOYEES 表之间建立单向复制。
对第一个数据库中此表的 DML 更改应传给第二个数据库。
然后,我们将对这一复制进行增强,可以将更改同时复制到 Oracle 11g 数据库 HRPRD1 中。
其结果是,对 HRPRD2 中该表的任何更新、插入和删除不仅将会成功更新 HRPRD3,也会成功更新 HRPRD1。
这种从 Oracle Database 10g 到 Oracle Database 10g 然后再到 Oracle Database 11g 的复制策略常用于升级情况,进行升级时,需要先复制数据,然后方可切换到升级后的数据库版本。
Oracle GoldenGate 提供了简单的解决方案。
注意,针对 Oracle 数据库时,您不 需要使用 Microsoft ODBC 数据源管理器为这些数据库创建数据源名称 (DSN)。
Oracle GoldenGate 复制将使用监听器直接连接到 Oracle 数据库。
需要下载的内容 首先,对于 Windows 系统,需要从 Microsoft 下载中心下载 Microsoft Visual C ++ 2005 SP1 Redistributable Package,然后进行安装。
如果计算机上未安装 Visual C++,这用于安装运行本应用程序时所需的 Visual C++ 库的运行时组件。
接下来,需要从 Oracle 技术网下载 Oracle GoldenGate 软件。
截至本文撰写时,OTN 只支持 Windows 平台 64 位版本:适用于 Windows 2000、XP 和 2003(64 位)上的 Oracle 10g 的 Oracle GoldenGate 10.4.0.x 版 (8 MB)。
要下载 32 位 Windows 版本,您必须使用 Oracle E-Delivery 网站。
(请注意,E-Delivery 下载有一个为期 30 天的试用产品许可,而非 OTN...
怎么用flask+mysql来实现一个简单的用户注册和登陆效果的页面
一个简单的用户注册和登录的页面,就两个部分。
涉及到数据库,存储用户数据(注册),读出用户数据(登录验证)。
搞清楚如何用python连接和操作数据库即可,还有了解sql数据库语句,sqlite和mysql差不多的,看几眼多试几下就了解了。
网站程序,前端如何发送表单(别告诉这你也不清楚?)后端获取用户发送的请求,和数据库中数据验证是否能够登录,然后登录后如何保存用户登录信息,就是使用的cookie,不过在flask中是session(其实session也是cookie,flask把它封装了下,成了加密的cookie)总之如果你认真跟着官方的教程走过一遍。
只是完成用户登录和注册的功能都不难的。
虽然这些知识点都不烂,但是覆盖范围还比较广泛。
数据库,前端的html,后端的程序框架,你对其中一项不太了解都会让你有种无法下手的感觉。
好吧。
丢一段验证登录代码上来,因为flask的路由是通过绑定一个个函数来实现的,如果你要在给每个路由都添加一段验证登录的代码还是蛮麻烦的,不过通过装饰器这个功能实现起来还是蛮方便的。
。
如何在mysql数据库中重设jira系统管理员密码
在mysql数据库中重设jira系统管理员密码,需要在用户管理表jira_user_admin做更新操作:sql语句如下:UPDATE jira_user_admin SET password=新的密码值update语法Single-table语法:UPDATE [LOW_PRIORITY] [IGNORE] tbl_nameSET col_name1=expr1 [, col_name2=expr2 ...][WHERE where_definition][ORDER BY ...][LIMIT row_count]
如何发布Node模块到NPM社区
展开全部 安装node和npm 安装node(注意:需要Python 2.6或2.7已经安装) $ wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz$ tar -zxvf node-v0.10.26.tar.gz$ make && make install 成功安装node之后,npm(node package manager)已经包含在内了,不需要独立安装,可以执行一下npm检查是否安装好。
$ npmUsage: npm 创建repository 接下来我们需要创建module所需的repository,默认你拥有一个github账号(如果没有自行解决),这个repository用来托管我们module的代码,并方便用户报告bug,最重要的是可以让其他开发者向module贡献代码,这也是乐趣所在。
初始化package.json 接下来我们创建package.json文件,这个文件包含了module的所有信息,比如名称、版本、描述、依赖、作者、license等。
笔者以自己的easy_mongo(注意:npm要求项目的名称必须为小写字母)项目为例,看如何创建package.json。
首先创建我们module的目录 $ mkdir easy_mongo && cd easy_mongo 之后执行npm init,系统会提示你输入所需的信息,不想输入的直接输入Enter可以跳过。
$ npm initThis utility will walk you through creating a package.json file.It only covers the most common items, and tries to guess sane defaults.See `npm help json` for definitive documentation on these fieldsand exactly what they do.Use `npm install --save` afterwards to install a package andsave it as a dependency in the package.json file.Press ^C at any time to quit.name: (node) easy_mongoversion: (0.0.0) 0.1.0description: An easy mongodb client for node.js based on native mongodb driver.entry point: (index.js)test command: make testgit repository: https://github.com/JeremyWei/easy_mongo.gitkeywords: Mongodb node easyauthor: JeremyWeilicense: (BSD-2-Clause) MIT 输入完成之后,系统会要你确认文件的内容是否有误,如果没有问题直接输入yes,那么package.json就创建好了。
About to write to /Users/weizhifeng/dev/node/package.json:{"name": "easy_mongo","version": "0.1.0","description": "An easy mongodb client for node.js based on native mongodb driver.","main": "index.js","directories": {"example": "examples"},"scripts": {"test": "make test"},"repository": {"type": "git","url": "https://github.com/JeremyWei/easy_mongo.git"},"keywords": ["Mongodb","node","easy"],"author": "JeremyWei","license": "MIT","bugs": {"url": "https://github.com/JeremyWei/easy_mongo/issues"}}Is this ok? (yes) npm init创建的package.json文件只包含了基本的信息,我们还需要加入对其他module的依赖关系: "dependencies": {"mocha" : "1.18.2","should" : "3.3.0","mongodb" : "1.3.19"} 项目结构 package.json文件只是第一步,要完成一个module,我们还需要许多其他文件,整体的文件夹结构如下: easy_mongo├─┬ lib│ └── easy_mongo.js├─┬ test│ └── all.js├── .gitignore├── .npmignore├── .travis.yml├── index.js├── LICENSE├── makefile├── package.json├── README.md 这些文件的作用是: lib目录下存放业务逻辑文件test目录下存放单元测试用例.npmignore记录哪些文件不需要被发布到npmjs.org.travis.yml是持续集成服务travis的描述文件index.js是入口文件makefile方便我们用make test进行测试README.md是此module的描述和使用方法持续集成 开源项目多如牛毛,从中找出靠谱的项目需要花费一定的精力,开发者都会对持续更新,并且经过测试(很多公司采用)的项目更加的信赖,对于刚上线并且用户数量很少的项目开发者都会有个疑虑:这项目靠谱吗?所以你需要对自己的项目打上一个标识:老子的项目靠谱。
如何做?持续集成。
目前Github已经整合了持续集成服务travis,我们只需要在项目中添加.travis.yml文件,在下一次push之后,travis就会定时执行npm test来测试你的项目,并且会在测试失败的时候通知到你,你也可以把项目当前的状态显示在README.md中,让人一目了然,比如: .travis.yml是一个YAML文件,关于node.js相关的配置见这里,例子如下: language: node_jsnode_js: - "0.10" - "0.8" - "0.6" services: - mongodb这个例子的是让travis在node.js的0.6.x,0.8.x,0.10.x三个版本下对项目进行测试,并且需要mongodb的服务。
发布 完成了上面的步骤之后,我们接下来要在www.npmjs.org注册一个账号,这个账号会被添加到npm本地的配置中,用来发布module用。
$ npm adduserUsername: your namePassword: your passwordEmail: yourmail@gmail.com如果出现以下错误,可能是你的npm版本太低,通过sudo npm install -g npm升级一下。
npm WARN adduser Incorrect username or passwordnpm WARN adduser You can reset your account by visiting:npm WARN addusernpm WARN adduser http://admin.npmjs.org/resetnpm WA...
excel中好像有个放置猴子去射气球的游戏,请问哪里有得下啊??
一:纸牌游戏 启动Excel程序,依次点击工具栏中“工具/自定义”菜单,切换至“命令”标签页,选中左侧“类别”栏中的“工具”菜单,向下拖动右侧“命令”栏侧边滑块,找到带有纸牌图形的“自定义”选项(如图),将它拖至Excel工具栏中,点击“关闭”按钮将“自定义”对话框关闭。
现在,Excel工具栏中就多了一个纸牌按钮,点击该按钮,熟悉的纸牌游戏界面就出现在你面前了。
二: MicroSoft Excel 2000 暗藏赛车游戏 1.开启Excel之后随便开一新文档,将它『另存成Web画面 』,按下发布后再将“添加交互对象”打勾,将档案储存为car.htm(文件名可自取)。
2.在IE中开启car.htm,你应该会看到电子表格出现在网页中央,如图1: 图1 3.在这个工作表中,先用PageDown键移动工作表的矩形光标直至第2000行,注意只能用PageDown键,然后用Tab键横向向右移动光标直至WC列,也是只能用键操作,到此,所有的准备工作已经完毕,该是调出游戏的时候了。
4.同时按住Shift+Crtl+Alt 然后点选左上方的 Office logo 。
5.开始玩了,如图2: 图2 6.玩法提示: 玩游戏的时候,被你控制的是那一辆浅蓝色的汽车,操作的主要是四个箭头按键。
作用是:左右箭头可以控制汽车的方向:向上箭头可以加速, 向下的箭头减速;如果汽车运行到了夜间,可用H键打开车灯。
绝对好玩! 三:数字华容道 '先说个简单的。
大家玩过那个数字华容道吧,就是有N*N个格,有一格是空的,其他格是次序混乱的拼图或数字,游戏的目的就是利用这唯一的这个空格移动各块拼图把混乱的拼图(数字)恢复(顺序)。
这里我们小游戏的目的是要把1至15这15个次序混乱的数字恢复从1到15的顺序排列。
'打开Excel后打开代码编写器(Alt + F11),将如下代码写入模块中。
程序首先是初始化。
定义变量,选择4*4的空格,调整表格大小,改变单元格颜色(标示出游戏区域),然后是让1到15非重复随机分布到前15格空格中: Public Const PW = "Excelba.com" '本游戏由Excel吧bengdeng整理! Public Running As Boolean '用于判断游戏是否进行中,如果要中途退出或玩家需要重玩用此变量控制 Public SRan As Range '游戏左上单元格 Public BRan As Range '游戏空格单元格 Public N As Integer '游戏区域大小 Public GRan As Range '游戏区域,这里由N与SRan生成 Public Bs As Integer '游戏步数 Public STime As Date '游戏开始时间 Sub GameStar() Dim i As Integer Dim ii As Integer Dim temp As Integer Dim a(14) As Integer Dim down As VbMsgBoxResult '判断游戏是否在运行 If Running Then down = MsgBox("游戏正在进行!是否重玩?", vbYesNo, "提示 - " & PW) If down = vbNo Then Exit Sub End If Running = True N = 4 '设定游戏区域为4*4 Set SRan = Range("E5") '设定游戏开始单元格为E5 Set BRan = SRan.Offset(N - 1, N - 1) '设定游戏空单元格 Set GRan = Range(SRan, BRan) '游戏区域(颜色)初始化,省略了单元格大小的调整,大家可以应该加入相应语句让游戏外观整齐 If ActiveSheet.ProtectContents Then ActiveSheet.Unprotect Password:=PW GRan.ClearContents GRan.Interior.ColorIndex = 35 '随机数数组初始化,这里是编号0到编号14共15个数 For i = 0 To (N * N - 2) a(i) = i + 1 Next i '不重复随机分布各数 For i = N * N - 2 To 0 Step -1 Randomize ii = Int(Rnd * i) temp = a(i) a(i) = a(ii) GRan.Item(i + 1) = a(i) a(ii) = temp Next i Bs = 0 STime = Now() ActiveSheet.Protect Password:=PW End Sub '很明显,Excel的单元格是游戏的主角。
初始化后游戏开始,逻辑很简单:玩家每单击一个单元格(产生Workbook中的SheetSelectionChange事件),游戏就判断这个格是否在游戏区域中,若是就判断上下左右4个方向是否有空格,如果有空格就把原单元格中的数传到空格中,原单元格清空(空格与原单元格交换),然后判断游戏是否结束(1到15顺序排序了?),若还没有,什么都不做,等下一次单击事件发生。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim down As VbMsgBoxResult Dim i As Integer If Running Then '所单击单元格是否就是空格 If Len(ActiveCell) > 0 Then '所单击单元格是否在游戏区域 If Not (Application.Intersect(ActiveCell, GRan) Is Nothing) Then '所单击单元格上下左右是否有空格 If ((Abs(BRan.Column - ActiveCell.Column) <= 1 And BRan.row = ActiveCell.row) Or (Abs(BRan.row - ActiveCell.row) <= 1 And BRan.Column = ActiveCell.Column)) Then '单元格与空格交换 If ActiveSheet.ProtectContents Then ActiveSheet.Unprotect Password:=PW BRan = ActiveCell ActiveCell.ClearContents Set BRan = ActiveCell Bs = Bs + 1 ActiveSheet.Protect Password:=PW '判断游戏是否结束? i = 1 Do While (i < N * N And GRan.Item(i) = i) i = i + 1 Loop If i = N * N Then MsgBox "祝贺你!你成功了!" & vbCrLf & _ "一共用了" & Bs & "步!" & vbCrLf & _ "一共用用时" & Format(Now - STime, "h:m:s"), , PW Running = False End If End If ...
转载请注明出处51数据库 » libpassword作用
大波浪_