Ir para o conteúdo
Tatia

Executar exe dos Resources

Mensagens Recomendadas

Tatia

Boas malta, estou com dificuldades em executar um exe dos Resources...

Por exemplo no Windows faço assim.

Crio uma pasta test em

c:\test

dentro dessa pasta coloco os ficheiros

unpack.exe

ficheiro.bin

Abro o terminal (CMD) digito: cd c:\test

depois digito: unpack.exe ficheiro.bin test

E ele vai extrair o conteúdo do ficheiro.bin para dentro da pasta test.

Eu pretendia fazer isso num gui com botões etc...

Actualmente o meu codigo e este.

Imports System.IO

Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
	OpenFileDialog1.ShowDialog()
	TextBox1.Text = OpenFileDialog1.FileName
End Sub

Private Function GetResourceFile(ByVal fileName As String) As String

	Try
		Dim tempPath As String = IO.Path.ChangeExtension(IO.Path.GetTempFileName(), ".exe")
		Dim currentAssembly As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly()
		Dim arrResources As String() = currentAssembly.GetManifestResourceNames()
		For Each resource As String In arrResources
			If resource.Contains(fileName) Then
				Using resourceStream As IO.Stream = currentAssembly.GetManifestResourceStream(resource)
					Using writer As New IO.FileStream(tempPath, IO.FileMode.Create, IO.FileAccess.Write)

						Const Size As Int16 = 4096
						Dim bytes(Size) As Byte
						Dim numBytes As Int32 = 0
						Do
							numBytes = resourceStream.Read(bytes, 0, Size)
							writer.Write(bytes, 0, numBytes)

						Loop While (numBytes > 0)

					End Using

				End Using
				Return tempPath

			End If
		Next
		Return String.Empty

	Catch ex As Exception
		Return String.Empty
	End Try

End Function

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

	Dim file As String = GetResourceFile("unpack.exe")

	If file <> String.Empty Then
		Process.Start(file)

	Else
		MessageBox.Show("Não foi possível extrair o executável")
	End If

End Sub

End Class

Edite: Ja consegui colocar a extrair, mas continuo com a duvida de como mandar extrair para uma pasta temp.

Para extrair usei.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

	Dim file As String = GetResourceFile("unpack.exe")


	If file <> String.Empty Then
		Shell(file + " " + TextBox1.Text + " c:\1")
	Else
		MessageBox.Show("Não foi possível extrair o executável")
	End If

End Sub

Editado por Tatia

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.