kn007
发表于 2009-11-13 18:28:14
汗
oemxp
发表于 2009-11-13 18:58:15
为什么要加@crlf,贴到控件里,直接加参数附加到最后就行了
如果是读取另外的文件再贴上来,存成数组,直接 ...
netegg 发表于 2009-11-13 18:07 http://www.autoitx.com/images/common/back.gif
能贴点具体的代码么!
C.L
发表于 2009-11-13 19:52:25
看看是不是这样子
做一个txt文件,用来编辑你想要的文字
如:example.txt 内容:
要求:
1.不调用TXT文件和其它文件。
2.不安装任何文件。
3.我想实现只要打开AU3源码,在某处把我的整段TXT文本
(包含换行回车和其它任意符号)贴进去,然后编译成EXE就
和上图一样。
有难度吧~???AU3能搞出来么?
有人问过这个问题,下面贴子附件有个很像记事本的文件,
我就想做这样的效果:
http://www.autoitx.com/viewthr ... hlight=%CB%B5%C3%F7
但是那个贴子的回答太不实际了,我不可能每生成个文件都搞
一大堆@crlf& ,那样会累死
不要让我去下载TXT转EXE的软件,我想要用AU3实现,因为如果
能实现的话,这个AU3脚本我还要加入其它代码
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 413, 330, 389, 172)
$Edit1 = GUICtrlCreateEdit("", 1, 8, 408, 316)
GUICtrlSetData(-1, "")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
read_txt ()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func read_txt ()
$file = FileOpen("example.txt", 0)
If $file = -1 Then
MsgBox(0, "错误", "不能打开文件.")
Exit
EndIf
$data = ""
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
$data &= $line&@crlf
Wend
GUICtrlSetData ($Edit1,$data)
FileClose($file)
EndFunc
编辑时,只要在example.txt里面改,就可以了
oemxp
发表于 2009-11-13 19:57:00
本帖最后由 oemxp 于 2009-11-13 19:58 编辑
楼上的兄弟呀,要是这样我就不用提问了,我贴在五楼的第三种代码就可以实现你这个。
我不要调用TXT或其它文件。
C.L
发表于 2009-11-13 20:04:28
哦,没看清楚
oemxp
发表于 2009-11-13 20:04:50
本帖最后由 oemxp 于 2009-11-13 20:15 编辑
再具体一点吧,我想编写一个不调用其它文件不读取其它文件的AU3脚本,实现下面代码运行后的效果(注意,下面的代码没有用,我只是用它举例我想要什么),又不想用太多的"&@crlf&",因为即便用很多"&@crlf&",但是要是有特殊符号和""代码也会出错的。
走过路过的各路神仙,AU3能实现么?
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 304, 173, 192, 124)
$Edit1 = GUICtrlCreateEdit("", 16, 16, 273, 137, $ES_WANTRETURN)
GUICtrlSetData(-1, ""&@crlf&"第一行"&@crlf&"第二行"&@crlf&"第三行")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
下面"免费--自由--共享 " 加了""号放到上面去就出错了,即便我愿意花时间每个文本换行都贴他个"&@crlf&" 。以上代码也不行的。以上代码不能出现某些特殊符号。
GUICtrlSetData(-1, ""&@crlf&" www.91dwg.com就要当网管"&@crlf&" "免费--自由--共享 " │"&@crlf&"第三行")
wangwen916
发表于 2009-11-13 20:43:27
msgbox
支持!
afan
发表于 2009-11-13 22:38:18
或许还是另外做个专门处理txt到一个变量(字符串)的脚本,然后在复制粘贴插入到需要的脚本里……
oemxp
发表于 2009-11-13 22:58:10
本帖最后由 oemxp 于 2009-11-13 23:39 编辑
楼上的,你专门处理txt到一个变量,就需要先读一个TXT文件嘛,我就是不想这样呀,如你所想我这个贴子贴的代码就行了,但是我提问时就说了不想读取或释放文件,以下代码就读取了释放的文件,我不想释放文件,因为释放文件有时杀软会误杀,哪怕释放的是文本
接着等走过路过的各路神仙!我的想法是,可不可以打包一个不释放安装的(FileInstall会释放安装)文本文件,有没有什么函数可以只打包不释放,然后把打包的资源以变量的形式传递给文本框~~~~~~~
我看下面这个文件因该就是这样实现的。请用PE Explorer之类的exe编辑器编辑下面这个文件就可以看到资源文件里有一个不会释放安装名为readme的文本资源文件,估计他这个程式就是把这个"文本资源文件"做为一个变量传给了文本框,不过他这个是用Delphi写的,就是不知道AU3可不可以实现。
http://www.autoitx.com/attachment.php?aid=MTIzNnwzNDhmMDI5YXwxMjU4MTA1MDE1fDM5NjVsQkhNTUJPM3lwZkVWSm5SQnFGMXJWN3ZMdkxrV3dtM1hUa0ZTOThiT1lz
其实问题就是,如何打包一个文本资源文件,并把打包的资源在不释放的前题下做为一个变量传递给程式使用。
以下是实现楼上兄弟想法的代码,但我用不上:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
FileInstall("readme.txt", "readme.txt", 0)
Global $Files="readme.txt"
Local $txt,$temp
$temp=FileOpen($Files,0)
$txt=FileRead($temp)
$GUI = GUICreate("", 680, 480, 0, 0)
$Edit = GUICtrlCreateEdit("", 0, 0, 680, 480, $WS_VSCROLL+$ES_READONLY)
GUICtrlSetData(-1, ""&$txt&"")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
接着等走过路过的各路神仙!~~~~~~~
oemxp
发表于 2009-11-13 23:13:47
本帖最后由 oemxp 于 2009-11-13 23:28 编辑
。。。。自己看看
kn007 发表于 2009-11-13 17:32 http://www.autoitx.com/images/common/back.gif
6 楼还是不对我的问题,你还是调用了释放的C:\WINDOWS\temp\readme.html
我的前题是不读取其它文件不释放文件
afan
发表于 2009-11-13 23:34:38
我是指先将你的txt转换为一个au3的代码,之后这个txt就不要了,只要将转换后的代码贴到你的脚本中……
oemxp
发表于 2009-11-13 23:41:06
我是指先将你的txt转换为一个au3的代码,之后这个txt就不要了,只要将转换后的代码贴到你的脚本中……
afan 发表于 2009-11-13 23:34 http://www.autoitx.com/images/common/back.gif
怎么转换呢?可有代码贴出?
afan
发表于 2009-11-14 00:29:46
写了个,试下~
拖拽txt文档到此exe图标即可生成一个 “Txt_tmp.txt” 文件,里面的 $str 变量可以直接复制出来使用(全选即可)~ 需注意的是,貌似单个变量有字符数限制,可以自己测试下
oemxp
发表于 2009-11-14 00:38:25
本帖最后由 oemxp 于 2009-11-14 00:55 编辑
通过自己在39楼的想法搜索论坛,终于搞定了,楼上的方法也可行,请楼上的贴段您exe源码我,谢谢!~
上面附件是我自己查到的方法,就是把 文本文件 打包成了一个 文本资源文件,然后再传递变量。
下面是用楼上软件生成的写的代码:
#Region ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_UseAnsi=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Str = _
'网站首页降权怎么办2009-07-27 10:11 1、网站更新速度没有规律 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:站点更新文章不要三天打鱼两天晒网,要定期定量更新,搜索引擎的蜘蛛喜欢有节奏有规律的站点,突然发布很多文章,蜘蛛也会吃不消的。' & @CRLF & _
'' & @CRLF & _
' 2、服务器空间不稳定 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:选择优质稳定的服务器,检查服务器的防火墙是否禁止搜索引擎ip进入,如果有请与空间提供商协商处理,查看合租服务器其他站点是否有被降权的站点。' & @CRLF & _
'' & @CRLF & _
' 3、网站首页标题、关键词、描述频繁修改 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:确定网站定位,不要频繁修改网站标题、关键词、和描述。遇到此情况,要去一些权重比较高的网站发布链接,定期发布更新原创文章,耐心等待蜘蛛再次光临。' & @CRLF & _
'' & @CRLF & _
' 4、反向链接升降情况 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:选择优质相关度高的网站发布链接。避免卷入链接工厂。' & @CRLF & _
'' & @CRLF & _
' 5、网站中毒或者被挂木马 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:替换原程序,利用先关软件查毒。' & @CRLF & _
'' & @CRLF & _
' 6、网站链接的站点(友情链接)被搜索引擎惩罚 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:定期检查友情链接站点,如有site:首页如有降权,及时去掉该连接,与惩罚站点及时划清界限。' & @CRLF & _
'' & @CRLF & _
' 7、网站首页关键词堆砌 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:恢复堆砌关键词之前的样子。修改蓄意堆砌的部分,静静等待。' & @CRLF & _
'' & @CRLF & _
' 在了解网站首页为什么被降权的原因后,我们要对降权的首页进行补救了:' & @CRLF & _
'' & @CRLF & _
' 1.找一些网络收藏夹提交自己网站地址,比如好望角,权重高,收录快。(这个方法很有效的)本人亲自试验过的。' & @CRLF & _
'' & @CRLF & _
' 2.去权重高的网站、论坛、博客(比如admin5站长网、落伍者论坛、新浪)发布外链和软文,软文被转载后,吸引爬虫光顾,那么对您网提高权重有很大的帮助,首页恢复指日可待。' & @CRLF & _
'' & @CRLF & _
' 3.定期更新原创文章,爬虫是很喜欢新鲜有营养的事物的。' & @CRLF & _
'' & @CRLF & _
' 4.网站的标题、关键词、描述、布局、文章内容弄好后,重新向个大搜索引擎提交网站首页网址.' & @CRLF & _
'' & @CRLF & _
' 5.之后要做的就是等待你久违的网站首页重获新生了' & @CRLF & _
'' & @CRLF & _
' 8、网站更换过模版和程序 (造成网站首页降权)' & @CRLF & _
'' & @CRLF & _
' 处理办法:更换模板和程序会造成大量死链,导致收录降低,甚至被K.对于已经被K的网站,如果想在次被收录的话,通过更换模版和程序然后重新提交搜索引擎,也是一个可以达到重新收录的有效途径。' & @CRLF & _
' ' & @CRLF & _
''
$GUI = GUICreate("", 680, 480, 0, 0)
$Edit = GUICtrlCreateEdit("", 0, 0, 680, 480, $WS_VSCROLL+$ES_READONLY)
GUICtrlSetData(-1, ""&$Str&"")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
afan
发表于 2009-11-14 00:57:44
43#源码~If $CmdLine > 0 Then
$Fp = FileGetLongName($CmdLine)
$file = FileOpen($Fp, 0)
$tmp = @ScriptDir & '\Txt_tmp.txt'
If FileExists($tmp) Then FileDelete($tmp)
$fileN = FileOpen($tmp, 9)
FileWriteLine($fileN, '$Str = _')
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
$line = "'" & StringRegExpReplace($line, "'", "' & " & '"' & "'" & '"' & " & '") & "'" & ' & @CRLF & _'
FileWriteLine($fileN, $line)
WEnd
FileWriteLine($fileN, "'" & "'")
FileClose($file)
FileClose($fileN)
EndIf