用易语言编写一个程序,但是想让它在这台电脑被打开一次并被关闭后再不能被打开。请发一下完整的代码,谢谢
防止再次启动针对的是本台电脑,还是其他电脑都不允许,如果是本地的电脑只需在注册表里搞个标记就好了(这个非常简单,源码简单一笔带过)
.版本 2
.子程序 __启动窗口_创建完毕
.如果 (注册项是否存在 (4, “测试”) = 假)
写注册项 (4, “测试”, “1”)
.否则
信息框 (“已有程序运行过一次了,不能让你再运行(仅这台电脑而已)”, 0, )
结束 ()
.如果结束
接下来才是重点,只在自己电脑运行后本地的电脑以及所有的电脑都不准在运行第二次的源码(将数据写入自身,在哪台电脑都有效)!!
.版本 2
.支持库 spec
.支持库 shell
.支持库 dp1
.子程序 __启动窗口_创建完毕
.局部变量 命令行, 文本型, , "0"
.局部变量 自身路径, 文本型
.局部变量 已生成的检测程序, 字节集
取命令行 (命令行)
.如果真 (取数组成员数 (命令行) = 2 且 命令行 [1] = “run”)
已生成的检测程序 = 生成标记字节集 (读入文件 (命令行 [2]), 到字节集 (“一个检测”), 到字节集 (“test”))
.判断循环首 (写到文件 (命令行 [2], 已生成的检测程序) = 假)
延迟 (10)
.判断循环尾 ()
返回 ()
.如果真结束
.如果 (读取标记字节集 (到字节集 (“一个检测”)) = 假) ' 如果为假,则是第一次运行过的
自身路径 = 取运行目录 () + “\” + 取执行文件名 ()
复制文件 (自身路径, 取特定目录 (11) + 取执行文件名 ())
运行 (取特定目录 (11) + 取执行文件名 () + “ run ” + #引号 + 自身路径 + #引号, 假, )
结束 ()
' 写入第一次已运行过的标记,下次运行时就不会返回假了,则说明是第二次运行
.否则
信息框 (“已有第二次运行了,不能再让你运行了(任何电脑都不允许)!”, 0, )
结束 ()
.如果结束
.子程序 读取标记字节集, 逻辑型, 公开, 用于自身读取已传递标记的字节集,可读取出数据返回真否则假
.参数 标记, 字节集, , 在生成端创建的标记
.参数 取出字节集变量, 字节集, 参考 可空
.局部变量 自身字节集, 字节集
.局部变量 加密标记, 字节集
.局部变量 取出标记字节集, 字节集
自身字节集 = 读入文件 (取运行目录 () + “\” + 取执行文件名 ())
加密标记 = 加密数据 (标记, “我爱傻子”, ) ' 加密密码可以随便改
取出标记字节集 = 解密数据 (取字节集之后至字节集 (自身字节集, 加密标记, 加密标记 + 到字节集 (“end”), ), “我爱傻子”, )
.如果真 (取出标记字节集 ≠ { })
取出字节集变量 = 取出标记字节集
返回 (真)
.如果真结束
返回 (假)
.子程序 生成标记字节集, 字节集, 公开, 在生产端使用的,给调用端生成一个带标记的字节集
.参数 源程序, 字节集
.参数 标记, 字节集, , 与读取的标记一致且不得创建重复的标记,否则将覆盖前一个标记的字节集
.参数 欲增加字节集, 字节集, , 给调用端生成传递一个字节集
.局部变量 生成后的字节集, 字节集
.局部变量 加密标记, 字节集
加密标记 = 加密数据 (标记, “我爱傻子”, )
欲增加字节集 = 加密数据 (欲增加字节集, “我爱傻子”, )
生成后的字节集 = 源程序 + 加密标记 + 欲增加字节集 + 加密标记 + 到字节集 (“end”)
返回 (生成后的字节集)
.子程序 修改标记字节集, 逻辑型, 公开, 在创建的基础上进行修改传递的数据返回新修改的字节集
.参数 源程序, 字节集
.参数 标记, 字节集
.参数 欲修改字节集, 字节集
.参数 生成修改后的程序, 字节集, 参考 可空
.局部变量 生成后的字节集, 字节集
.局部变量 加密标记, 字节集
.局部变量 读取字节集, 字节集
加密标记 = 加密数据 (标记, “我爱傻子”, )
欲修改字节集 = 加密数据 (欲修改字节集, “我爱傻子”, )
读取字节集 = 取字节集之后至字节集 (源程序, 加密标记, 加密标记 + 到字节集 (“end”), )
生成修改后的程序 = 子字节集替换 (源程序, 读取字节集, 欲修改字节集, , )
.如果真 (到文本 (读取字节集) ≠ “”)
返回 (真)
.如果真结束
返回 (假)
.子程序 取字节集之后至字节集, 字节集, , 总的,参考取字节集之前+取字节集之后
.参数 源字节集, 字节集
.参数 起字节集, 字节集
.参数 至字节集, 字节集
.参数 是否包括起字节集, 逻辑型, 可空
.参数 是否包括至字节集, 逻辑型, 可空
.局部变量 取字节集之前, 字节集
.局部变量 取字节集之后, 字节集
取字节集之前 = 子字节集替换 (源字节集, 取字节集中间 (源字节集, 倒找字节集 (源字节集, 至字节集, ), 取字节集长度 (源字节集) + 倒找字节集 (源字节集, 至字节集, )), , , )
取字节集之后 = 子字节集替换 (取字节集中间 (取字节集之前, 倒找字节集 (取字节集之前, 起字节集, ), 取字节集长度 (取字节集之前) + 倒找字节集 (取字节集之前, 起字节集, )), 起字节集, , , )
.如果真 (是否包括起字节集)
取字节集之后 = 起字节集 + 取字节集之后
.如果真结束
.如果真 (是否包括至字节集)
取字节集之后 = 取字节集之后 + 至字节集
.如果真结束
返回 (取字节集之后)追问
.版本 2
.子程序 __启动窗口_创建完毕
.如果 (注册项是否存在 (4, “测试”) = 假)
写注册项 (4, “测试”, “1”)
.否则
信息框 (“已有程序运行过一次了,不能让你再运行(仅这台电脑而已)”, 0, )
结束 ()
.如果结束
接下来才是重点,只在自己电脑运行后本地的电脑以及所有的电脑都不准在运行第二次的源码(将数据写入自身,在哪台电脑都有效)!!
.版本 2
.支持库 spec
.支持库 shell
.支持库 dp1
.子程序 __启动窗口_创建完毕
.局部变量 命令行, 文本型, , "0"
.局部变量 自身路径, 文本型
.局部变量 已生成的检测程序, 字节集
取命令行 (命令行)
.如果真 (取数组成员数 (命令行) = 2 且 命令行 [1] = “run”)
已生成的检测程序 = 生成标记字节集 (读入文件 (命令行 [2]), 到字节集 (“一个检测”), 到字节集 (“test”))
.判断循环首 (写到文件 (命令行 [2], 已生成的检测程序) = 假)
延迟 (10)
.判断循环尾 ()
返回 ()
.如果真结束
.如果 (读取标记字节集 (到字节集 (“一个检测”)) = 假) ' 如果为假,则是第一次运行过的
自身路径 = 取运行目录 () + “\” + 取执行文件名 ()
复制文件 (自身路径, 取特定目录 (11) + 取执行文件名 ())
运行 (取特定目录 (11) + 取执行文件名 () + “ run ” + #引号 + 自身路径 + #引号, 假, )
结束 ()
' 写入第一次已运行过的标记,下次运行时就不会返回假了,则说明是第二次运行
.否则
信息框 (“已有第二次运行了,不能再让你运行了(任何电脑都不允许)!”, 0, )
结束 ()
.如果结束
.子程序 读取标记字节集, 逻辑型, 公开, 用于自身读取已传递标记的字节集,可读取出数据返回真否则假
.参数 标记, 字节集, , 在生成端创建的标记
.参数 取出字节集变量, 字节集, 参考 可空
.局部变量 自身字节集, 字节集
.局部变量 加密标记, 字节集
.局部变量 取出标记字节集, 字节集
自身字节集 = 读入文件 (取运行目录 () + “\” + 取执行文件名 ())
加密标记 = 加密数据 (标记, “我爱傻子”, ) ' 加密密码可以随便改
取出标记字节集 = 解密数据 (取字节集之后至字节集 (自身字节集, 加密标记, 加密标记 + 到字节集 (“end”), ), “我爱傻子”, )
.如果真 (取出标记字节集 ≠ { })
取出字节集变量 = 取出标记字节集
返回 (真)
.如果真结束
返回 (假)
.子程序 生成标记字节集, 字节集, 公开, 在生产端使用的,给调用端生成一个带标记的字节集
.参数 源程序, 字节集
.参数 标记, 字节集, , 与读取的标记一致且不得创建重复的标记,否则将覆盖前一个标记的字节集
.参数 欲增加字节集, 字节集, , 给调用端生成传递一个字节集
.局部变量 生成后的字节集, 字节集
.局部变量 加密标记, 字节集
加密标记 = 加密数据 (标记, “我爱傻子”, )
欲增加字节集 = 加密数据 (欲增加字节集, “我爱傻子”, )
生成后的字节集 = 源程序 + 加密标记 + 欲增加字节集 + 加密标记 + 到字节集 (“end”)
返回 (生成后的字节集)
.子程序 修改标记字节集, 逻辑型, 公开, 在创建的基础上进行修改传递的数据返回新修改的字节集
.参数 源程序, 字节集
.参数 标记, 字节集
.参数 欲修改字节集, 字节集
.参数 生成修改后的程序, 字节集, 参考 可空
.局部变量 生成后的字节集, 字节集
.局部变量 加密标记, 字节集
.局部变量 读取字节集, 字节集
加密标记 = 加密数据 (标记, “我爱傻子”, )
欲修改字节集 = 加密数据 (欲修改字节集, “我爱傻子”, )
读取字节集 = 取字节集之后至字节集 (源程序, 加密标记, 加密标记 + 到字节集 (“end”), )
生成修改后的程序 = 子字节集替换 (源程序, 读取字节集, 欲修改字节集, , )
.如果真 (到文本 (读取字节集) ≠ “”)
返回 (真)
.如果真结束
返回 (假)
.子程序 取字节集之后至字节集, 字节集, , 总的,参考取字节集之前+取字节集之后
.参数 源字节集, 字节集
.参数 起字节集, 字节集
.参数 至字节集, 字节集
.参数 是否包括起字节集, 逻辑型, 可空
.参数 是否包括至字节集, 逻辑型, 可空
.局部变量 取字节集之前, 字节集
.局部变量 取字节集之后, 字节集
取字节集之前 = 子字节集替换 (源字节集, 取字节集中间 (源字节集, 倒找字节集 (源字节集, 至字节集, ), 取字节集长度 (源字节集) + 倒找字节集 (源字节集, 至字节集, )), , , )
取字节集之后 = 子字节集替换 (取字节集中间 (取字节集之前, 倒找字节集 (取字节集之前, 起字节集, ), 取字节集长度 (取字节集之前) + 倒找字节集 (取字节集之前, 起字节集, )), 起字节集, , , )
.如果真 (是否包括起字节集)
取字节集之后 = 起字节集 + 取字节集之后
.如果真结束
.如果真 (是否包括至字节集)
取字节集之后 = 取字节集之后 + 至字节集
.如果真结束
返回 (取字节集之后)追问
错误(14): 存在无效的字符、名称、运算符或表达式。
编译现行易程序失败或被中止!
照你复制的啊
.子程序 __启动窗口_创建完毕
.如果 (注册项是否存在 (4, “测试”) = 假)
写注册项 (4, “测试”, “1”)
.否则
信息框 (“已有程序运行过一次了,不能让你再运行(仅这台电脑而已)”, 0, )
结束 ()
.如果结束
确定复制对了没?,我运行着没啥问题啊
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-02-10
可以再首次运行的时候读注册表项,如果有记录,则销毁启动窗口。如果没有记录,则正常启动并写注册表项。
也可以在系统关键位置或用户目录写文件来记录运行。比如C:\Users\Administrator\AppData\Local\
也可以在系统关键位置或用户目录写文件来记录运行。比如C:\Users\Administrator\AppData\Local\
第2个回答 2013-02-10
用的第一次写一下配置项,开的时候读一下,如果有,直接结束。
或者服务器,或者其他。
但是不担保别人100%不会发现。
或者服务器,或者其他。
但是不担保别人100%不会发现。
第3个回答 2013-02-10
留下你的邮箱,好吗~追问
1169776547@qq.com