kn007 发表于 2009-8-15 09:16:49

本人自制的SFX安装器出现点小问题(autoit写的)

现又多出个问题
在安装时,msgbox后,主窗口总是最小化了,用WinActivate("kn007 专用 SFX 安装器", ""),主窗口总是闪烁一下,好烦啊,怎么解决?

2楼解决:
现在的问题是选择路径后,D:\kn007中的\kn007不见了,于是加上
                                                                $PathValue = GUICtrlRead($Path)
                                                                $PathValue = $PathValue&"\kn007"

但单纯选择某个盘,比如E盘,就成了E:\\kn007
汗,怎么办?

kn007 发表于 2009-8-15 09:20:55

解决了一个问题了,贴上这部分的源码,主要是判断最后一个字符是不是 “\”,另外的问题等待高人

                                Case $Browse
                        $PathValue = FileSelectFolder("选择要安装 "&$Title&" 的文件夹位置: ","", 1+2+4)
                                                If @error = 1 Then
                                                        _ReduceMemory(@AutoItPID)
                                                Else
                                                        GUICtrlSetData($Path, $PathValue)
                                                        $result = StringRight(GUICtrlRead($Path), 1)
                                                        IF $result = "\" Then
                                                                $PathValue = GUICtrlRead($Path)
                                                                $PathValue = $PathValue&"kn007"
                                                                GUICtrlSetData($Path, $PathValue)
                                                        Else
                                                                $PathValue = GUICtrlRead($Path)
                                                                $PathValue = $PathValue&"\kn007"
                                                                GUICtrlSetData($Path, $PathValue)
                                                        EndIf
                                                EndIf

kn007 发表于 2009-8-15 10:01:08

顶先。。。

sensel 发表于 2009-8-15 10:49:15

选择路径后怎么会不见了呢?附上部分代码供参考。

        ; 创建控件
        GUICtrlCreateLabel("本地路径:", 350, 321, 72, 12)
        $hNBSPath = GUICtrlCreateInput("", 428, 318, 222, 18)
        GUICtrlSetLimit(-1, 200)
        $hSelectButton = GUICtrlCreateButton("S", 650, 318, 10, 18)

        GUICtrlSetData($hNBSPath, $NBSPath)

                        ; 分支事件
                        Case $hSelectButton
                                $NBSPath = FileSelectFolder("请选择本地路径并点击“确定”按钮。", "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}", 1, GUICtrlRead($hNBSPath), $hConfigWnd)
                                If $NBSPath <> "" Then GUICtrlSetData($hNBSPath, $NBSPath)

        ; 后期处理
        $NBSPath = StringStripWS(GUICtrlRead($hNBSPath), 3)
        While StringRight($NBSPath, 1) = "\"
                $NBSPath = StringTrimRight($NBSPath, 1)
        WEnd

afan 发表于 2009-8-15 11:05:46

LS的大虾 LZ的意思我估计是指路径后面添加的 '\kn007' 不见了吧,呵呵

kn007 发表于 2009-8-15 11:20:34

同楼上,这个问题已解决(在2楼),现在是在有msgbox窗口后,无论是与否,总是主窗口最小化了
MsgBox(8484, "是否立即安装 "&$Name&" ?", "正在准备安装 "&$Name&" 到 "&$Add2) = 6 Then


运行程序也是
ShellExecuteWait(@WindowsDir &"\temp\F.bat","",@WindowsDir,"",@SW_HIDE)

加上激活窗口不会,不过每次他在自动最小话是,激活,总是相同时间,屏幕中的主程序总是闪了一下,有点不好。。。
WinActivate("kn007 专用 SFX 安装器", "")

thesnow 发表于 2009-8-15 11:22:25

别提这个东东了,害死我了,:face (36):

kn007 发表于 2009-8-15 11:24:30

谁叫你乱改我的,我上次也会,害我重写一次,原来是 + 写成 , 了,郁闷

thesnow 发表于 2009-8-15 11:33:40

害我以为中什么先进的病毒了.:face (36):

78391493 发表于 2009-8-15 12:11:42

其实如果不回显的话没必要判断\

E:\\kn007
指的也是E:\kn007

afan 发表于 2009-8-15 12:14:54

\\ 是可以执行的。不过LZ目前的问题是多窗口操作问题,这样的话应该有相关的源码才好解决问题。

lynfr8 发表于 2009-8-15 14:27:14

没有完整代码往往一管窥豹只见一斑
如果代码不方便放出
楼主还是自行排查

kn007 发表于 2009-8-15 14:30:01

嘿嘿,我用7z自解压,最后一个字符一定不能是\

kn007 发表于 2009-8-15 14:30:31

听lynfr8 ,自行检查。。。

sensel 发表于 2009-8-15 20:09:02

额。。。没细看就回帖,抱歉。
主程序闪一下是切换后窗口重绘吧?我上次遇过类似问题,最后也没解决。
页: [1] 2
查看完整版本: 本人自制的SFX安装器出现点小问题(autoit写的)