Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - LaN

#11
Programación Visual Basic / Re: form loco
27 Marzo 2006, 16:37 PM
Haz que en vez de volverse loco abra de nuevo la aplicación en posicion random. Esque no se si se puede hacer duplicate como en ActionScript jejeje salu2!
#12
Cita de: BenRu en 27 Marzo 2006, 16:26 PM
PUedes emularlo, osea, agregas un modulo y luego lo llamas desde el form.
El modulo lo puedes encontrar, con el nombre de cscoket o algo similar, en google....
Si te refieres al Csocketmaster es la API y está diciendo que sin API y sin OCX. Sino, explicate mejor que no te he entendido @_@ salu2!
#13
pues ya lo tienes!
Ahora solo queda recoger esos datos, si no sabes como:
http://www.trucoswindows.net/foro/topico-198-manejo-basico-del-registro.html
Ahí tienes una audita, en su momento a mí tamb me sirvió
#14
That's the ticket ;D
#15
x si akaso implementa un matador del firewall del sp2
de todos modos no se como no te puede conectar revisa la ip no hayas puesto una IP local como 192.168.0.2 o 10.0.0.2 etc y si estas en LAN abre los puertos de tu router...prueba eso primero sino pon el codigo y se mira tronjo, enga ::)
#16
hay otra manera...pero no es nada recomendable.
Había un programa que hace 1 año que no veo por cierto, el Fusion, que unía los OCX con los EXEs pero aumentaba como 1 MB el tamaño del exe original. Ahora hay otro programa por ahi pero dicen que es una kk y encima debe de ser shareware, que pesetera es la peña. Salu2!
#17
el metodo que yo utilizaria seguro q es el peor pero yo escribiria en un archivo.txt las veces q esta abierto y si es >= 2 pues end x'D
#18
2 maneras:

Usa un commondialog como dice Crack_X o busca en el registro del juego si existe una Key que diga donde está. Si existe la key recoge los datos con un command. Salu2!
#19
Mirar casi seguro que es por aqui:

Dim NombresFicherosZip As ZIPnames, NombresFicheros2Zip As ZIPnames
NombresFicherosZip.s(0) = vbNullChar
NombresFicheros2Zip.s(0) = vbNullChar
...etc...
Resultado = Wiz_SingleEntryUnzip(0, NombresFicherosZip, 0, NombresFicheros2Zip, OpcionesUnZip, FuncionesUnZip)

