Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Visual Basic

    Ho la necessità di modificare il registro di alcuni PC remoti ( tramite ovviamente il servizio Remote Registry di Windows, ed avendo i privilegi di amministratore). Attualmente sto utilizzando un file .bat che fa egregiamente il suo lavoro ( usando i programmini forniti da Microsoft nell'NTRK) solo che non è proprio il massimo della flessibilità , anzi...Purtroppo non riesco a trovare le API che facciano al caso mio!
    Avete qualche idea?
    Già che ci siete... qualcosa per ritrovare l'ora remota tramite Netbios ( anche ICMP va bene...) ? Adesso devo fare un net time \\nome_macchina > pippo.ora e far leggere il file al programma ( che non è proprio il massimo dell'eleganza!)

    Grazie buona domenica a tutti.

  2. #2
    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
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.