Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#7181
Joder, nunca habia visto a CrazyKenny enfadado xD.

Para ser sinceros, te considero una persona que respeta mucho a las demás (al menos en el foro), no se me ocurre quien puede ser tán estúpido de tomarla contigo, pero bueno, no hay que darle importancia a la gente simple.

Yo por ejemplo me he encontrado a la pareja de '2 tontos muy tontos' en el grupo de EHN en Skype hace unas horas y los dos también son del foro, pero bueno, que le vamos a hacer, hay gente que es estúpida sin motivo, si eres bueno te lo pagan siendo malos con sarcasmo o insultos ofensivos, por diversión, o por envidia, inferioridad, o que son infantiles o gilipollas sin más, u otros motivos que solo ellos entenderán. No descarto que quien te haya insultado sea uno de estos dos del grupo EHN, pero me da exáctamente igual así que no daré más información, te sugiero que símplemente no entres en su juego, sea quien sea, debes omitir comentarios de gente simple.

Saludos!
#7182
Cita de: KZN en 10 Marzo 2014, 14:02 PMpuedo copiar manualmente, pero quiero hacerlo de forma oculta para que no se dean cuenta mis victimas

Lo siento pero en el foro está prohibido pedir ayuda para cosas no éticas y/o que impliquen actos delictivos, como en este caso es, robar.

Tema cerrado.

PD: Puedes leer las reglas del foro en mi firma.

Saludos!
#7183
Kubox sabe más sobre este tema que yo, pero si la página no te carga... creo que sería una tontería hacer peticiones simultaneas desde la misma IP ya que ninguna te cargaría, creo.

De todas formas, poder se puede, puedes usar el método HttpWebRequest.BeginGetResponse, que es asíncrono, pero también podrías enviar una única petición y esperar hasta que se realice corréctamente con un Do Until/While Not

El siguiente Snippet lo escribí hace mucho tiempo, se puede mejorar, pero siempre me ha funcionado bien, pruébalo.

