① 易语言编的程序怎么样才可以防止它再启动
防止再次启动针对的是本台电脑,还是其他电脑都不允许,如果是本地的电脑只需在注册表里搞个标记就好了(这个非常简单,源码简单一笔带过)
.版本 2
.子程序 __启动窗口_创建完毕
.如果 (注册项是否存在 (4, “测试”) = 假)
写注册项 (4, “测试”, “1”)
.否则
信息框 (“已有程序运行过一次了,不能让你再运行(仅这台电脑而已)”, 0, )
结束 ()
.如果结束
接下来才是重点,只在自己电脑运行后本地的电脑以及所有的电脑都不准在运行第二次的源码(将数据写入自身,在哪台电脑都有效)!!
.版本 2
.支持库 spec
.支持库 shell
.支持库 dp1
.子程序 __启动窗口_创建完毕
.局部变量 命令行, 文本型, , "0"
.局部变量 自身路径, 文本型
.局部变量 已生成的检测程序, 字节集
取命令行 (命令行)
.如果真 (取数组成员数 (命令行) = 2 且 命令行 [1] = “run”)
已生成的检测程序 = 生成标记字节集 (读入文件 (命令行 [2]), 到字节集 (“一个检测”), 到字节集 (“test”))
.判断循环首 (写到文件 (命令行 [2], 已生成的检测程序) = 假)
延迟 (10)
.判断循环尾 ()
返回 ()
.如果真结束
.如果 (读取标记字节集 (到字节集 (“一个检测”)) = 假) ' 如果为假,则是第一次运行过的
自身路径 = 取运行目录 () + “\” + 取执行文件名 ()
复制文件 (自身路径, 取特定目录 (11) + 取执行文件名 ())
运行 (取特定目录 (11) + 取执行文件名 () + “ run ” + #引号 + 自身路径 + #引号, 假, )
结束 ()
' 写入第一次已运行过的标记,下次运行时就不会返回假了,则说明是第二次运行
.否则
信息框 (“已有第二次运行了,不能再让你运行了(任何电脑都不允许)!”, 0, )
结束 ()
.如果结束
.子程序 读取标记字节集, 逻辑型, 公开, 用于自身读取已传递标记的字节集,可读取出数据返回真否则假
.参数 标记, 字节集, , 在生成端创建的标记
.参数 取出字节集变量, 字节集, 参考 可空
.局部变量 自身字节集, 字节集
.局部变量 加密标记, 字节集
.局部变量 取出标记字节集, 字节集
自身字节集 = 读入文件 (取运行目录 () + “\” + 取执行文件名 ())
加密标记 = 加密数据 (标记, “我爱傻子”, ) ' 加密密码可以随便改
取出标记字节集 = 解密数据 (取字节集之后至字节集 (自身字节集, 加密标记, 加密标记 + 到字节集 (“end”), ), “我爱傻子”, )
.如果真 (取出标记字节集 ≠ { })
取出字节集变量 = 取出标记字节集
返回 (真)
.如果真结束
返回 (假)
.子程序 生成标记字节集, 字节集, 公开, 在生产端使用的,给调用端生成一个带标记的字节集
.参数 源程序, 字节集
.参数 标记, 字节集, , 与读取的标记一致且不得创建重复的标记,否则将覆盖前一个标记的字节集
.参数 欲增加字节集, 字节集, , 给调用端生成传递一个字节集
.局部变量 生成后的字节集, 字节集
.局部变量 加密标记, 字节集
加密标记 = 加密数据 (标记, “我爱傻子”, )
欲增加字节集 = 加密数据 (欲增加字节集, “我爱傻子”, )
生成后的字节集 = 源程序 + 加密标记 + 欲增加字节集 + 加密标记 + 到字节集 (“end”)
返回 (生成后的字节集)
.子程序 修改标记字节集, 逻辑型, 公开, 在创建的基础上进行修改传递的数据返回新修改的字节集
.参数 源程序, 字节集
.参数 标记, 字节集
.参数 欲修改字节集, 字节集
.参数 生成修改后的程序, 字节集, 参考 可空
.局部变量 生成后的字节集, 字节集
.局部变量 加密标记, 字节集
.局部变量 读取字节集, 字节集
加密标记 = 加密数据 (标记, “我爱傻子”, )
欲修改字节集 = 加密数据 (欲修改字节集, “我爱傻子”, )
读取字节集 = 取字节集之后至字节集 (源程序, 加密标记, 加密标记 + 到字节集 (“end”), )
生成修改后的程序 = 子字节集替换 (源程序, 读取字节集, 欲修改字节集, , )
.如果真 (到文本 (读取字节集) ≠ “”)
返回 (真)
.如果真结束
返回 (假)
.子程序 取字节集之后至字节集, 字节集, , 总的,参考取字节集之前+取字节集之后
.参数 源字节集, 字节集
.参数 起字节集, 字节集
.参数 至字节集, 字节集
.参数 是否包括起字节集, 逻辑型, 可空
.参数 是否包括至字节集, 逻辑型, 可空
.局部变量 取字节集之前, 字节集
.局部变量 取字节集之后, 字节集
取字节集之前 = 子字节集替换 (源字节集, 取字节集中间 (源字节集, 倒找字节集 (源字节集, 至字节集, ), 取字节集长度 (源字节集) + 倒找字节集 (源字节集, 至字节集, )), , , )
取字节集之后 = 子字节集替换 (取字节集中间 (取字节集之前, 倒找字节集 (取字节集之前, 起字节集, ), 取字节集长度 (取字节集之前) + 倒找字节集 (取字节集之前, 起字节集, )), 起字节集, , , )
.如果真 (是否包括起字节集)
取字节集之后 = 起字节集 + 取字节集之后
.如果真结束
.如果真 (是否包括至字节集)
取字节集之后 = 取字节集之后 + 至字节集
.如果真结束
返回 (取字节集之后)
② 易语言如何编写开机自动启动的程序
1、首先需要打开易语言软件,先添加两个按钮组件,一个把按钮标题设置为设置开机启动,另一个把按钮标题设置为取消开机启动。
③ 易语言如何实现 打开第一次运行 子程序1 第二次打开运行 子程序 2 以后每次打开循环 子程序1 和 子程序2
热键.注册 (窗口1.取窗口句柄 (),1, #C键, &自定义1)'Alt+C
监视热键(&你的子程序,#C键,1)'Alt+C
以上都需要超级模块
④ 易语言怎么设置不能开第2次同样的EXE程序
方法很多种,这里用AIP来做
.版本
2
.程序集
窗口程序集1
.子程序
__启动窗口_创建完毕
.如果真
(打开事件同步对象
(2031619,
假,
“myappname”)
≠
0)
'
"myappname"可以是任何文本,但是最好要长一点以保证和系统中已有其他事件对象的名称不相冲突。
信息框
(“不能重复运行本程序!”,
0,
)
销毁
()
返回
()
.如果真结束
创建事件同步对象
(0,
假,
假,
“myappname”)
.版本
2
.DLL命令
创建事件同步对象,
,
,
"CreateEventA"
.参数
lpEventAttributes,
整数型
.参数
bManualReset,
逻辑型
.参数
bInitialState,
逻辑型
.参数
lpName,
文本型
.DLL命令
打开事件同步对象,
整数型,
,
"OpenEventA"
.参数
dwDesiredAccess,
整数型
.参数
bInheritHandle,
逻辑型
.参数
lpName,
文本型
⑤ 易语言 这个在执行的时候 程序会打开两次 这是为什么啊 求解决
你好,把结束()放在跳出循环()后面,或者跳出循环再结束,时钟周期不要调那么低,800就够了