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