1) non conosco una procedura diretta per la modifica del registry da remoto ed ho ovviato il problema creando 2 applicazioni una server e una client che comunicano tramite winsock la server invia i comandi dos sotto forma di stringa e il client li passa ad una shell dos, se così ti interessa fammi sapere vedo se ritrovo il codice da qualche parte.
2)
passa alla funzione trovaora il nome del computer di cui ti serve data e ora
codice:
Private Declare Function NetRemoteTOD Lib "NETAPI32.DLL" _
(ByVal server As String, buffer As Any) As Long
Private Declare Function NetApiBufferFree Lib "NETAPI32.DLL" _
(ByVal buffer As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Private Type TIME_OF_DAY
t_elapsedt As Long
t_msecs As Long
t_hours As Long
t_mins As Long
t_secs As Long
t_hunds As Long
t_timezone As Long
t_tinterval As Long
t_day As Long
t_month As Long
t_year As Long
t_weekday As Long
End Type
Function trovaora(serName as string)as date
Dim t As TIME_OF_DAY
Dim st As SYSTEMTIME
Dim tPtr As Long
Dim dwret As Long
Dim szServer As String
Dim days As Date
szServer = StrConv(serName, vbUnicode) 'Converte server name in unicode
res = NetRemoteTOD(szServer, tPtr)
If res = 0 Then
CopyMemory t, ByVal tPtr, Len(t) 'copia nella struttura time of day
days = DateSerial(70, 1, 1) + (t.t_elapsedt / 60 / 60 / 24)
NetApiBufferFree (tPtr) 'libera la memoria
Else
MsgBox "Non è stato trovato nessun computer col nome: " & serName, vbCritical, App.EXEName
'Error 53: server non trovato
exit function
End If
TrovaOra = days
end sub