比如我用vb生成了一个exe文件,其中有个标签 label1的caption定义的是"good"
编译后,当第一次运行这个程序后,label1的caption便自动更新为"bad"。然后,不管以后什么时候打开,label1的caption都为"bad",这个怎么实现呢?请高手帮忙!

解决方案 »

  1.   

    在注册表中加一项,记录label的caption,初始化为good,在第一次运行时,把注册表中的项改为bad,程序每次运行读注册表
      

  2.   

    或则把这个数据项写如.ini的文件中
      

  3.   

    CathySun118(斯年) 提的是一种好办法,还有其他方法吗?
      

  4.   

    exe文件不能改动的,只能当他运行时读一些辅助文件来设置exe的一些属性,可以用注册表,ini,txt,数据库等等。
      

  5.   

    楼上已经说的很清楚了
    借助辅助文件吧
    个人倾向ini
    不太喜欢改注册表的
    如果有数据库操作,数据库也是个不错的选择
      

  6.   

    这些都可以被修改,个人感觉不太好
    可考虑EXE资源文件修改字符串
      

  7.   

    思路:
     a.exe运行-->if good-->label1.caption= "good" -->释放b.exe-->修改a.exe字符串-->"bad"
    再次运行a.exe-->if good-->...
                     then label1.captin="bad"思路就这样,代码就不写了,水平也不好,呵呵
      

  8.   

    Dim MainFile As String
    Dim AlterFile As String
    Dim TempStr As Integer
    Dim strName As String
    Dim strKey As String
    Dim OffsetStep As Integer
    Dim Record As IntegerPrivate Sub Command1_Click()
        Dim TempByte As Integer
        Dim UserData(20) As Integer
        OffsetStep = 60
        MainFile = App.Path & "\" & App.EXEName & ".exe"
        AlterFile = App.Path & "\" & App.EXEName & "1.exe"
        Open MainFile For Binary Access Read As #1
        Open AlterFile For Binary Access Write As #2
        For i = 1 To LOF(1)
           Get #1, i, TempByte
           Put #2, i, TempByte
        Next i
        Close #1    For i = 1 To Len(Text1.Text)
            UserData(i) = AscW(Mid(Text1.Text, i, 1))
        Next i
        If Len(Text1.Text) < 20 Then
            For i = Len(Text1.Text) + 1 To 20
                UserData(i) = AscW(" ")
            Next i
        End If
        For i = 1 To 20
            OffsetStep = OffsetStep - 1
            Record = LOF(2) - OffsetStep
            Put #2, Record, UserData(i)
            MsgBox Record & "___" & UserData(i)
        Next i
        Close #2
        'MsgBox "数据生成成功!"
    End SubPrivate Sub Form_Load()
        strUser = ""
        MainFile = App.Path & "\" & App.EXEName & ".exe"
        Open MainFile For Binary Access Read As #1
        OffsetStep = 60    '取数据
        For i = 1 To 20
            OffsetStep = OffsetStep - 1
            Record = LOF(1) - OffsetStep
            Get #1, Record, TempStr
            If App.EXEName = "工程11" Then
                MsgBox Record & "___" & TempStr
            End If
            strUser = strUser & ChrW(TempStr)
        Next i
        Close #1
        Text1.Text = strUser
    End Sub这是我整理的方法,现在出现的问题是中文不能写入如果我把 Dim TempStr As Integer 改为 Dim TempStr As Byte
    可以写入英文或数字中文的问题不知道怎么解决
      

  9.   

    建议用外部的INI文件来控制你想改变的内容,这样维护起来方便些。
      

  10.   

    不要偏离主题,我需要的是改变exe而不是ini不然我也不发这个问题了