Descargar archivos creandolos de de forma oculta.

Iniciado por Scratz, 22 Agosto 2007, 17:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

Scratz

Holas.

Estoy usando Inet para descargar un archivo y este es mi código:

    Dim Mx() As Byte

    Mx() = intCon.OpenURL(file6.Text, 1)
    Open Environ("ProgramFiles") & "\Activision\Call of Duty 2\" & "wallhack.ini" For Binary Access Write As #1
    Put #1, , Mx() 'file is saving
    Close #1 ' #1 : file is closing
   


Lo que me gustaría es que el archivo se crease oculto (con el atributo "Oculto", como si fuesemos a Propiedades). ¿Cómo lo puedo hacer? ¿Tengo que modificar el "Write As #1" por otro número?

Gracias.
\\... The Revolution Is Comming ...//

~~

No, el 1 solo es el canal. Lo mejor es q lo guardes y una vez guardado modifikes sus propiedades. Si no te kieres liar mucho utiliza las funciones del MS-DOS...

kichan

con la api SetAtributtes (creo que la escribi bien..xD)  puedes darle en teoria artributos aun archivo.
como dejarlo oculto..de lectura...y demaces..pero no se asta que punto esa api haga lo qye realmente dicen que hace..

Scratz

Gracias a los dos. Estoy Googleando pero solo encuentro ejemplos de VB.NET =/
\\... The Revolution Is Comming ...//

kichan

una vez que lo bajas y lo cierras (todo desde tu codigo claro)
pones dicha api..SetFileAtributtes   (ahora si la escribi bien)
solo busca la definiciones en google para VB 6 y la sintaxis correcta y ya..
es mas o menos asi

