Hola, voy a hacer un par de preguntas, porque no me aclaro :xD
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 :xD
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 :xD
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 :xD 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 :xD
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 TOTAL
vamos, 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
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!!!
Cita de: 79137913 en 14 Julio 2011, 19:47 PM
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
Cita de: 79137913 en 14 Julio 2011, 19:47 PM
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.
Cita de: 79137913 en 14 Julio 2011, 19:47 PM
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 :xD
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... :xD
Cita de: 79137913 en 14 Julio 2011, 19:47 PM
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!
Cita de: pitoloko en 14 Julio 2011, 19:17 PM
Hola, voy a hacer un par de preguntas...
menos mal que solo eran 2..... :laugh:
para lo del msgbox, mejor utiliza el api MessageBoxA/W, porque desde otro form tambien queda trabada la aplicacion
HOLA!!!
No, no queda trabada.
GRACIAS POR LEER!!!
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.
seguro que me pasa por no usar productos originales.... :rolleyes:
'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.... :-[
Que queres demostrar con eso? :S
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!! :rolleyes:
Anda, me voy parte del dia y ya tienes varias dudas :xD
Cita de: pitoloko en 14 Julio 2011, 19:17 PM
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 (http://www.leandroascierto.com.ar/categoria/M%C3%B3dulos/articulo/ClsImageControls.php) Aunque no lo creas, es largo cambiar ciertas propiedades (se hace mediante API)
Cita de: pitoloko en 14 Julio 2011, 19:17 PM
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 esto (http://www.vbforums.com/showthread.php?t=324363)
Cita de: pitoloko en 14 Julio 2011, 19:17 PM
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 :xD 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 :xD
Cita de: pitoloko en 14 Julio 2011, 19:17 PM
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 :xD)
Cita de: pitoloko en 14 Julio 2011, 19:17 PM
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 :xD
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 TOTAL
vamos, 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 :P
Y una progressbar es simplemente decorativa. Pone un timer y de ahi vas llenando :P no se si hay API para calcular cuanto puede tardar un copiado :-\
Bueno, suficiente, no quiero acabar siendo el pesado de este subforo :rolleyes:, 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 :xD
un saludo!
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 programa
ademá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...
(http://img14.imageshack.us/img14/9674/prtscrcapturel.jpg)
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. :xD
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!!!
gracias pero lo malo es que el frame o el picturebox no puedo hacerlos transparentes (Al menos usando las propiedades)
:-\
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!!
Sobre el label, no se si probaste... Click Derecho -> Traer al frente :P
O sino puedes usar el TLabel que incluyo en mi ucTabs (recuerda poner el ctl y ctx en la misma carpeta) y agregarlos al proyecto :D
En las opciones por defecto de vb el grid donde se pone los controles me parece muy limitado (120x120 twips :P). Yo lo reduzco a la mitad asi me da mas "movimiento" a la hora de poner controles (60x60 twips)
probé "Traer al frente", pero no se puede.
tus aportes me parecen demasiado complicados para entender como usarlos, entonces aprenderé un poco más y cuando me vea preparado lo usaré, ese y el progressbar, que ganas tengo de saber usarlos xD
De momento intentaré el "truco" 79137913
En el manual que estoy leyendo, los twips los usaa 30x30, y tu a 60x60, pues yo no me voy a quedar atrás >:D 80x80, de momento lo dejaré asi (No noto la diferencia al mover los controles). :xD
un saludo!
Para gustos colores, igual, tengas la medida que tengas, Manteniendo click para mover un control y presionando alt+shift, podes moverlo libremente ;D
Cita de: pitoloko en 15 Julio 2011, 14:36 PM
tus aportes me parecen demasiado complicados para entender como usarlos, entonces aprenderé un poco más y cuando me vea preparado lo usaré, ese y el progressbar, que ganas tengo de saber usarlos xD
El TLabel no tiene nada de complicado, es solo agregar 2 archivos a la carpeta y 1 solo al explorador de proyectos, aparece un icono mas en la toolbox (similar al Label) y lo usas como un control mas :D no hay tanta ciencia, es lo mismo con el ProgressBar. Es en los otros controles donde hay cosillas mas complicadas :xD
Cita de: raul338 en 15 Julio 2011, 14:42 PM
El TLabel no tiene nada de complicado, aparece un icono mas en la toolbox (similar al Label) y lo usas como un control mas :D
!!!!! ups!!! entonces ya estoy tardando en usarlo, gracias de nuevo, pensaba que eran módulos o algo parecido.
Yo creo poder responder lo mas basico de todo
Para copiar archivos podes usar Filecopy e.e
Filecopy "C:\a.exe", "C:\carpetadondecopio\a.exe"
igual podes renombrar el archivo
Filecopy "C:\a.exe", "C:\carpetadondecopio\pitoloko.exe"
tambien podes hacer esto e.e
Filecopy "C:\a.exe", "C:\carpetadondecopio\a.exe"
kill "C:\a.exe"
y es como si "moviera" el archivo e.e
XD espero haber servido para algo (? por mas inutil que sea mi respuesta xD