Borrar Archivo

Hola, mi nombre es Eduardo y quisiera saber comando de VB para borrar un archivo.
Ademas quisiera saber API o comando para escribir en el registro de una maquina en red (si es que existe, claro) o en su defecto como mandarle a otro programa en VB una instruccion.
Gracias desde ya...
Eduardo (Uruguay)

2 Respuestas

Respuesta
1
El comando en vb para borrar un archivo es kill.
En cuanto a la api para escribir en el registro de una maquina en red, no lo sé; lo que podes hacerte es una app, con winsock, y mandarle strings predefinidos con vos, y cuando los recibe ejecutar determinada acción; por ej, le mandás el string "/c;hola;valor" y el otro programa al recibirlo sabe que el /c significa crear una key; la key llamarla hola, y el valor va a ser valor
Respuesta
1
Haber que te parecen las respuestas:
* Para borrar un archivo en VB hay una instruccion (Kill) a la que le debes proporcionar el nombre del archivo (a ser posible con el path completo). Hay mas maneras, pero esta es la mas rapida.
* Para modificar el registro de otra maquina que no sea la tuya no hay instruccion que valga, pero puedes hacer dos ejecutables, uno en tu maquina y otro en la maquina destino, y comunicar ambas aplicaciones por un Winsock Control (mirate la ayuda de VB, es muy sencillo de utilizar).
* Llamadas API para leer y escribir del registro:
' **** FUNCIONES API PARA LEER EL REGISTRO DE WINDOWS ****
Private Declare Function OSRegOpenKey Lib "advapi32" Alias "RegOpenKeyA" _
(ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long) As Long
Private Declare Function OSRegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _
(ByVal hKey As Long, ByVal lpszValueName As String, ByVal dwReserved As Long, lpdwType As Long, lpbData As Any, cbData As Long) As Long
Private Declare Function OSRegCloseKey Lib "advapi32" Alias "RegCloseKey" _
(ByVal hKey As Long) As Long
Private Declare Function OSRegSetValueEx Lib "advapi32" Alias "RegSetValueExA" _
(ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Declare Function OSRegCreateKey Lib "advapi32" Alias "RegCreateKeyA" _
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
' **** CONSTANTES PARA LEER EL REGISTRO DE WINDOWS ****
Private Const ERROR_SUCCESS = 0&
Private Const HKEY_LOCAL_MACHINE = &H80000002
Public Function fsLeerRegistro(ByVal sKey As String, _
Optional ByVal sSubKey As String = Empty) As String
Dim lResult As Long, phkResult As Long
Dim lValueType As Long, strBuf As String, lDataBufSize As Long
On Error Resume Next
sSubKey = HSUBKEY_SOFTWARE_GESGUARD & sSubKey
lResult = OSRegOpenKey(HKEY_LOCAL_MACHINE, sSubKey, phkResult)
If lResult = ERROR_SUCCESS Then
lResult = OSRegQueryValueEx(phkResult, sKey, 0&, lValueType, ByVal 0&, lDataBufSize)
If lResult = ERROR_SUCCESS Then
If lValueType = 1 Then
strBuf = Space$(lDataBufSize)
lResult = OSRegQueryValueEx(phkResult, sKey, 0&, 0&, ByVal strBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
fsLeerRegistro = StringFromBuffer(strBuf)
End If
End If
End If
OSRegCloseKey phkResult
End If
Err.Clear
End Function
Public Function fbEscribirRegistro(ByVal sKey As String, ByVal sValue As String, _
Optional ByVal sSubKey As String = Empty) As Boolean
Dim lResult As Long, phkResult As Long, bWrite As Boolean
On Error Resume Next
bWrite = False
sSubKey = HSUBKEY_SOFTWARE_GESGUARD & sSubKey
lResult = OSRegOpenKey(HKEY_LOCAL_MACHINE, sSubKey, phkResult)
If lResult <> ERROR_SUCCESS Then
lResult = OSRegCreateKey(HKEY_LOCAL_MACHINE, sSubKey, phkResult)
End If
If lResult = ERROR_SUCCESS Then
If sValue = Empty Then
lResult = OSRegSetValueEx(phkResult, sKey, 0&, 1, ByVal sValue, 0)
Else
lResult = OSRegSetValueEx(phkResult, sKey, 0&, 1, ByVal sValue, LenB(StrConv(sValue, vbFromUnicode)) + 1)
End If
bWrite = (lResult = ERROR_SUCCESS)
If (Not bWrite) And (lResult = 87) And (sValue = Empty) Then bWrite = True
OSRegCloseKey phkResult
End If
fbEscribirRegistro = bWrite
Err.Clear
End Function
Private Function StringFromBuffer(Buffer As String) As String
Dim nPos As Long
On Error Resume Next
' Busca la posición del primer caracter Null en la cadena de Buffer
nPos = InStr(Buffer, vbNullChar)
' Si encuentra un Null, devuelve todo lo que hay a la izquierda de dicho Null
If nPos > 0 Then
StringFromBuffer = Left$(Buffer, nPos - 1)
Else
' En otro caso devuelve la cadena intacta
StringFromBuffer = Buffer
End If
End Function

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas