Como crear Builder en C#?

Iniciado por Edu, 21 Febrero 2011, 17:44 PM

0 Miembros y 1 Visitante están viendo este tema.

Edu

He buscado por google creanme y no encuentro nada no se :S
Yo se crearlo en vb6 asique la idea la tengo pero talvez alguien me explica como hacerlo en C# ya q no se como hacerlo, es decir no se usar manejo de archivos binarios u otras cosas.. espero q me ayuden ;) gracias!

_katze_

system.IO

como abrir archivos y listo

Edu

dices usar el stream entonces? binarywrite algo asi no?
Y lo de usar el split y eso siento q sera muy distinto..

raul338


Edu

Mmmm creo q te vas muy lejos de lo q yo quiero hacer xD
Hablo de un Builder q funciona con un Stub q se metera dentro del nuevo ejecutable "hijo" comportarse de una forma distinta y poder encontrar los datos q se le habian pasado desde el padre..

43H4FH44H45H4CH49H56H45H

En .NET es mas sencillo  lo que buscas, se puede crear un pequeño compilador (en si seria un ensamblador), por ejemplo se le puede indicar el nombre de ejecutable, el tamaño de la ventana, botones, etc, se puede cambiar colores, nombres de ventana, boton y demas, en si todo lo que quieras.

Aqui tengo un pequeño ejemplo:



Descarga:

http://www.4shared.com/file/McnjGdJW/CompHecho.html

Este programa recibe los parametros para crear un nuevo programa personalizado, se le puede indicar el texto que mostrara en el boton y ventana, ademas se le puede indicar el alto y ancho del boton y su posicion en el formulario.
En si se puede hacer que personalize todo del nuevo programa, formularios, colores, ventanas, estilos y demás.

Obviamente es una pequeña demo que acabo de hacer solo para mostrarlo, el .exe resultante muestra una ventana de consola pero se puede eliminar sin problemas.

Para hacer este tipo de proyectos necesitas saber programar en IL (Intermediate Language) que es similar al Assembler y utilizar ilasm.exe.

Saluos.

PD: El programa todavia no hace validaciones de los txt, asi que se deben llenar correctamente para evitar fallos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Edu

Gracias pero me parece raro q en vb6 sea taan facil y en .net se complique taanto, por eso pienso q tiene q haber otra forma, talvez intentare traducir el codigo de vb6 a C# a ver si puedo hacerlo, pero la idea era saber antes si habia otra forma mas facil todavia pero veo q hay otras formas mas dificiles xD
Gracias igual a los 3!

43H4FH44H45H4CH49H56H45H

Me dio curiosidad, porque dices que en VB6 es "taan facil", es porque solo tienes que copiar y pegar códigos para que funcione? o tu creaste alguna técnica propia para lo que buscas.

En todo caso el método que utiliza la mayoria en vb6 se puede codear en .NET solo modificando un poco el enlace que te dio @raul338.

En realidad es tan simple que no vale la pena ni mencionarlo  :P.

Saluos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Edu

#8
Mira esto:

Código (vb) [Seleccionar]

Private Sub Command1_Click()
Dim stub As String

With CD
.DialogTitle = "Elija donde guardar.."
.Filter = "Archivos ejecutables (*.exe)|*.exe"
.ShowSave
End With
If CD.FileName <> vbNullString Then

Open App.Path & "\Stub.exe" For Binary As #1
stub = Space$(LOF(1))
Get #1, , stub
Close #1


Open CD.FileName For Binary As #2
Put #2, , stub
Put #2, , "·$%&/" & Text1.Text
Close #2


End If
End Sub


Eso seria el Builder.exe, pero el Stub.exe q va siempre en el mismo directorio del Builder.exe es este:

Código (vb) [Seleccionar]

Sub Main()
Dim my As String
Dim data() As String

Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1

my = Space$(LOF(1))
Get #1, , my

Close #1
data() = Split(my, "·$%&/")
' ahora data(1) contiene el string q se le paso del builder ( el text1.text)
MsgBox data(1)

End Sub


Esto ya lo conoceras, pero esq quiero algo asi, intentare como decia a traducirlo.

Esta codeado asi nomas esq lo hice rapido pero anda y entenderas creo, y cuando aprendi a hacerlo me dijieron q eso era un Builder asique no se xD

43H4FH44H45H4CH49H56H45H

El "stub" solo es un .exe que se lee asi mismo y saca el string guardado al final de si mismo (el que "builder" guardo) separado por "·$%&/" (para eso el Split), esto lo haces mas sencillo, simplemente guardas un .exe como archivo de recurso y luego de escribirlo al HD le aumentas al final el string que quieres y el procedimiento es el mismo. Asi no tendrias que tener un "stub" al lado del "builder".

Como dije solo necesitas modificar un poco el enlace que te dieron  :silbar:

Pero este método que muestras es muy "barato", supongo que para vb6 estará bien, pero en .NET con todas las herramientas que trae se puede hacer algo mucho mas sofisticado como lo que mostre antes.

Saluos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W