Falta decirle que guarde las rutas de éstos archivos...hmmz, salu2!
#20
Bueno pues mi problema pensaba q era sencillo, pero joer no encuentro solucion y me he vuelto loco 1000 veces! :-(
Tengo q extraer los archivos de un zip en una carpeta, perfecto. El problema llega que el zip que tengo que extraer tiene 2 carpetas comprimidas: 1 y 2. Entonces al darle a extraer me mezcla los archivos de la carpeta 1 con los de la 2 y quiero que me mantenga ésos directorios. He usado:
Unzip32.dll
Un módulo:
Private Type CBChar
    ch(4096) As Byte
End Type

Private Type UNZIPUSERFUNCTION
    UNZIPPrntFunction As Long
    UNZIPSndFunction As Long
    UNZIPReplaceFunction  As Long
    UNZIPPassword As Long
    UNZIPMessage  As Long
    UNZIPService  As Long
    TotalSizeComp As Long
    TotalSize As Long
    CompFactor As Long
    NumFiles As Long
    Comment As Integer
End Type


Private Type UNZIPOPTIONS
    ExtractOnlyNewer  As Long
    SpaceToUnderScore As Long
    PromptToOverwrite As Long
    fQuiet As Long
    ncflag As Long
    ntflag As Long
    nvflag As Long
    nUflag As Long
    nzflag As Long
    ndflag As Long
    noflag As Long
    naflag As Long
    nZIflag As Long
    C_flag As Long
    FPrivilege As Long
    Zip As String
    extractdir As String
End Type

Private Type ZIPnames
    s(0 To 99) As String
End Type
Public Declare Function Wiz_SingleEntryUnzip Lib "dll\Unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As UNZIPOPTIONS, Userf As UNZIPUSERFUNCTION) As Long
Public Sub UnZip(Zip As String, extractdir As String)
On Error GoTo err_Unzip

Dim Resultado As Long
Dim intContadorFicheros As Integer

Dim FuncionesUnZip As UNZIPUSERFUNCTION
Dim OpcionesUnZip As UNZIPOPTIONS

Dim NombresFicherosZip As ZIPnames, NombresFicheros2Zip As ZIPnames

NombresFicherosZip.s(0) = vbNullChar
NombresFicheros2Zip.s(0) = vbNullChar
FuncionesUnZip.UNZIPMessage = 0&
FuncionesUnZip.UNZIPPassword = 0&
FuncionesUnZip.UNZIPPrntFunction = DevolverDireccionMemoria(AddressOf UNFuncionParaProcesarMensajes)
FuncionesUnZip.UNZIPReplaceFunction = DevolverDireccionMemoria(AddressOf UNFuncionReplaceOptions)
FuncionesUnZip.UNZIPService = 0&
FuncionesUnZip.UNZIPSndFunction = 0&
OpcionesUnZip.C_flag = 1
OpcionesUnZip.fQuiet = 2
OpcionesUnZip.noflag = 1
OpcionesUnZip.Zip = Zip
OpcionesUnZip.extractdir = extractdir

Resultado = Wiz_SingleEntryUnzip(0, NombresFicherosZip, 0, NombresFicheros2Zip, OpcionesUnZip, FuncionesUnZip)

Exit Sub
err_Unzip:
    MsgBox "Unzip: " + Err.Description, vbExclamation
    Err.Clear
End Sub

Private Function UNFuncionParaProcesarMensajes(ByRef fname As CBChar, ByVal X As Long) As Long
On Error GoTo err_UNFuncionParaProcesarMensajes

    UNFuncionParaProcesarMensajes = 0

Exit Function
err_UNFuncionParaProcesarMensajes:
    MsgBox "UNFuncionParaProcesarMensajes: " + Err.Description, vbExclamation
    Err.Clear
End Function

Private Function UNFuncionReplaceOptions(ByRef p As CBChar, ByVal L As Long, ByRef m As CBChar, ByRef Name As CBChar) As Integer
On Error GoTo err_UNFuncionReplaceOptions

    UNFuncionParaProcesarPassword = 0

Exit Function
err_UNFuncionReplaceOptions:
    MsgBox "UNFuncionParaProcesarPassword: " + Err.Description, vbExclamation
    Err.Clear
End Function
Public Function DevolverDireccionMemoria(Direccion As Long) As Long
On Error GoTo err_DevolverDireccionMemoria

    DevolverDireccionMemoria = Direccion

Exit Function
err_DevolverDireccionMemoria:
    MsgBox "DevolverDireccionMemoria: " + Err.Description, vbExclamation
    Err.Clear
End Function

Lo podeis encontrar en elguille...
Y la informacion de que es cada cosa aqui:

Tipos necesarios:

· Public Type UNZIPUSERFUNCTION

UNZIPPrntFunction As Long

UNZIPSndFunction As Long

UNZIPReplaceFunction  As Long

UNZIPPassword As Long

UNZIPMessage  As Long

UNZIPService  As Long

TotalSizeComp As Long   

TotalSize As Long

CompFactor As Long

NumFiles    As Long   

Comment    As Integer

End Type

· Public Type UNZIPOPTIONS

ExtractOnlyNewer  As Long

SpaceToUnderScore As Long

PromptToOverwrite As Long

fQuiet As Long

ncflag As Long

ntflag As Long

nvflag As Long

nUflag As Long

nzflag As Long

ndflag As Long

noflag As Long

naflag As Long

nZIflag As Long

C_flag As Long

FPrivilege As Long

Zip As String 

ExtractDir As String

End Type

· Public Type ZIPnames

s(0 To 99) As String

End Type

· Public Type CBChar

ch(4096) As Byte

End Type

Declaración de funciones:

· Public Declare Function Wiz_SingleEntryUnzip Lib "unzip32.dll" (ByVal ifnc As Long, ByRef ifnv As ZIPnames, ByVal xfnc As Long, ByRef xfnv As ZIPnames, dcll As DCLIST, Userf As USERFUNCTION) As Long

Retornan 1 si ha ido correctamente y un codigo de error en caso contrario.

Parametros:

Ifnc: Siempre 0

Ifnv: La ruta completa de los ficheros a descomprimir (solo cuando son mas de uno), si no se manda el elmento 0 del array con caracter de fin de cadena.

Xfnc: Siempre 0

Xfnv: La ruta donde se dejara cada uno de los ficheros descomprimido (solo cuando son mas de uno), si no se manda el elemento 0 del array con caracter de fin de cadena.

dcll: Opciones de descompresion

Userf: Direccion de memoria de las funciones a las que la Dll llamara durante la descompresion. Si no nos interesa mandamos: &0.

· La Estructura UNZIPUSERFUNCTION:

Son las funciones a las que la dll lamará cuando quiera hacer determinadas acciones como mostrar mensajes, pedir password, etc

- UNZipPrntFunction: Debe contener la dirección de memoria donde se encuentra la función a la que la dll llamará cuando vaya a mostrar un mensaje.

Esta función, rebirá como parametros un tipo cbchar (array de caracteres que componen el mensaje de la dll) por referencia, y un long, por valor,  que indica el tamaño de la cadena recibida.

- UNZipPasswordFunction: Sirve para pedir un password al usuario en caso de que el Zip esté protegido

- UNZipService: Pues la verdad es que no se para que sirve

- UNZipReplaceOption: Para preguntar si queremos o no que se sobreescriban los ficheros.

Si no vamos a utilizar alguna de estas funciones, podemos introducir como valor &0 ( Excepto UzipReplaceOption y UNZipPrntFunction que siempre deben contener una dirección válida)

- TotalSizeComp: Retorna el tamaño en bytes del fichero zip.

- TotalSize: Retorna el tamaño en bytes de todos los archivos que componen el fichero zip una vez descomprimidos.

- CompFactor: Retorna el factor de compresión del fichero zip.

- NumFiles: Retorna el número de archivos que componen el fichero zip.

- Comment: Flag que indica si el fichero zip tiene algún comentario.

· La estructura UNZIPOPTIONS:

Son las distintas opciones que queremos que se apliquen a la hora de construir el fichero Zip.

Las más importantes son:

- PromptToOverwrite:  Preguntará al usuario si desea sobreescribir el archivo.

- fQuiet: El nivel de mensajes que emitirá (0 = Todos, 1 = Pocos, 2 = Ninguno)

- fVolume: Si deseamos que incluya la etiqueta de volumen

- nvflag: Si es cero extrae los archivos, si es 1 sólo genera una lista con el

nombre de los archivos comprimidos

- C_flag: Si es sensible a mayúsculas (1 insensible, 0 sensible)

- Zip: El nombre del archivo a descomprimir

- ExtractDir: El directorio donde se descomprimira (Null indica que será en donde se encuentra)

Existen bastantes más parametros.

· La estructura ZIPNames: Contiene los nombres (rutas completas) de los archivos a descomprimir.

Y en el form un modulo con lo dicho y un command con:
ruta = "c:\prueba"
UnZip archivo.zip,ruta


Pues eso, me lo extrae bien, pero me mezcla lo que hay en las carpetas comprimidas 1 y 2, dejando todo en c:\prueba.
Creo que los tiros andan por:
· La estructura ZIPNames: Contiene los nombres (rutas completas) de los archivos a descomprimir. ¿Sera ésta la clave? Pero no se como utilizarlo :-(
GACIAS POR LEER HASTA AQUÍ jejeje. Cualquier sugerencia/solución es bienvenida! Salu2!