怎样用vb实现 open语句打开一个文件(例如:里面的数据是  kkkkkkk )当别人打开的时候里面的内容是乱码或者是二进制,16进制
但是程序用open语句打开  读里面的数据 是  kkkkkkkkkkkkkkkkk也就是说别人看的时候是乱码或者是二进制,16进制
程序读的时候是   kkkkkkkkkkkkkkkkk

解决方案 »

  1.   

    本身存16进制,VB Open后再转为文本
      

  2.   

    自己找VB的帮助文档。如MSDN上有
      

  3.   

    Option Explicit
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Const strKey As String = "ew&5NS@98x;qPmdoGFD(<A^z?"
    Dim strSource As String
    Dim strTemp As String
    Dim a() As Byte
    Dim k() As Byte
    Dim i As IntegerPrivate Sub Command1_Click() '加密    strSource = "kkkkkkkkkkkkkkkkk"
        a = StrConv(strSource, vbFromUnicode)
        
        Do Until Len(strTemp) > UBound(a)
            strTemp = strTemp & strKey
        Loop
        k = StrConv(strTemp, vbFromUnicode)
        
        For i = 0 To UBound(a)
            a(i) = a(i) Xor k(i)
        Next i
        
        Open "C:\test.txt" For Binary As #1
        Put #1, , a
        Close #1
    End SubPrivate Sub Command2_Click() '解密
    Dim X    Open "C:\test.txt" For Binary As #1
        Get #1, , a
        Close #1
        
        
        Do Until Len(strTemp) > UBound(a)
            strTemp = strTemp & strKey
        Loop
        k = StrConv(strTemp, vbFromUnicode)
        
        For i = 0 To UBound(a)
            a(i) = a(i) Xor k(i)
        Next i
        
        strTemp = StrConv(a, vbUnicode)
        Open "C:\temp.txt" For Output As #1
        Print #1, strTemp
        Close #1    X = Shell("NotePad.EXE C:\temp.txt", 1)
        While IsRunning(X)
        DoEvents
        Wend
        
        Kill "C:\temp.txt"
    End SubFunction IsRunning(ByVal ProgramID) As Boolean ' 传入进程标识ID
    Dim hProgram As Long '被检测的程序进程句柄
        hProgram = OpenProcess(0, False, ProgramID)
        If Not hProgram = 0 Then
            IsRunning = True
        Else
            IsRunning = False
        End If
        CloseHandle hProgram
    End Function
      

  4.   

    这个程序解密有问题 解出来不是源码
    Option Explicit
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Const strKey As String = "ew&5NS@98x;qPmdoGFD(<A^z?"
    Dim strSource As String
    Dim strTemp As String
    Dim a() As Byte
    Dim k() As Byte
    Dim i As IntegerPrivate Sub Command1_Click() '加密    strSource = "kkkkkkkkkkkkkkkkk"
        a = StrConv(strSource, vbFromUnicode)
        
        Do Until Len(strTemp) > UBound(a)
            strTemp = strTemp & strKey
        Loop
        k = StrConv(strTemp, vbFromUnicode)
        
        For i = 0 To UBound(a)
            a(i) = a(i) Xor k(i)
        Next i
        
        Open "C:\test.txt" For Binary As #1
        Put #1, , a
        Close #1
    End SubPrivate Sub Command2_Click() '解密
    Dim X    Open "C:\test.txt" For Binary As #1
        Get #1, , a
        Close #1
        
        
        Do Until Len(strTemp) > UBound(a)
            strTemp = strTemp & strKey
        Loop
        k = StrConv(strTemp, vbFromUnicode)
        
        For i = 0 To UBound(a)
            a(i) = a(i) Xor k(i)
        Next i
        
        strTemp = StrConv(a, vbUnicode)
        Open "C:\temp.txt" For Output As #1
        Print #1, strTemp
        Close #1    X = Shell("NotePad.EXE C:\temp.txt", 1)
        While IsRunning(X)
        DoEvents
        Wend
        
        Kill "C:\temp.txt"
    End SubFunction IsRunning(ByVal ProgramID) As Boolean ' 传入进程标识ID
    Dim hProgram As Long '被检测的程序进程句柄
        hProgram = OpenProcess(0, False, ProgramID)
        If Not hProgram = 0 Then
            IsRunning = True
        Else
            IsRunning = False
        End If
        CloseHandle hProgram
    End Function