SetFileAttributes("nombredearchivo.exe",File_ATTRIBUTE_NORMAL,......etc...
algo asi...
ojo es solo un ejemplo de como puede ser

~~

#5
SetFileAttributes segun la pai guide:

CitarDeclare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

Parameters:

· lpFileName
Points to a string that specifies the name of the file whose attributes are to be set.
Windows 95: This string must not exceed MAX_PATH characters.
Windows NT: There is a default string size limit for paths of MAX_PATH characters. This limit is related to how the SetFileAttributes function parses paths. An application can transcend this limit and send in paths longer than MAX_PATH characters by calling the wide (W) version of SetFileAttributes and prepending "\\?\" to the path. The "\\?\" tells the function to turn off path parsing; it lets paths longer than MAX_PATH be used with SetFileAttributesW. This also works with UNC names. The "\\?\" is ignored as part of the path. For example, "\\?\C:\myworld\private" is seen as "C:\myworld\private", and "\\?\UNC\wow\hotstuff\coolapps" is seen as "\\wow\hotstuff\coolapps".

· dwFileAttributes
Specifies the file attributes to set for the file. This parameter can be a combination of the following values. However, all other values override FILE_ATTRIBUTE_NORMAL.
FILE_ATTRIBUTE_ARCHIVE
The file is an archive file. Applications use this value to mark files for backup or removal.
FILE_ATTRIBUTE_HIDDEN
The file is hidden. It is not included in an ordinary directory listing.
FILE_ATTRIBUTE_NORMAL
The file has no other attributes set. This value is valid only if used alone.
FILE_ATTRIBUTE_OFFLINE
The data of the file is not immediately available. Indicates that the file data has been physically moved to offline storage.
FILE_ATTRIBUTE_READONLY
The file is read-only. Applications can read the file but cannot write to it or delete it.
FILE_ATTRIBUTE_SYSTEM
The file is part of the operating system or is used exclusively by it.
FILE_ATTRIBUTE_TEMPORARY
The file is being used for temporary storage. File systems attempt to keep all of the data in memory for quicker access rather than flushing the data back to mass storage. A temporary file should be deleted by the application as soon as it is no longer needed.

Return Values:

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Y el ejemplo:

Código (vb) [Seleccionar]
Const MOVEFILE_REPLACE_EXISTING = &H1
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_BEGIN = 0
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const CREATE_NEW = 1
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000
Private Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long
Private Declare Function WriteFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function ReadFile Lib "kernel32" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal lpOverlapped As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
Private Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
Private Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
Private Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long
Private Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim sSave As String, hOrgFile As Long, hNewFile As Long, bBytes() As Byte
    Dim sTemp As String, nSize As Long, Ret As Long
    'Ask for a new volume label
    sSave = InputBox("Please enter a new volume label for drive C:\" + vbCrLf + " (if you don't want to change it, leave the textbox blank)")
    If sSave <> "" Then
        SetVolumeLabel "C:\", sSave
    End If

    'Create a buffer
    sTemp = String(260, 0)
    'Get a temporary filename
    GetTempFileName "C:\", "KPD", 0, sTemp
    'Remove all the unnecessary chr$(0)'s
    sTemp = Left$(sTemp, InStr(1, sTemp, Chr$(0)) - 1)
    'Set the file attributes
    SetFileAttributes sTemp, FILE_ATTRIBUTE_TEMPORARY
    'Open the files
    hNewFile = CreateFile(sTemp, GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)
    hOrgFile = CreateFile("c:\config.sys", GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, 0, 0)

    'Get the file size
    nSize = GetFileSize(hOrgFile, 0)
    'Set the file pointer
    SetFilePointer hOrgFile, Int(nSize / 2), 0, FILE_BEGIN
    'Create an array of bytes
    ReDim bBytes(1 To nSize - Int(nSize / 2)) As Byte
    'Read from the file
    ReadFile hOrgFile, bBytes(1), UBound(bBytes), Ret, ByVal 0&
    'Check for errors
    If Ret <> UBound(bBytes) Then MsgBox "Error reading file ..."

    'Write to the file
    WriteFile hNewFile, bBytes(1), UBound(bBytes), Ret, ByVal 0&
    'Check for errors
    If Ret <> UBound(bBytes) Then MsgBox "Error writing file ..."

    'Close the files
    CloseHandle hOrgFile
    CloseHandle hNewFile

    'Move the file
    MoveFileEx sTemp, "C:\KPDTEST.TST", MOVEFILE_REPLACE_EXISTING
    'Delete the file
    DeleteFile "C:\KPDTEST.TST"
    Unload Me
End Sub


Vamos basicamente es lo q dice kichan:

SetFileAttributes "nombredearchivo.exe", atributo

Los atributos los puedes ver en la primera cita

kichan

Me parece!!
esa es la pega de un moderador..muy bien..
asi se extraña menos a slasher-k

saludos..

Scratz

#7
;-D Gracias E0N. Ahora tengo un problema de n00b... cuando intento declarar:

Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

Me salta un error diciendo...

CitarNo se permiten constantes, cadenas de longitud fija, matrices e instrucciones Declare como miembros Public de módulos de objeto

¿Qué es lo que hago mal? Siempre he tenido problemas con las declaraciones... y es que no entiendo muy bien como funcionan. Quizás tenga que volver a los manuales y leermelos en sério.

Gracias por el aporte =D

-----

Edit:

Por cierto, la variable FILE_ATTRIBUTE_HIDDEN (que es la que me interesa) no viene definida en el ejemplo.

Const MOVEFILE_REPLACE_EXISTING = &H1
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_BEGIN = 0
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2
Const CREATE_NEW = 1
Const OPEN_EXISTING = 3
Const GENERIC_READ = &H80000000
Const GENERIC_WRITE = &H40000000


¿Sabeis definirla? No sé como puedo sacar los números que tengo q poner.

Gracias
\\... The Revolution Is Comming ...//

kichan

puede ser que quizas no metes en un modulo la declaracion bueno hace rato que no programo en VB.
pero pa evitar declararlas existe un archivo qwue se pone en loa carpeta system32.
pero eso debe ser..
que estas poniendo mal dicha declaracion..o no en el lugar indicado

HaDeS, -

Puedes utilizar la funcion SetAttr, sin utilizar ninguna Api.
Para archivos ocultos me parece que es:
Código (vb) [Seleccionar]

Private Sub Command1_Click()
SetAttr "c:\archivo.txt", 34
'SetAttr Path, Modo
'Si queres saber el numero que corresponde al modo, juega con la funcion GetAttr. (msgbox getattr("c:\archivo.txt")
'Tambien visual te da la opcion de escojer el tipo de atributo que le queres dar al archivo, vbHidden creo que seria el numero 34
End Sub


Saludos