传不了啊 靠
源程序如下:
子程序:_启动子程序
返回值类型:整数型
备注:本子程序在程序启动后最先执行
cmd = 读环境变量 (“ComSpec”)
子程序:执行dos命令行
返回值类型:文本型
参数:参数 数据类型:文本型
局部容器:文件长度
局部容器:文件号
局部容器:句柄
句柄 = 执行 (主窗口.取窗口句柄 ()
“open”
cmd
“ /c ” + 参数 + “>” + 临时文件名
当前目录
0)
延时 (1000)
如果真 (句柄 = 0)
返回 (转换为字节集 (“执行命令行失败!”))
如果真结束
文件号 = 打开文件 (临时文件名
#读入
)
文件长度 = 取文件长度 (文件号)
延时 (250)
判断循环首 (文件长度 ≠ 取文件长度 (文件号))
*备注:等待命令行运行完毕
文件长度 = 取文件长度 (文件号)
延时 (250)
判断循环尾 ()
返回信息 = 读入文本 (文件号
)
关闭文件 (文件号)
写到文件 (临时文件名
{; };)
*备注:清除文件内容
返回 (返回信息)
本来有更好的方法调用DOS的,那就是匿名管道技术。但因为易语言在自定义数据类型和DLL的一些限制,没有办法实现。
现在或者方法只是将DOS命令输出到文本,然后再读取来取回命令的返回信息。
这样有两个缺点:
1.命令行中不能够再有“”字符
2.不能够得到错误信息的输出
蜗牛中寻找窗口子程序
子程序:寻找窗口
返回值类型:文本型
局部容器:窗口标题 数据类型:文本型
局部容器:窗口句柄 数据类型:整数型
局部容器:标题长 数据类型:整数型
返回信息 = “窗口句柄 窗口标题” + 换行符 + “===========================================================” + 换行符
窗口句柄 = 取窗口句柄 (GetDesktopWindow ()
5)
判断循环首 (窗口句柄 ≠ 0)
标题长 = GetWindowTextLength (窗口句柄)
如果 (标题长 ≤ 0)
窗口标题 = “”
否则
窗口标题 = 取空白文本 (标题长)
标题长 = GetWindowText (窗口句柄
窗口标题
标题长 + 1)
如果结束
如果真 (窗口标题 ≠ “” 且 窗口标题 ≠ “DDE Server Window” 且 窗口标题 ≠ “Default IME” 且 窗口标题 ≠ “OleMainThreadWndName” 且 窗口标题 ≠ “Program Manager”)
*备注:过滤无标题窗口和一部分系统窗口
返回信息 = 返回信息 + “ ” + 到文本 (窗口句柄) + 取重复文本 (10 - 取文本长度 (到文本 (窗口句柄))
“-”) + 窗口标题 + 换行符
如果真结束
窗口句柄 = 取窗口句柄 (窗口句柄
2)
判断循环尾 ()
返回 (返回信息 + “===========================================================” + 换行符)
蜗牛中用到的进制转换程序
包括从十进制到其他进制和从其他进制到十进制
子程序:十转其他
返回值类型:文本型
参数:需转换数值 数据类型:长整数型
参数:进制
局部容器:余数 数据类型:长整数型
局部容器:循环容器
局部容器:返回容器 数据类型:文本型
循环判断首 ()
余数 = 需转换数值 % 进制
如果 (余数 < 10)
返回容器 = 到文本 (余数) + 返回容器
否则
返回容器 = 字符 (55 + 余数) + 返回容器
如果结束
需转换数值 = 需转换数值 \ 进制
循环判断尾 (需转换数值 ≠ 0)
返回 (返回容器)
------------------------------
子程序:其他转十
返回值类型:长整数型
参数:文本 数据类型:文本型
参数:进制
局部容器:字符 数据类型:文本型
局部容器:返回容器 数据类型:长整数型
局部容器:循环容器
计次循环首 (取文本长度 (文本)
循环容器)
字符 = 到大写 (取文本中间 (文本
循环容器
1))
如果 (取代码 (字符
) < 58)
返回容器 = 返回容器 + 文本到数值 (字符) × 求次方 (进制
取文本长度 (文本) - 循环容器)
否则
返回容器 = 返回容器 + (取代码 (字符
) - 55) × 求次方 (进制
取文本长度 (文本) - 循环容器)
如果结束
计次循环尾 ()
返回 (返回容器)