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)
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
- Anónimoahora mismo
Respuesta de orande
1
1
orande, Amplios conocimientos y experiencia en Visual Basic, SQL Server y...
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