Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: [VB] Dudas de novato... (Leído 1,232 veces)
|
pitoloko
Desconectado
Mensajes: 2.500
|
Hola, voy a hacer un par de preguntas, porque no me aclaro  PD: la que más me interesa resolver es la pregunta nº 5 y la 6... gracias a todos los que lean!! 
1º
Me gustaría hacer mi primer cripter, usando xor o rc4 con algun ejemplo de google 
La pregunta es...
Al ser una app nueva, un cripter nuevo... ¿las posibilidades de que el antivirus NO lo detecte.. sería del 100%? o de lo contrario yo tendría que ofuscar el código? De ser así, ¿existe alguna aplicación que ofusque el source de una app de vb6?
Me llevo muy mal con el tipo de variables de VB, como para tener que ofuscar yo mismo un code agregando 1.000 variables más sin sentido 
2º
¿Hay alguna manera para que un msgbox no pare el procedimiento de la app?
3º Al cargar un recurso en un botón, de esta manera: Command1.Picture = _ LoadResPicture(102, vbResBMP) El caption del botón queda desalineado, antes de cargar el BMP el texto estaba centrado en el botón, pero al cargar el BMP, el texto queda alineado al bottom ¿Porque? ¿Como lo vuelvo a centrar?
4º He visto que el tema de hacer un frame transparente es muy dificil ¿Existe una manera sencilla? el tema de enviar la app al systemtray también, pero bueno, no se si hacer la misma pregunta... no quiero descentrarme en funcionalidades para centrarme en el aspecto de la app  aunque, intento ser perfeccionista 
5º app.path es la variable que almacena la ruta desde donde estamos ejecutando nuestra app ¿Cierto? Entonces ¿como puedo modificar o llamar a este módulo para asignar " app.path" para que sea la ruta por defecto en la que se debe abrir? Private Const BIF_RETURNONLYFSDIRS As Long = &H1 Private Const BIF_DONTGOBELOWDOMAIN As Long = &H2 Private Const BIF_RETURNFSANCESTORS As Long = &H8 Private Const BIF_BROWSEFORCOMPUTER As Long = &H1000 Private Const BIF_BROWSEFORPRINTER As Long = &H2000 Private Const BIF_BROWSEINCLUDEFILES As Long = &H4000 Private Const MAX_PATH As Long = 260 Type BrowseInfo hOwner As Long pidlRoot As Long pszDisplayName As String lpszINSTRUCTIONS As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type Type SHFILEOPSTRUCT hwnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAnyOperationsAborted As Boolean hNameMappings As Long lpszProgressTitle As String End Type Declare Function SHGetPathFromIDListA Lib "shell32.dll" ( _ ByVal pidl As Long, _ ByVal pszBuffer As String) As Long Declare Function SHBrowseForFolderA Lib "shell32.dll" ( _ lpBrowseInfo As BrowseInfo) As Long Function BrowseFolder(Optional Caption As String = "") As String Dim BrowseInfo As BrowseInfo Dim FolderName As String Dim ID As Long Dim Res As Long With BrowseInfo .hOwner = 0 .pidlRoot = 0 .pszDisplayName = String$(MAX_PATH, vbNullChar) .lpszINSTRUCTIONS = Caption .ulFlags = BIF_RETURNONLYFSDIRS .lpfn = 0 End With FolderName = String$(MAX_PATH, vbNullChar) ID = SHBrowseForFolderA(BrowseInfo) If ID Then Res = SHGetPathFromIDListA(ID, FolderName) If Res Then BrowseFolder = Left$(FolderName, InStr(FolderName, vbNullChar) - 1) End If End If
6º Tengo pensado usar una barra de progreso en todas las aplicaciones que gracias a vosotros consiga hacer. Lo malo es que no se hacerlo  He probado una progressbar, la barra consiste en un intervalo de tiempo que podemos definir, por ejemplo cada 500 ms la barrita aumenta, en cambio yo tengo otras necesidades... Lo que quisiera es usar la barra de progreso por ejemplo así: (no me se la función para copiar un archivo, así que lo siento por este ejemplo tan malo xD) Shell copy archivo1 & archivo2 & archivo3 Barra de progreso que calcule el tiempo que va a tardar en copiarse los 3 archivos (No uno a uno, los 3 en total!). command1.caption TIEMPO Transcurrido command1.caption TIEMPO TOTALvamos, tal y como lo hace windows por ejemplo la barra de progreso de windows que sale al copiar un archivo grande en un directorio... ¿Se podrá usar esa api de windows? Me he extendido mucho, mi pregunta es si esta barra de progreso puedo utilizarla para el uso que comenté arriba, a mi me parece que no.  Public Function ProgressBar(ByRef ThePictureBox As PictureBox, ByVal Min As Long, ByVal Max As Long, ByVal Value As Long, Optional ByVal ShowProgressCaption As Boolean = False, Optional ByVal ForeColor As Long = 16777215, Optional ByVal BackColor As Long = 16711680, Optional ByVal FillColor As Long = vbButtonFace, Optional ByVal Alignment As AlignmentConstants = vbCenter, Optional ByVal ByPassChecks As Boolean = False) On Error Resume Next Dim TheCaption As String Dim RangeDiff As Long ' Make sure a PictureBox control was specified If ThePictureBox Is Nothing Then Exit Function If ByPassChecks = False Then ' Make sure the AutoRedraw property is on, or the ProgressBar will be ' blank if the PictureBox is repainted by Windows ThePictureBox.AutoRedraw = True ' Make sure the PictureBox doesn't AutoSize ThePictureBox.AutoSize = False ' Make sure there's no picture set Set ThePictureBox.Picture = Nothing ' Make sure progressbar is visible ThePictureBox.Visible = True End If ' Calculate the percent of the progressbar RangeDiff = Max - Min If RangeDiff = 0 Then TheCaption = "0.0%" Else TheCaption = Format((Value - Min) / RangeDiff, "0.0%") End If ' Draw the lines on the PictureBox that make it look like a ProgressBar If RangeDiff = 0 Then ThePictureBox.Line (0, 0)-(0, ThePictureBox.ScaleHeight), BackColor, BF ThePictureBox.Line (0, 0)-(ThePictureBox.ScaleWidth, ThePictureBox.ScaleHeight), FillColor, BF Else ThePictureBox.Line (0, 0)-((((Value - Min) / RangeDiff) * ThePictureBox.ScaleWidth), ThePictureBox.ScaleHeight), BackColor, BF ThePictureBox.Line ((((Value - Min) / RangeDiff) * ThePictureBox.ScaleWidth), 0)-(ThePictureBox.ScaleWidth, ThePictureBox.ScaleHeight), FillColor, BF End If ' If no caption, exit If ShowProgressCaption = False Then ThePictureBox.Refresh Exit Function End If ' Set the text location depending on where the user specified If Alignment = vbCenter Then ThePictureBox.CurrentX = (ThePictureBox.ScaleWidth / 2 - ThePictureBox.TextWidth(TheCaption) / 2) ElseIf Alignment = vbLeftJustify Then ThePictureBox.CurrentX = 1 ElseIf Alignment = vbRightJustify Then ThePictureBox.CurrentX = (ThePictureBox.ScaleWidth - ThePictureBox.TextWidth(TheCaption)) - 1 End If ThePictureBox.CurrentY = (ThePictureBox.ScaleHeight - ThePictureBox.TextHeight(TheCaption)) / 2 ' Print the caption directly onto the PictureBox ThePictureBox.ForeColor = ForeColor ThePictureBox.Print TheCaption ThePictureBox.Refresh End Function
|
|
|
|
« Última modificación: 14 Julio 2011, 20:40 por pitoloko »
|
En línea
|
pa que
|
|
|
79137913
Desconectado
Mensajes: 780
4 Esquinas
|
HOLA!!! 1. No, cuando lo armes lo mas probable es que te lo dectecte, hay una aplicacion de Karcrack que se llama karcrack proyect crypter mirala... 2. No directamente, pero si queres mostrar un msgbox y no frenar la ejecucion lo mas simple es armar un formulario aparte que funcione de msgbox, asi le envias que mensaje Debe mostrar y listo. 3. La verdad no tengo el vb para probar aca, intenta cargar la imagen y configurar nuevamente la funcion aligment. 4. Ambos se pueden hacer y hay mucha info sobre ello, recomiendo que por ahora uses un procedimiento ya creado y luego veas como funcionan. 5. No podes modificar app.path, lo que podes hacer es al inicio de tu aplicacion algo asi: If app.path <> pathPredeterminado Then End 6. La barra de progreso no tiene mucha ciencia y no conozco ninguna que funcione por tiempo... Vos le seteas el valor minimo y maximo, luego simplemente vas sumando a la propiedad .value cuanto vas aumentando. Por ejemplo: Pbar1.maxvalue = 3 ' no recuerdo si era maxvalue u otra pero bueno, 3 representa la cantidad de operaciones que realizas. For x = 0 to 3 Call HacerTodosLosProcedimientos() Pbar1.value = X Next GRACIAS POR LEER!!!
|
|
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas" 79137913 *Shadow Scouts Team* Resumenes Cs.Economicas
|
|
|
pitoloko
Desconectado
Mensajes: 2.500
|
2. lo mas simple es armar un formulario aparte que funcione de msgbox, asi le envias que mensaje Debe mostrar y listo.
Que sencillo, no se como no se me había ocurrido xD 3. La verdad no tengo el vb para probar aca, intenta cargar la imagen y configurar nuevamente la funcion aligment.
lo he intentado y ni modo (Algo habré echo mal)  Por cierto, los ejemplos que he visto son códigos de +50 líneas, no creo que se necesite tanto para REajustar el alignment  ¿gastarías mucho tiempo en ponerme un ejemplo? sino da igual, seguiré buscando. 5. No podes modificar app.path, lo que podes hacer es al inicio de tu aplicacion algo asi: If app.path <> pathPredeterminado Then End Creo que te has confundido, entiendo que app.path no se pueda modificar, no quiero modificarlo, lo que quiero es poder usarlo en el módulo que dije  ese módulo lo que hace es abrir un diálogo para buscar carpetas, y la ruta por defecto es "Equipo", pues yo quiero que se me habrá desde la ruta "app.path" Me he repasado las funciones del modulo pero creo que solo permite llamarlo de una manera predeterminada, sin añadirle "optionals", aunque bueno, que voy a saber yo...  6. La barra de progreso no tiene mucha ciencia y no conozco ninguna que funcione por tiempo...
la barra de tu ejemplo parece eficaz, aún tengo que ponerla en practica. y gracias de nuevo por tu tiempo!
|
|
|
|
|
En línea
|
pa que
|
|
|
jaunx
Desconectado
Mensajes: 20
|
Hola, voy a hacer un par de preguntas...
menos mal que solo eran 2.....  para lo del msgbox, mejor utiliza el api MessageBoxA/W, porque desde otro form tambien queda trabada la aplicacion
|
|
|
|
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 780
4 Esquinas
|
HOLA!!!
No, no queda trabada.
GRACIAS POR LEER!!!
|
|
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas" 79137913 *Shadow Scouts Team* Resumenes Cs.Economicas
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
Trabada si fuera Modal pero se sacaria igual.
pitoloko, estas haciendo lo mismo q hice yo, me pase de batch ( obvio que no se ni la mitad que vs) a vb6 porque habia muchos modulos interesantes y todo el tema de crypters etc pero lo unico que aprenderas es a copiar y pegar :S Te digo porque ya quieres hacer un crypter xD Hacer todo vs solo, tus propias encryptaciones, propio runpe y todo ufff falta muchisimo.
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
jaunx
Desconectado
Mensajes: 20
|
seguro que me pasa por no usar productos originales....  'form1 Private Sub Form_Load() Form2.Show MsgBox "se ha destrabado" End End Sub
'form2 Private Sub Form_Load() MsgBox "soy el form2" End Sub
Modifico: Disculpa 79137913, no lei bien lo que decías e interpreté otra cosa.... 
|
|
|
|
« Última modificación: 15 Julio 2011, 01:39 por jaunx »
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
Que queres demostrar con eso? :S
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
Maldades_CK
Desconectado
Mensajes: 5
|
mira, no estoy seguro, pero con la funcion filelen podras conseguir algo!!! osea calcular el tamaño de los archivos a copiar y luego con un timer testear el tamaño de la copia!! 
|
|
|
|
|
En línea
|
|
|
|
|
raul338
|
Anda, me voy parte del dia y ya tienes varias dudas  3º Al cargar un recurso en un botón, de esta manera: Command1.Picture = _ LoadResPicture(102, vbResBMP) El caption del botón queda desalineado, antes de cargar el BMP el texto estaba centrado en el botón, pero al cargar el BMP, el texto queda alineado al bottom ¿Porque? ¿Como lo vuelvo a centrar? Image Controls de LeandroA Aunque no lo creas, es largo cambiar ciertas propiedades (se hace mediante API)
4º He visto que el tema de hacer un frame transparente es muy dificil
¿Existe una manera sencilla?
Nunca me lo planteé, pero tal vez te sirva estoel tema de enviar la app al systemtray también, pero bueno, no se si hacer la misma pregunta... no quiero descentrarme en funcionalidades para centrarme en el aspecto de la app  aunque, intento ser perfeccionista  Busca sobre icono en el systray o en la bandeja. Hay mucho en google y en este foro. Y solo faltaria ocultar el formulario que ya lo sabes 
5º app.path es la variable que almacena la ruta desde donde estamos ejecutando nuestra app ¿Cierto?
Entonces ¿como puedo modificar o llamar a este módulo para asignar "app.path" para que sea la ruta por defecto en la que se debe abrir?
Solo tienes que completar el pidlRoot de BrowseInfo (y poner " & vbNullChar" porque sino creo que romperas el API  ) 6º Tengo pensado usar una barra de progreso en todas las aplicaciones que gracias a vosotros consiga hacer. Lo malo es que no se hacerlo  He probado una progressbar, la barra consiste en un intervalo de tiempo que podemos definir, por ejemplo cada 500 ms la barrita aumenta, en cambio yo tengo otras necesidades... Lo que quisiera es usar la barra de progreso por ejemplo así: (no me se la función para copiar un archivo, así que lo siento por este ejemplo tan malo xD) Shell copy archivo1 & archivo2 & archivo3 Barra de progreso que calcule el tiempo que va a tardar en copiarse los 3 archivos (No uno a uno, los 3 en total!). command1.caption TIEMPO Transcurrido command1.caption TIEMPO TOTALvamos, tal y como lo hace windows por ejemplo la barra de progreso de windows que sale al copiar un archivo grande en un directorio... ¿Se podrá usar esa api de windows? Me he extendido mucho, mi pregunta es si esta barra de progreso puedo utilizarla para el uso que comenté arriba, a mi me parece que no.  Yo postie un ucProgressBar hace un tiempo al estilo windows7  Y una progressbar es simplemente decorativa. Pone un timer y de ahi vas llenando  no se si hay API para calcular cuanto puede tardar un copiado 
|
|
|
|
|
En línea
|
|
|
|
pitoloko
Desconectado
Mensajes: 2.500
|
Bueno, suficiente, no quiero acabar siendo el pesado de este subforo  , ya me habeis dado info para probar un par de dias las cosas e ir aprendiendo, gracias a todosss I'll come back  ... con un "par" de preguntas  un saludo!
|
|
|
|
|
En línea
|
pa que
|
|
|
pitoloko
Desconectado
Mensajes: 2.500
|
Bueno, la verdad es que tengo una duda y me gustaría aclararla pa no molestar más xD El problema es que los controles no se alinean en el programaademás de eso, tengo un label que quiero poner en un botón de comandos, intento traer el label al frente, y llevar el botón al fondo, pero nada, no me deja... aqui se puede ver como el botón siempre está por encima del label...  y por más que uso "Alinear a la cuadrícula" no se alinean los controles, solamente el texto de adentro.EDITO: lo primero ya lo he arreglado, ya me he aprendido lo que hace el menú format  , pero lo del label aun no lo consigo. 
|
|
|
|
« Última modificación: 15 Julio 2011, 12:41 por pitoloko »
|
En línea
|
pa que
|
|
|
79137913
Desconectado
Mensajes: 780
4 Esquinas
|
HOLA!!!
Los labels de por si van "pegados al form" no se los envia al frente, una solucion rapida es usar un frame o picturebox ,en ambos podes incluir el label, e incluso podes usar Print en el picturebox para escribir en el.
GRACIAS POR LEER!!!
|
|
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas" 79137913 *Shadow Scouts Team* Resumenes Cs.Economicas
|
|
|
pitoloko
Desconectado
Mensajes: 2.500
|
gracias pero lo malo es que el frame o el picturebox no puedo hacerlos transparentes (Al menos usando las propiedades) 
|
|
|
|
|
En línea
|
pa que
|
|
|
79137913
Desconectado
Mensajes: 780
4 Esquinas
|
HOLA!!!
Secretito XD saca una captura de tu programa pone la parte que queres que sea transparente en el picturebox ponele estilo Flat y Border = 0 entonces la fotito del picturebox se corresponde con el fondo. (hay maneras mas dificiles, pero siempre te intento dar las soluciones faciles).
GRACIAS POR LEER!!
|
|
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas" 79137913 *Shadow Scouts Team* Resumenes Cs.Economicas
|
|
|
|
|