以下是引用wengjl在2025-4-27 15:15:34的发言:
对WORD加密,通过创建对象,打开WORD再读取,就正常,所以,想到是否也可用创建一个能打开记事本的对象来处理,不知是否可行
对WORD加密,通过创建对象,打开WORD再读取,就正常,所以,想到是否也可用创建一个能打开记事本的对象来处理,不知是否可行
绝对不行,word文档怎么能用记事本打开呢?你想想:MP4电影用记事本打开能到到图片吗?


程序代码:* 打开记事本并加载文件(异步模式,不等待)
lcFile = "C:\Intel\调用clssqlite33示例.txt" && 要打开的文件全路径名称
winTitle = JUSTSTEM(lcFile) + " - 记事本" && 推算出的窗口标题
* 创建 WScript.Shell 对象
loShell = CREATEOBJECT("WScript.Shell")
loShell.Run('notepad.exe "' + lcFile + '"', 1, .F.) && WScript.Shell 对象打开记事本
* 等待记事本窗口启动(关键延迟)
= INKEY(1) && 延迟1秒,确保窗口加载完成
* 激活记事本窗口(通过窗口标题匹配)
llActivated = loShell.AppActivate(winTitle)
IF NOT llActivated
MESSAGEBOX("无法激活记事本窗口!")
RETURN
ENDIF
* 通过发送(Ctrl[color=#808080]+A)和(Ctrl+C),取得记事本内容到剪贴板[/color]
loShell.SendKeys("^a") && Ctrl+A
= INKEY(0.2) && 等待200毫秒确保全选完成
loShell.SendKeys("^c") && Ctrl+C
= INKEY(0.5) && 等待500毫秒确保复制完成
* 关闭记事本
loShell.SendKeys("%{F4}") && Alt+F4 关闭窗口
= INKEY(0.5)
* 释放对象
RELEASE loShell
* 验证剪贴板内容
IF !EMPTY(_CLIPTEXT)
IF MESSAGEBOX("内容已复制到剪贴板,是否输出到屏?" ,4,"读取记事本成功。") = 6
CLEAR
nn = ALINES(arrtxt, _CLIPTEXT, 2, CHR(13))
FOR ir = 1 TO nn
* 记事本内容输出到屏,也可改为append到一个事先准备好的表中
? STR(ir) + "|" + arrtxt[ir]
ENDFOR
ENDIF
ELSE
MESSAGEBOX("复制失败!")
ENDIF