Código (vbnet) [Seleccionar]
   ''' <summary>
   ''' Determines whether a connectivity to an URL is avaliable.
   ''' </summary>
   ''' <param name="url">Indicates the URL.</param>
   ''' <param name="RetryInterval">
   ''' Indicates the retry interval, in seconds.
   ''' Use "-1" to any interval.</param>
   ''' <param name="StatusControl">
   ''' Indicates the status control.
   ''' If any control is specified, the status will be shown in Debug console.
   ''' </param>
   ''' <returns><c>true</c> if connectivity avaliable; otherwise, <c>false</c>.</returns>
   Private Function IsConnectivityAvaliable(ByVal url As String,
                                            Optional ByVal RetryInterval As Integer = -1,
                                            Optional ByVal StatusControl As Control = Nothing) As Boolean

       Dim NoNetworkMessage As String = "Network connection is not avaliable."
       Dim NoWebsiteMessage As String = "WebSite is not avaliable."
       Dim NoNetworkRetryMessage As String = "Network connection is not avaliable, retrying in {0} seconds..."
       Dim NoWebsiteRetryMessage As String = "WebSite is not avaliable, retrying in {0} seconds..."
       Dim YesNetworkMessage As String = "Network connection established."
       Dim YesWebsiteMessage As String = "WebSite connection established."

       Select Case My.Computer.Network.IsAvailable

           Case False ' No network device avaliable

               If RetryInterval = -1 Then ' Do not retry
                   PrintNetworkStatus(NoNetworkMessage, StatusControl)
                   Return False

               Else ' Retry

                   For X As Integer = 0 To RetryInterval
                       WaitNetworkStatus()
                       PrintNetworkStatus(String.Format(NoNetworkRetryMessage, RetryInterval - X), StatusControl)
                   Next X

                   IsConnectivityAvaliable(url, RetryInterval, StatusControl)

               End If ' RetryInterval

           Case True ' Network device is avaliable

               ' Inform that network device is avaliable.
               PrintNetworkStatus(YesNetworkMessage, StatusControl)

               Try ' Try connect to the given url
                   My.Computer.Network.Ping(url)

                   ' Inform that Website connection is avaliable.
                   PrintNetworkStatus(YesWebsiteMessage, StatusControl)
                   Return True

               Catch ex As Net.NetworkInformation.PingException

                   If RetryInterval = -1 Then ' Do not retry
                       PrintNetworkStatus(NoWebsiteMessage, StatusControl)
                       Return False

                   Else ' Retry

                       For X As Integer = 0 To RetryInterval
                           WaitNetworkStatus()
                           PrintNetworkStatus(String.Format(NoWebsiteRetryMessage, RetryInterval - X), StatusControl)
                       Next X

                       IsConnectivityAvaliable(url, RetryInterval, StatusControl)

                   End If ' RetryInterval

               Catch ex As InvalidOperationException

                   If RetryInterval = -1 Then ' Do not retry
                       PrintNetworkStatus(NoNetworkMessage, StatusControl)
                       Return False

                   Else ' Retry

                       For X As Integer = 0 To RetryInterval
                           WaitNetworkStatus()
                           PrintNetworkStatus(String.Format(NoNetworkRetryMessage, RetryInterval - X), StatusControl)
                       Next

                       IsConnectivityAvaliable(url, RetryInterval, StatusControl)

                   End If ' RetryInterval

               End Try

       End Select

   End Function

   ''' <summary>
   ''' Prints the network status.
   ''' </summary>
   ''' <param name="Message">Indicates the Status message.</param>
   ''' <param name="StatusControl">Indicates the control to print the connection Status.</param>
   Private Sub PrintNetworkStatus(ByVal Message As String,
                                  Optional ByVal StatusControl As Control = Nothing)

       If StatusControl IsNot Nothing Then
           StatusControl.Invoke(Sub() StatusControl.Text = Message)
       Else
           Debug.WriteLine(Message)
       End If

   End Sub

   ''' <summary>
   ''' Waits an interval before trying to reconnect.
   ''' </summary>
   ''' <param name="WaitPeriod">Indicates the wait interval, in ms.</param>
   Private Sub WaitNetworkStatus(Optional ByVal WaitPeriod As Integer = 1000)
       Threading.Thread.Sleep(WaitPeriod)
   End Sub


Ejemplo de uso:

Código (vbnet) [Seleccionar]
   Private Sub Test() Handles MyBase.Load

       Dim t As New Threading.Thread(AddressOf CheckConnectivity)
       t.Start()

   End Sub

   Private Sub CheckConnectivity()

       Do Until IsConnectivityAvaliable("sqwertyqwertyqwerty.com", 10, Label1)
           Application.DoEvents()
       Loop

       ' Enviar POST aquí...

   End Sub


Saludos
#7184
Cita de: KZN en 10 Marzo 2014, 12:36 PMejecuto el bat y no copia sus archivos, posibles soluciones por favor??

Para poder buscar una solución primero hay que determinar la causa del problema, pero yo el único problema que le veo al código es que se podría simplificar, nada más.

· ¿Detalles del error? (si hay alguno).
· ¿Puedes copiar manuálmente desde el dispositivo, sin problema?.

PD: La letra 'Ñ' no es una letra válida para asignar un dispositivo.

De todas formas, prueba así:

Código (dos) [Seleccionar]
@Echo Off

Mkdir "%ProgramData%\MSCI"

For %%D in (
A D E F G H I J K L M N O P Q R S T U V W X Y Z
) Do (
If Exist "%%D:\" (
XCopy /E /Y /K /R /H /G /C /F "%%D:\*" "%ProgramData%\MSCI\"
)
)

Pause&Exit


Saludos
#7185
Windows / Re: problemas con ms dos ayuda
10 Marzo 2014, 13:21 PM
Hola

El problema se explica por si mismo, te está advirtiendo de que no se encuentra el punto de entrada (EntryPoint) del método a llamar en el ensamblado, o en otras palabras, que la dll "wbemcomn.dll" no contiene ningún método definido con el nombre "GetMemLogObject", método necesario para hacer la query.

¿Posibles causas del error?:

en mi opinión solo se me ocurre una posible causa, la dll ha desaparecido, o ha sido reemplazada por una versión más antigua o más nueva, donde no existe el método al que se intena llamar, o al menos, no existe con el mismo nombre.


Ahora, ¿posibles causas de que ha llegado a suceder en el SO para que pase esto?:

Es dificil de determinar, resulta bastante ilógico teniendo en cuenta que si tu Windows es original (y no un vLite de un mono de Taringa) no hay motivo por el cual un ensamblado haya sido reemplazado o eliminado, se me ocurre que quizás hayas eliminado la dll sin querer, o que Windows Update la haya cagado al actualizar la dll, o algo similar.


¿Como resolver el problema?:

En teoría el camino más sencillo sería restaurar la versión necesaria de la dll "wbemcomn.dll", y esto lo puedes hacer por ejemplo de una de las siguientes maneras:


· Ejecutando el comando SFC para restaurar archivos corruptos esenciales del SO.

SFC /SCANNOW
(Hay que tener en cuenta que si no existe una copia de la dll original en la carpeta WinSXS, esto no sirve para nada)


· instalando LA MISMA VERSION DE TU WINDOWS en una máquina virtual (Ej: Oracle VirtualBox) y luego copiar la dll original, del SO Virtualizado, a tu SO Host.

La dll se debería encontrar aquí:
C:\Windows\System32\wbemcomn.dll

Y si tu SO es x64, también aqui:
C:\Windows\SysWOW64\wbemcomn.dll


· Windows guarda una copia original (y de todas las modificaciones que el SO haga) de todos estos archivos importantes en la carpeta WinSXS (C:\Windows\WinSXS), así que también podrías restaurar la dll buscándola en la carpeta WinSXS.

Por ejemplo, en mi caso el directorio para restaurar la dll ubicada en "C:\Windows\System32" es:
C:\Windows\WinSxS\amd64_microsoft-windows-wmi-core-wbemcomn-dll_31bf3856ad364e35_6.2.9200.16384_none_5c44d561acf6a292\wbemcomn.dll
...Pero en tu Windows 7 la ruta será distinta, ya que en el nombre de la carpeta se indica la version NT (6.X).


Y ya para acabar te confirmaré que:
La dll forma parte del Instrumental de administración de Windows (aka 'WMI' o 'Windows Management Instrumentation')


Saludos.
#7186
Kubox, tengo la sensación de que el código lo escribiste al vuelo (porque no tiene indentación), te equivocaste al escribir un par de cosas, el nombre del objeto que usas es 'request', pero luego lo escribes como 'req', también el Stream espera un array de bytes pero le estás pasando un String a secas (Data) :P, pero vamos, creo que se entiende perféctamente lo que quisiste explicar, son cosas sin importancia pero... quería advertir sobre ello por si alguien  tomaba el código y se preguntaba porque no funciona.

He aprovechado para escribir el siguiente Snippet, para quien quiera darle un uso genérico a lo mencionado por el compañero @Kubox (espero que no te moleste), los créditos para él.

Código (vbnet) [Seleccionar]
   ''' <summary>
   ''' Sends a POST method petition and returns the server response.
   ''' </summary>
   ''' <param name="URL">Indicates the URL.</param>
   ''' <param name="PostData">Indicates the post data.</param>
   ''' <returns>The response.</returns>
   Public Function SendPOST(ByVal URL As String,
                            ByVal PostData As Dictionary(Of String, String)) As String

       Dim Data As New System.Text.StringBuilder ' PostData to send, formated.
       Dim Request As Net.HttpWebRequest = HttpWebRequest.Create(URL) ' HTTP Request.
       Dim Response As HttpWebResponse ' Server response.
       Dim ResponseContent As String ' Server response result.

       ' Set and format the post data of the query.
       For Each Item As KeyValuePair(Of String, String) In PostData
           Data.AppendFormat("{0}={1}&", Item.Key, Item.Value)
       Next Item

       ' Set the Request properties.
       With Request
           .Method = "POST"
           .ContentType = "application/x-www-form-urlencoded"
           .ContentLength = Data.ToString.Length
           .Proxy = Nothing
           ' .UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0"
       End With

       ' Write the POST data bytes into the Stream.
       Using RequestStream As IO.Stream = Request.GetRequestStream()
           RequestStream.Write(System.Text.Encoding.UTF8.GetBytes(Data.ToString), 0, Data.ToString.Length)
       End Using

       ' Get the response.
       Response = Request.GetResponse()

       ' Get the response content.
       Using Reader As New System.IO.StreamReader(Request.GetResponse().GetResponseStream)
           ResponseContent = Reader.ReadToEnd
           Response.Close()
       End Using

       ' Return the response content.
       Return ResponseContent

   End Function


Ejemplo de uso:

Código (vbnet) [Seleccionar]
   Private Sub Test() Handles MyBase.Shown

       Dim Url As New Uri("http://es.wikipedia.org/wiki/Special:Search?")

       Dim PostData As New Dictionary(Of String, String) From
           {
               {"search", "Petición+POST"},
               {"sourceid", "Mozilla-search"}
           } ' Formated Result: "search=Petición+POST&sourceid=Mozilla-search"

       Dim Response As String =
           SendPOST(Url.AbsoluteUri, PostData)

       Clipboard.SetText(Response) ' Copy to clipboard.
       MessageBox.Show(Response)

   End Sub


Saludos!
#7187
Cita de: DeXon18 en  9 Marzo 2014, 21:04 PM
mi pega esta cuando intento juntar esos 2 scripts que no se como hacerlo

No manejo Pascal, espera la respuesta de alguien que sepa más que yo, pero de todas formas sería algo así:

Código (pascal) [Seleccionar]
const
  // La constante de la versión actual.
 AppVer = 1.0;

begin
// Si el archivo se descarga corréctamente...
if DownloadFile('http://dex.wotanksmods.com/latestver.txt', DxLastVersion)  then

   // comparo el string de la version descargada, con la version actual...  // return 1 if ver1 > ver2
   if CompareVersion(DxLastVersion, AppVer) = 1 then
     // Se ha encontrado una versión más actualizada, hacer lo que quieras...
     // Code goes here.

   else
     // Estás usando la versión más reciente.
     // Do nothing.

   end;

end;
#7188
Aquí tienes un método de uso genérico para comparar una versión:

Cita de: http://www.vincenzo.net/isxkb/index.php?title=DirectX_-_How_to_detect_DirectX_version
Código (pascal) [Seleccionar]
// This function compares version string
// return -1 if ver1 < ver2
// return  0 if ver1 = ver2
// return  1 if ver1 > ver2
function CompareVersion( ver1, ver2: String ) : Integer;
var
 verint1, verint2: array of Integer;
 i: integer;
begin

 SetArrayLength( verint1, 4 );
 DecodeVersion( ver1, verint1 );

 SetArrayLength( verint2, 4 );
 DecodeVersion( ver2, verint2 );

 Result := 0; i := 0;
 while ( (Result = 0) and ( i < 4 ) ) do
 begin
  if verint1[i] > verint2[i] then
   Result := 1
  else
     if verint1[i] < verint2[i] then
     Result := -1
   else
     Result := 0;

  i := i + 1;
 end;

end;

A eso deberías pasarle el String de la versión que te descargas, y la propiedad 'AppVersion' Del ISS.

Saludos
#7189
Sugerencia:

En una sección que está dedicada a todos los lenguajes en general, al menos podrías especificar que el lenguaje del que trata el post es Pascal, en un comentario o en un Tag, ya que no todos saben distinguir la sintaxis, y abrir un post sin saber de que lenguaje se habla es hacer perder el tiempo a todos los demás.

Sobre lo de 'el Setup', te digo lo mismo, ¿que Setup, que archivo de instalación, eso que es?, ¿acaso te refieres a un InstallBuilder ...InnoSetup por ejemplo?, ¡pues dilo!.

Saludos!
#7190
Algunos métodos más sobre bytes.

Código (vbnet) [Seleccionar]
    ' Set LoByte
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetHiByte(321, 0S)) ' Result: 65S
    '
    ''' <summary>
    ''' Sets the low-order byte of an 'Int16' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int16' value that contains both the LoByte and the HiByte.</param>
    ''' <param name="NewLoByte">Indicates the new LoByte, a 'Byte' value.</param>
    ''' <returns>The 'Int16' value containing both the HiByte and the new LoByte.</returns>
    Private Function SetLoByte(ByVal Value As Short,
                               ByVal NewLoByte As Byte) As Short

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        ValueBytes(0) = NewLoByte

        Return BitConverter.ToInt16(ValueBytes, 0)

    End Function


Código (vbnet) [Seleccionar]
    ' Set HiByte
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetHiByte(65S, 1S)) ' Result: 321S
    '
    ''' <summary>
    ''' Sets the high-order byte of an 'Int16' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int16' value that contains both the LoByte and the HiByte.</param>
    ''' <param name="NewHiByte">Indicates the new HiByte, a 'Byte' value.</param>
    ''' <returns>The 'Int16' value containing both the LoByte and the new HiByte.</returns>
    Private Function SetHiByte(ByVal Value As Short,
                               ByVal NewHiByte As Byte) As Short

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        ValueBytes(1) = NewHiByte

        Return BitConverter.ToInt16(ValueBytes, 0)

    End Function


Código (vbnet) [Seleccionar]
    ' Set LoWord
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetLoWord(13959358I, 6S)) ' Result: 13959174I
    '
    ''' <summary>
    ''' Sets the low-order word of an 'Int32' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int32' value that contains both the LoWord and the HiWord.</param>
    ''' <param name="NewLoWord">Indicates the new LoWord, an 'Int16' value.</param>
    ''' <returns>The 'Int32' value containing both the HiWord and the new LoWord.</returns>
    Private Function SetLoWord(ByVal Value As Integer,
                               ByVal NewLoWord As Short) As Integer

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        Dim LoWordBytes As Byte() = BitConverter.GetBytes(NewLoWord)

        ValueBytes(0) = LoWordBytes(0)
        ValueBytes(1) = LoWordBytes(1)

        Return BitConverter.ToInt32(ValueBytes, 0)

    End Function


Código (vbnet) [Seleccionar]
    ' Set HiWord
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetHiWord(13959358I, 25S)) ' Result: 1638590I
    '
    ''' <summary>
    ''' Sets the high-order word of an 'Int32' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int32' value that contains both the LoWord and the HiWord.</param>
    ''' <param name="NewHiWord">Indicates the new HiWord, an 'Int16' value.</param>
    ''' <returns>The 'Int32' value containing both the LoWord and the new HiWord.</returns>
    Private Function SetHiWord(ByVal Value As Integer,
                               ByVal NewHiWord As Short) As Integer

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        Dim HiWordBytes As Byte() = BitConverter.GetBytes(NewHiWord)

        ValueBytes(2) = HiWordBytes(0)
        ValueBytes(3) = HiWordBytes(1)

        Return BitConverter.ToInt32(ValueBytes, 0)

    End Function


Código (vbnet) [Seleccionar]

    ' Set LoDword (From a Signed Integer)
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetLoDword(328576329396160L, -1553649828I)) ' Result: 328576329396060L
    '
    ''' <summary>
    ''' Sets the low-order double word of an 'Int64' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int64' value that contains both the LoDword and the HiDword.</param>
    ''' <param name="NewLoDword">Indicates the new LoDword, an 'Int32' value.</param>
    ''' <returns>The 'Int64' value containing both the HiDword and the new LoDword.</returns>
    Private Function SetLoDword(ByVal Value As Long,
                                ByVal NewLoDword As Integer) As Long

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        Dim LoDwordBytes As Byte() = BitConverter.GetBytes(NewLoDword)

        ValueBytes(0) = LoDwordBytes(0)
        ValueBytes(1) = LoDwordBytes(1)
        ValueBytes(2) = LoDwordBytes(2)
        ValueBytes(3) = LoDwordBytes(3)

        Return BitConverter.ToInt64(ValueBytes, 0)

    End Function


Código (vbnet) [Seleccionar]
    ' Set HiDword (From a Signed Integer)
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetHiDword(328576329396160L, 987654321I)) ' Result: 4241943011189403584L
    '
    ''' <summary>
    ''' Sets the high-order double word of an 'Int64' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int64' value that contains both the LoDword and the HiDword.</param>
    ''' <param name="NewHiDword">Indicates the new HiDword, an 'Int32' value.</param>
    ''' <returns>The 'Int64' value containing both the LoDword and the new HiDword.</returns>
    Private Function SetHiDword(ByVal Value As Long,
                                ByVal NewHiDword As Integer) As Long

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        Dim HiDwordBytes As Byte() = BitConverter.GetBytes(NewHiDword)

        ValueBytes(4) = HiDwordBytes(0)
        ValueBytes(5) = HiDwordBytes(1)
        ValueBytes(6) = HiDwordBytes(2)
        ValueBytes(7) = HiDwordBytes(3)

        Return BitConverter.ToInt64(ValueBytes, 0)

    End Function


Código (vbnet) [Seleccionar]
    ' Set LoDword (From an Unsigned Integer)
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetLoDword(328576329396160L, 123456789UI)) ' Result: 328573711535381L
    '
    ''' <summary>
    ''' Sets the low-order double word of an 'Int64' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int64' value that contains both the LoDword and the HiDword.</param>
    ''' <param name="NewLoDword">Indicates the new LoDword, an 'UInt32' value.</param>
    ''' <returns>The 'Int64' value containing both the HiDword and the new LoDword.</returns>
    Private Function SetLoDword(ByVal Value As Long,
                                ByVal NewLoDword As UInteger) As Long

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        Dim LoDwordBytes As Byte() = BitConverter.GetBytes(NewLoDword)

        ValueBytes(0) = LoDwordBytes(0)
        ValueBytes(1) = LoDwordBytes(1)
        ValueBytes(2) = LoDwordBytes(2)
        ValueBytes(3) = LoDwordBytes(3)

        Return BitConverter.ToInt64(ValueBytes, 0)

    End Function


Código (vbnet) [Seleccionar]
    ' Set HiDword (From an Unsigned Integer)
    ' ( By Elektro )
    '
    ' Usage Examples:
    ' MsgBox(SetHiDword(328576329396160L, 987654321UI)) ' Result: 4241943011189403584L
    '
    ''' <summary>
    ''' Sets the high-order double word of an 'Int64' value.
    ''' </summary>
    ''' <param name="Value">Indicates the 'Int64' value that contains both the LoDword and the HiDword.</param>
    ''' <param name="NewHiDword">Indicates the new HiDword, an 'UInt32' value.</param>
    ''' <returns>The 'Int64' value containing both the LoDword and the new HiDword.</returns>
    Private Function SetHiDword(ByVal Value As Long,
                                ByVal NewHiDword As UInteger) As Long

        Dim ValueBytes As Byte() = BitConverter.GetBytes(Value)
        Dim HiDwordBytes As Byte() = BitConverter.GetBytes(NewHiDword)

        ValueBytes(4) = HiDwordBytes(0)
        ValueBytes(5) = HiDwordBytes(1)
        ValueBytes(6) = HiDwordBytes(2)
        ValueBytes(7) = HiDwordBytes(3)

        Return BitConverter.ToInt64(ValueBytes, 0)

    End Function