从资源打开存根

时间:2013-02-24 03:18:25

标签: vb.net build resources

我正在尝试使用Stubs和我见过的所有教程告诉你如何获取Stub.exe:

FileOpen(1, Application.StartupPath & "\sub.exe", OpenMode.Binary, OpenAccess.Read)

这是后来的解释:

FileOpen(Reference number, file name including the path, mode to open the file as, Mode Of Access)

我试图从我项目中的资源输入Stub但是当我将它添加到该行时(它看起来像这样:)

FileOpen(1, My.Resources.Stub, OpenMode.Binary, OpenAccess.Read, OpenShare.Default)

然后用红色强调它并说:

  

类型'字节1维数组'的值无法转换为   字符串 ''。

我相信那是试图说的.exe不能放入String吗?如果我错了,请纠正我......

我的完整代码如下:

Public Class Form1
    Const FileSplit As String = "|split|"
    Dim stub, text1, button As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sfd As New SaveFileDialog
        sfd.Filter = "Executables(.exe)|*.exe"
        If sfd.ShowDialog = Windows.Forms.DialogResult.OK Then
            text1 = TextBox1.Text
            button = TextBox2.Text
        Else
            Exit Sub
        End If

        FileOpen(1, My.Resources.Stub, OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
        stub = Space(LOF(1))
        FileGet(1, stub)
        FileClose(1)

        FileOpen(1, sfd.FileName, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
        FilePut(1, stub & FileSplit & text1 & FileSplit & button)
        FileClose(1)

        MsgBox("Success")
    End Sub
End Class

2 个答案:

答案 0 :(得分:0)

使用代码将存根从资源复制到应用程序启动文件夹中。使用代码复制“表单加载”中的存根。所以当你转移应用程序时,只要你打开应用程序,存根就会存在。

答案 1 :(得分:0)

使用此代码:这适用于我的活页夹,即时使用此... 把这个代码放在你的form1.load ........如果不能正常工作,请给我发电子邮件 在jhonniewalker58@gmail.com

 If My.Computer.FileSystem.FileExists(Application.StartupPath & "\stub.exe") = False Then
        IO.File.WriteAllBytes(Application.StartupPath & "\stub.exe", My.Resources.stub)
    End If