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ú

Temas - TrashAmbishion

#226
GNU/Linux / Instalando Debian 7 unas dudillas?
22 Julio 2013, 07:21 AM
Chicos quiero instalarlo y no morir en el intento, deseo instalarlo pero en el modo sin internet o sea bajar el CD principal y entonces que me digan los paquetes cuales son los necesarios como por ejemplo codecs, graficos, etc...

Salu2 y Gracias

#227
PHP / Duda como generar un link aleatorio...!!
30 Junio 2013, 21:56 PM
Hola amigos hace un tiempo publique una duda sobre como puedo hacer para que mis usuarios tengan que acceder unicamente desde un mi link que dice Correo, algunos me dijeron que chequeara el lugar del que venian no se si era con "location", cree un hilo nuevo porque quisiera saber si es posible crear un link aleatorio que se genere cada ves que un usuario quiera entrar....

Salu2
#228
Redes / Duda configurando un AP?
24 Junio 2013, 15:11 PM
Tengo un AP TRENDNET y la cuestión que me aflige es que me parece que la configuración que hago esta mal, verifico con ustedes...

El rango de ip de mi LAN es: 192.168.188.1 - 255
La Puerta de enlace y el DNS es: 192.168.188.3

Lo que deseo es que el AP no asigne Ip en el rango de mis Pc por LAN por eso hice lo siguiente:

Le dije que tomara como IP de el la 192.168.187.5
Que asignara IP en el rango 192.168.187.10 - 255
Puerta de enlace y dns: 192.168.188.3

Diganme si hasta aqui estoy bien.

Lo otro supongo que es crear las configuraciones en los server's DNS y la Puerta de Enlace para que pueda lidiar con ese rango de IP.

Lo problemático es que si un usuario desea ponerse una Ip que este en el rango de mis Pc por Lan 188.1 - 255 lo puede hacer y entonces me da conflicto de IP con las Pc.

Que puede estar pasando aqui, acaso el Router esta mal configurado o que ?

Gracias de antemano....
#229
Tengo una aplicación que hace función de Caller ID (Identificador de Llamadas) el soft trabaja bien, la duda surge porque hace poco lo trate de usar en un Modem MulTiTech puerto COM y no captura la información, entonces me puse a investigar y el problema es que ese modem no entrega los datos a la misma velocidad que otro modem (por ejemplo uno USB), la solución segun varios usuarios por la red es la de crear un buffer que lea la información (byte x byte) o algo asi, queria saber si alguien tiene alguna noción sobre el tema, entiende sobre lo que hablo aqui...

Les pongo el codigo que tengo actual para capturar la información...

Código (vbnet) [Seleccionar]


Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        ReceivedText(SerialPort1.ReadExisting())    'Automatically called every time a data is received at the serialPort
    End Sub

    Private Sub ReceivedText(ByVal [text] As String)
        'compares the ID of the creating Thread to the ID of the calling Thread
        If Me.InvokeRequired Then
            Dim x As New SetTextCallback(AddressOf ReceivedText)
            Me.Invoke(x, New Object() {(text)})
        Else
            SplitData([text])   'Esta es la función que me organiza los datos recibidos.
        End If
    End Sub

#230
Estoy convirtiendo un proyecto de C++ a Vb.Net y necesito este Header y otros mas..

Salu2
#231
Amigos quisiera que me dijeran los pasos para poder operar con una DLL en .NET, necesito hacerle unas correciones  :D :xD

Cuando lo abro con el OLLY me dice que al parecer esta comprimida la DLL, porque no puede hacer el tipico Analisis.

La pase por el RDG y me dice que nada que esta compilada con VS .Net que no parece estar cifrada.

Salu2
#232
Tengo una función que trabaja con una serie de API's para verificar si hay alguien conectado al Xp via modem usando las Conexiones Entrantes, la cuestion es que esta verificacion la hago con un Timer cada 2 segundos, queria saber si hay alguna manera de no tener que llamar tanto a esas API's tantas veces, hacer algo para detectar cuando cambia el valor de si hay conexiones establecidas.

No se algo como que se ejecute esa funcion en memoria y espere por algun cambio, quizas sea una estupidez pero bueno ustedes me diran.

Salu2
#233
PHP / Acaso esta mal esta condicional ?
8 Mayo 2013, 22:28 PM
Chikos(as) con la condicional que les muestro a continuación lo que busco es que cuando me llegue el parametro de "verify" haga algo y cuando sea "register" haga otra cosa...

Código (php) [Seleccionar]


if(htmlspecialchars($_POST["verify"])){
echo 'Codigo para verificar';
}elseif (htmlspecialchars($_POST["register"])){
echo 'Codigo para registrar';
}

#234
PHP / Ayuda con este simple codigo !!
6 Mayo 2013, 21:35 PM
A la hora de convertir de C# a Php las funciones cambian y no me percate estoy verificando para cambiarlas.

Código (php) [Seleccionar]


public function cryptography($InSeed, $InString)
    {

         NewEncryptString = "";
         EncryptSeed = InSeed;
       
         for (c1 = 1; c1 <= Strings.Len(InString); c1++) {
     EncryptChar = Strings.Mid(InString, c1, 1);
     EncryptChar = Strings.Chr(Strings.Asc(EncryptChar) ^ EncryptSeed);
     EncryptSeed = EncryptSeed ^ c1;
     NewEncryptString = NewEncryptString + EncryptChar;
        }
}






Salu y Gracias
#235
Amigos les comento brevemente, en las Pc que dispongo en el trabajo instale una tarjeta capturadora externa (USB - TvBox), lo hice con unos drivers que baje del sitio www.sabrent.com y funciona a las mil maravillas en ambas Pc, los sistemas instalados es el Xp-Sp3 la cuestión esta en que cuando trato de instalarlos en la Pc de la casa con el mismo sistema se instala pero me da el mensaje con el Icono de Exclamación Amarillo (Dispositivo no puede inicializar - Codigo error 10), Googleando encontre que este error por lo general se genera por drivers obsoletos o que no son compatibles con el hardware al que se le esta instalando, la solucion buscar unos recientes o los que corresponden como tal.

Ahora como es posible que me funcione en 2 Pc con el mismo sistema la unica diferencia son los Boards, alguna idea. Salu2
#236
.NET Framework
Obsoleto (no se compila) en 4.5 y posteriores

Quiero usar la clase HTTPWebRequest y bueno me fije que tiene ese mensaje, quisiera saber que significa, acaso es obsoleta esta clase y hay alguna mas novedosa...

Salu2
#237
Lo que sucede es que la App que desarrollo usa 2 DLL y quisiera saber si puedo insertar esas DLL dentro de mi APP para nada mas tener que trabajar con 1 solo archivo, supongo que cuando ejecute la aplicación extraiga esas DLL a los temporales o algo asi y cuando termine las elimine o que las cargue en memoria asi no deja rastros..

Salu2 y gracias cualquier dato..

Bye
#238
Pues quisiera oir ideas de como puedo hacer para que mi aplicación se venza en una fecha X todos los meses...

He estado pensando en hacerlo por tiempo, que la aplicación trabaje un X tiempo.

Asi como obligar a que tenga que verificar la fecha por internet siempre al arrancar la aplicación.

Pero bueno quisiera antes de tomar una decision algunas opiniones para evitar la pirateria.

La Pc en la que correra la aplicacion no tiene internet.

Salu2
#239
Estoy usando el ejemplo del Electro_Hacker publicado en los Snippet...

Código (vbnet) [Seleccionar]


#Region " New Thread "

   Public Thread_is_completed As Boolean = False
   Public Want_to_cancel_thread As Boolean = False

   ' Usage:
   '
   Dim Thread_Var_Name As System.Threading.Thread = New Threading.Thread(AddressOf MiThread)
   ' Thread_Var_Name.IsBackground = True
   ' Thread_Var_Name.Start()
   ' Thread_Var_Name.Abort()
   ' Thread_Var_Name.Suspend()
   ' Thread_Var_Name.Resume()

   ' While Not Thread_is_completed = True
   '    Application.DoEvents()
   ' End While

   Sub MiThread()
       ' Do something inside this thread
   End Sub

#End Region



Cuando lo ejecuto me funciona bien pero cuando mando a cerrar la aplicacion no lo hace, que puedo estar haciendo mal aqui...acaso falta algo...

Salu2
#240
Holas por aqui, amigos recientemente monte en mi server un webmail que se comunica con un servidor de correo Mdaemon y funciona de las 1000 maravillas, lo que necesito es crear un metodo para que al Webmail nada mas se pueda acceder desde mi pagina Web, o sea que si un usuario viene y pone http://www.miserver.com/webmail (esto no le funcione le de un error o lo mande para la pagina principal) que como unico pueda entrar sea haciendo click en el link pertinente que tengo en mi pagina web.

Ideas ?

Salu2
#241
PHP / Alguien que sepa trabajar con PHPStorm ?
21 Abril 2013, 00:49 AM
Saben como configurarlos para poder debuguear ?

No entiendo este manual no me resulta


http://confluence.jetbrains.com/display/PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm

Alguien porfavor?
#242
PHP / Necesito Debuguear un PHP ? Ayuda !
20 Abril 2013, 16:15 PM
Amigos recientemente instale el RoundCubeMail y funciona a las mil maravillas excepto porque no me carga los contactos de los usuaros privados que se almacenan en el MDaemon pero bueno ya se porque es esto y el otro problema que encontre es que cuando abro un mensaje y doy en responder no me pone en la barra de Reply-to: la direccion de la persona, se supone el debe de parsear el mensaje y encontrar la cabecera y entonces añadirla, en fin no lo esta haciendo y quiero buscar una manera de debuguear para ver donde radica el problema y corregirlo, igual si tienen alguna otra idea soy todo oidos...

Muchas gracias de antemano...

Bye
#243
Reference to a non-shared member requires an object reference.

Hola amigos pues este es el error que me atormenta, tengo una clase declarada en la que necesito acceder a un grid que se encuentra en el form principal (MainForm) y obtengo ese error, declare esto en la clase
Código (vbnet) [Seleccionar]
Dim FMain as New MainForm y me da otro error como puedo solucionar este simple problemilla...

Salu2
#244
Amigos necesito alguien que lo este usando actualmente quisiera hacerle una pregunta por el privado para no violar las normativas del foro, muchas gracias..

Salu2
#245
Amigos aprendiendo sobre este tema encontre un codigo que lo que haces es crear una base de datos lo ejecute en el Pc y trabajo sin problemas, mi duda es posible visualizar la bd para verificar..

Solucionado mi problema es que yo estaba trabajando con un archivo de tipo base datos *.mdf y entonces la instruccion para trabajar esta mal, abajo lo señalo

Código (vbnet) [Seleccionar]


Function CrearBD

LabelInfo.Text = "Creando la base de datos..."
       LabelInfo.Refresh()

       ' La conexión a usar, indicando la base master
       ' Aqui esta el error cambie esta declaracion de cnn por esta

        ' Dim cnn As New SqlConnection( _
                       "Server=(local)\SQLEXPRESS; " & _
                       "database=master; integrated security=yes")
       
        Private cnn As String = "Data Source =.\SQLExpress; Integrated Security =true; AttachDbFilename =|DataDirectory|\VideoDB.mdf; User Instance =true;"

        ' La orden T-SQL para crear la tabla
       Dim s As String = "CREATE DATABASE " & txtDB.Text
       Dim cmd As New SqlCommand(s, cnn)

       Try
           ' Abrimos la conexión y ejecutamos el comando
           cnn.Open()
           cmd.ExecuteNonQuery()
           '
           LabelInfo.Text = "Base de datos creada correctamente"

       Catch ex As Exception
           LabelInfo.Text = "Error al crear la base de datos"
           MessageBox.Show(ex.Message, _
                           "Error al crear la base", _
                           MessageBoxButtons.OK, MessageBoxIcon.Error)
       Finally
           ' Por si se produce un error,
           ' comprobar si la conexión está abierta
           If cnn.State = ConnectionState.Open Then
               cnn.Close()
           End If
       End Try

End Function

#246
Pongo varios...

1. Escriba un programa que sea capaz de determinar el valor mayor de entre 5 números introducidos por el usuario.
2. Dado un número introducido desde el teclado, determinar si es primo o no.
3. Elaborar un programa que determine el número de caracteres de una línea de texto, introducida desde el teclado.
4. Escribir un programa que genere como resultado las tablas de multiplicar a partir de un número introducido por el usuario.
5. Escribir un programa que determine la factorial de un número introducido desde el teclado.
6. Escriba un programa que calcule el Máximo Común Divisor de dos números, considerando que el MCD de dos números o más es el U mayor número que los divide a todos exactamente.
7. Escribir un programa que simule un cronómetro digital. Ej: 00 : 01 : 35 . 45 (HH:MM:SS:MM)
8. Escribir un programa que solicite al usuario el día, mes y año de nacimiento y que genere como resultado el signo del zodíaco al cual pertenece, y los años, meses y días de vida con los que cuenta.
9. Diseñe un programa que sea capaz de simular el comportamiento de un cajero automático, desde solicitar el PIN de seguridad, realizar transacciones de retiros y que valide cuando hay o no fondos disponibles.

Salu2
#247
Necesito bastantes 1Gb como minimo...

Gracias
#248
Amigos tengo una urgencia, la App que estoy trabajando corre sin problema alguno desde el VS2010 lo que hace es comunicarse por el SerialPort con un Celular mandando comandos AT y recibiendo respuestas.

Ahora cuando ejecuto el .EXE no me da la respuesta del Cell nada mas me muestra el comando que envio con la respuesta inicial OK pero no me llegan los otros datos y les digo que desde el VS2010 si llegan que puede estar pasando les pongo el codigo.

Código (vbnet) [Seleccionar]


Imports System.Text

Public Class MainForm

    ' Declare necessary class variables.
    Private CommPort As New RS232()
    Private IsModemFound As Boolean = False
    Private ModemPort As Integer = 0

    ' This subroutine clears the TextBox.
    Private Sub ClearButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearButton.Click
        Me.StatusTextbox.Clear()
    End Sub

    ' This subroutine sends a user specified command to the modem, and records its
    '   response. It depends on the timer to do the reading of the response.
    Private Sub SendUserCommandButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SendUserCommandButton.Click

        ' Always wrap up working with Comm Ports in exception handlers.
        Try
            ' Enable the timer.
            'If Not Me.tmrReadCommPort.Enabled Then
            Me.tmrReadCommPort.Enabled = True
            'End If
            'If Not CommPort.IsOpen Then
            ' Attempt to open the port.
            CommPort.Open(8, 115200, 8, RS232.DataParity.Parity_None, RS232.DataStopBit.StopBit_1, 4096)
            'End If
            'Write an user specified Command to the Port.
            CommPort.Write(Encoding.ASCII.GetBytes(Me.UserCommandTextbox.Text & Chr(13)))
            ' Sleep long enough for the modem to respond and the timer to fire.
            System.Threading.Thread.Sleep(200)
            Application.DoEvents()
            CommPort.Close()

        Catch ex As Exception
            ' Warn the user.
            MessageBox.Show("Unable to communicate with Modem")
        Finally
            ' Disable the timer.
            Me.tmrReadCommPort.Enabled = False
        End Try

    End Sub

    ' This subroutine is fired when the timer event is raised. It writes whatever
    '   is in the Comm Port buffer to the output window.
    Private Sub tmrReadCommPort_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrReadCommPort.Tick
        Try
            ' As long as there is information, read one byte at a time and
            '   output it.
            While (CommPort.Read(1) <> -1)
                ' Write the output to the screen.
                WriteMessage(Chr(CommPort.InputStream(0)), False)
            End While
        Catch exc As Exception
            ' An exception is raised when there is no information to read.
            '   Don't do anything here, just let the exception go.
        End Try

    End Sub

    ' This subroutine writes a message to the txtStatus TextBox.
    Private Sub WriteMessage(ByVal message As String)
        Me.StatusTextbox.Text += message + vbCrLf
    End Sub

    ' This subroutine writes a message to the txtStatus TextBox and allows
    '   the line feed to be suppressed.
    Private Sub WriteMessage(ByVal message As String, ByVal linefeed As Boolean)
        Me.StatusTextbox.Text += message
        If linefeed Then
            Me.StatusTextbox.Text += vbCrLf
        End If
    End Sub

    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
        CommPort.Close()
        End
    End Sub

    Private Sub MainForm_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        CommPort.Close()
    End Sub

#249
Holas chicos estuve mirando esta web http://www.developershome.com/sms/howToSendSMSFromPC.asp sobre como enviar sms a traves del celular usando el hyperterminal y lo logro porque me descuenta del saldo pero no llegan al remitente alguna idea de que puede estar pasando...

Y bueno si alguien tuviese algun ejemplo que lo haya probado para enviar y recibir sms a traves del celular desde la pc estaria agradecido..

Salu2
#250
Amigos diganme si esto puede ser real

http://www.taringa.net/posts/info/11971640/Como-calibrar-una-bateria-para-que-me-dure-mas.html

En caso de que sea asi tengo una dudas cuando se refiere a que se encienda el LED VERDE quiere decir a que avise que esta cargada completamente la bateria.

Y esto otro ( Desconectar del cargador y apagar el móvil (ojo teniendo desconectado el fastboot), poner a cargar otra vez hasta que se ponga verde el led. )

No entiendo lo que marque en negrita y cursiva, si alguien me lo pudiese explicar.

Salu2
#251
.NET (C#, VB.NET, ASP) / DevExpress ?
2 Marzo 2013, 17:21 PM
Amigos quisiera saber si alguien tiene documentacion o videos en español donde pueda adquirir una base sobre este excelente componente..

Por ejemplo como emplear los skins..

Se que hay videos ya los estoy bajando y viendo pero ese del uso del skin se me hace complicado...

Gracias.
#252
Holas chicos pues veran yo tengo un timer que pasada las 2 horas si mi programa no se ha conectado a internet pues necesito que se bloquee y que aunque se abra y cierre no funcione, ideas...

Gracias de antemano
#253
Amigos tengo un code con el que envio un FORM usando HTTPrequest con el metodo POST sin problemas, lo que sucede es que ese FORM tiene para mandar 3 fotos y ahi es donde se me traba el paraguas el CODE que tengo hasta ahora es este..

Código (vbnet) [Seleccionar]


Imports System
Imports System.IO
Imports System.Net
Imports System.Text

Public Class Form1

   Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click


       Dim precio As String, categoria As String, titulo As String, cuerpo As String, _
       filesize As String, email As String, phone As String
       'Dim boundary As String = "---------------------------" + DateTime.Now.Ticks.ToString("x")
       

       ' Create the data we want to send
       precio = "25"
       categoria = "105"
       titulo = "titulo del form"
       cuerpo = "aki va el cuerpo del mensaje"
       email = "user@gnome.com"
       phone = "1234567"
       filesize = "307200"

       ' Create a request using a URL that can receive a post.
       Dim request As HttpWebRequest = HttpWebRequest.Create("URL")
       ' Set the Method property of the request to POST.
       request.Method = "POST"
       request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"


       Dim postdata As String = "ad_price=" & precio & "&category=" & categoria & "&ad_headline=" & _
           titulo & "&ad_text=" & cuerpo & "&email=" & email & "&phone=" & phone & "&MAX_FILE_SIZE=" & filesize


       Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postdata)
       ' Set the ContentType property of the WebRequest.
       request.ContentType = "application/x-www-form-urlencoded"
       ' Set the ContentLength property of the WebRequest.
       request.ContentLength = byteArray.Length
       ' Get the request stream.
       Dim dataStream As Stream = request.GetRequestStream()
       ' Write the data to the request stream.
       dataStream.Write(byteArray, 0, byteArray.Length)
       ' Close the Stream object.
       dataStream.Close()
       ' Get the response.
       Dim response As WebResponse = request.GetResponse()
       ' Display the status.
       Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
       ' Get the stream containing content returned by the server.
       dataStream = response.GetResponseStream()
       ' Open the stream using a StreamReader for easy access.
       Dim reader As New StreamReader(dataStream)
       ' Read the content.
       Dim responseFromServer As String = reader.ReadToEnd()
       ' Display the content.
       txtoutput.Text = responseFromServer
       ' Clean up the streams.
       reader.Close()
       dataStream.Close()
       response.Close()
   End Sub

End Class



Muchas gracias por cualquier ayuda
#254
Hola pues eso ando buscando algun dato en el Pc que nunca varie aunque formateen el Pc y reinstalen tambien que no se pueda simular en otra Pc, para que mi app lo verifique siempre antes de iniciar y nada mas corra en al Pc que yo quiera...

Tambien si es posible diganme algun metodo seguro para cifrar mi App, conozco el programa Armadillo pero no se si es necesario llegar hasta alla...

Salu2
#255
.NET (C#, VB.NET, ASP) / SerialPort y Modem ?
27 Enero 2013, 23:43 PM
Lo que espero es un Ok del Modem mas recibo un 65 alguna idea, quizas sea por el tipo de lectura que estoy haciendo....Salu2

Disculpen por repetir el Topic si pudieran borrar el otro estaria agradecido...gracias

Código (vbnet) [Seleccionar]


Imports System.IO.Ports

Public Class Form1

    Private mySerialPort As New SerialPort
    Private comBuffer As Byte()
    Private Delegate Sub UpdateFormDelegate()
    Private UpdateFormDelegate1 As UpdateFormDelegate

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            AddHandler mySerialPort.DataReceived, AddressOf mySerialPort_DataReceived
            CommPortSetup()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub mySerialPort_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
        'Handles serial port data received events
        UpdateFormDelegate1 = New UpdateFormDelegate(AddressOf UpdateDisplay)
        Dim n As Integer = mySerialPort.BytesToRead 'find number of bytes in buf
        comBuffer = New Byte(n - 1) {} 're dimension storage buffer
        mySerialPort.Read(comBuffer, 0, n) 'read data from the buffer

        Me.Invoke(UpdateFormDelegate1) 'call the delegate
    End Sub

    Private Sub UpdateDisplay()
        Label2.Text = CStr(comBuffer(0))
    End Sub

    Private Sub CommPortSetup()
        With mySerialPort
            .PortName = "COM3"
            .BaudRate = 9600
            .DataBits = 8
            .Parity = Parity.None
            .StopBits = StopBits.One
            .Handshake = Handshake.None
        End With
        Try
            mySerialPort.Open()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        mySerialPort.WriteLine("AT+VCID")
    End Sub
End Class

#256
holas estoy tratando de leer la respuesta del Modem al comando que le paso y me devuelve un numero, no entiendo porque quizas sea en el tipo de lectura que se hace que es con un buffer....

Alguna idea...Lo que espero es un OK

Código (vbnet) [Seleccionar]

Imports System.IO.Ports

Public Class Form1

    Private mySerialPort As New SerialPort
    Private comBuffer As Byte()
    Private Delegate Sub UpdateFormDelegate()
    Private UpdateFormDelegate1 As UpdateFormDelegate

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            AddHandler mySerialPort.DataReceived, AddressOf mySerialPort_DataReceived
            CommPortSetup()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub mySerialPort_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
        'Handles serial port data received events
        UpdateFormDelegate1 = New UpdateFormDelegate(AddressOf UpdateDisplay)
        Dim n As Integer = mySerialPort.BytesToRead 'find number of bytes in buf
        comBuffer = New Byte(n - 1) {} 're dimension storage buffer
        mySerialPort.Read(comBuffer, 0, n) 'read data from the buffer

        Me.Invoke(UpdateFormDelegate1) 'call the delegate
    End Sub

    Private Sub UpdateDisplay()
        Label2.Text = CStr(comBuffer(0))
    End Sub

    Private Sub CommPortSetup()
        With mySerialPort
            .PortName = "COM3"
            .BaudRate = 9600
            .DataBits = 8
            .Parity = Parity.None
            .StopBits = StopBits.One
            .Handshake = Handshake.None
        End With
        Try
            mySerialPort.Open()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        mySerialPort.WriteLine("AT+VCID")
    End Sub
End Class
#257
Holas chikos quizas alguno tenga algun codigo sobre consultar con algun server la fecha, es que el que tengo no me gusta...

Lo que hago es consultar una web y buscar en ella la fecha...

Se que hay un protocolo que atiende eso el NTP pero no encuentro un proyecto que me funcione sin problemas...

Salu2 y gracias cualquier idea...
#258
.NET (C#, VB.NET, ASP) / Problemilla con Sqlite !!
19 Diciembre 2012, 17:23 PM
Hola chicos tengo una aplicación donde estoy sacando informacion de una BD Sqlite y la estoy mostrando en una DataGrid sin problemas, la cuestion es que necesito una ves que termine mis modificaciones salvar los datos y no encuentro como, estuve mirando un ejemplo pero me da un error.. aqui les dejo el link... gracias cualquier sugerencia...

http://sqlite.phxsoftware.com/forums/p/2291/9199.aspx

Salu2
#259
Es para poder llamar a alguien usando el modem y una ves que contesten, si yo por ejemplo reproduzco una cancion ellos la puedan oir, sin problemas...y si ellos dicen algo yo poderlos oir por los speaker....

Un colega lo tiene se que funciona....

Salu2
#260
chicos bueno este codigo según de donde lo saque dice que se encuentra en y cito

The code sample below in located in "YourPlatformSDKPath"\Samples\NetDS\RRas\Adminapi\, extra libaries and includes are needed (as I guess).


Necesito pasarlo para .Net es posible ?? Gracias.....

/******************************************************************************
*    This is a part of the Microsoft Source Code Samples.
*    Copyright (C) 1992 - 2002 Microsoft Corporation.
*    All rights reserved.
*    This sample source code is only intended as a supplement to
*    MprAdmin API usage and is meant to help users with the
*    MprAdmin API calling convention. Use this code at your own risk.
*    Microsoft disclaims any implied warranty. This sample code can
*    be copied and distributed.

******************************************************************************/

/********************************************************************
* admapit.c -- Sample program demonstrating the use of different
*           MprAdmin API
*
* Comments:
*
* This program expects \\Servername as its arguments.
*
* MprAdminGetErrorString API returns error string. However
* this API may return an Error 87 (Invalid Parameter) for the non
* RAS error codes. This API is designed for only RAS related error codes.
* For more Info. check the documentation. I am using this API for all the
* errors but I print the error codes before calling this API
*
*****************************************************************************/
/***************************************************************************
* Functions:
*   Init2(void);
*   Init1(void);
*   PrintGetStringError(DWORD dwResult);
*   UserPrivilege(WCHAR *DomainName, WCHAR *UserName);
*   PrintPriv(WCHAR *DomainName, WCHAR *UserName);
*   PrintClearStats(WCHAR * RasSrv, WCHAR *wszPortName);
*   WINAPI RasAdminClearDisc(LPVOID param);
*   IsServiceRunning(WCHAR *RasSrv);
*   Debug_Print_Connection0(RAS_CONNECTION_0 *pRasConnection0);
*   Debug_Print_Connection1(RAS_CONNECTION_1 *pRasConnection1);
*   Debug_Print_RAS_PORT0(RAS_PORT_0 *pRasPort0);
*   Debug_Print_RAS_PORT1(RAS_PORT_1 *pRasPort1);
*   File_Print_Connection0(RAS_CONNECTION_0 *pRasConnection0);
*   File_Print_Connection1(RAS_CONNECTION_1 *pRasConnection1);
*   File_Print_RAS_PORT0(RAS_PORT_0 *pRasPort0);
*   File_Print_RAS_PORT1(RAS_PORT_1 *pRasPort1);
*   ProcPortClearStat(HANDLE hPort);
*   ProcConnectionClearStat(HANDLE hConnection);
*   ProcPortReset(HANDLE hPort);
*   ProcPortDisconnect(HANDLE hPort);
*   ProcConnectionGetInfo(HANDLE hConnection);
*   ProcPortGetInfo(HANDLE hPort);
*****************************************************************************/

#define sleeptime 10000

#include <windows.h>

#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <lm.h>
#include <stdio.h>
#include <time.h>
#include <ctype.h>
#include <conio.h>
#include <mprapi.h>
#include <memory.h>

#include <tchar.h>
#include "Shlwapi.h" // Platform SDK wasn't including this .h file so it's part of this project

// Macro for counting maximum characters that will fit into a null terminated buffer
#define CELEMS(x) ( ((sizeof(x))/(sizeof(x[0]))) - 1)

// Macro for writing to logfile
#define WRITE_LOG_FILE(LogFile, szbuf, len, pdwBytesWritten, flag) {\
  if ((LogFile)!=INVALID_HANDLE_VALUE) \
   WriteFile((LogFile), (szBuf), (len), (pdwBytesWritten), (flag)); \
}



//Function Definitions
VOID Init2(void);
VOID Init1(void);
VOID PrintGetStringError(DWORD dwResult);
VOID UserPrivilege(WCHAR *DomainName, WCHAR *UserName);
VOID PrintPriv(WCHAR *DomainName, WCHAR *UserName);
VOID PrintClearStats(WCHAR * RasSrv, WCHAR *wszPortName);
DWORD WINAPI RasAdminClearDisc(LPVOID param);
INT IsServiceRunning(WCHAR *RasSrv);
VOID Debug_Print_Connection0(RAS_CONNECTION_0 *pRasConnection0);
VOID Debug_Print_Connection1(RAS_CONNECTION_1 *pRasConnection1);
VOID Debug_Print_RAS_PORT0(RAS_PORT_0 *pRasPort0);
VOID Debug_Print_RAS_PORT1(RAS_PORT_1 *pRasPort1);
VOID File_Print_Connection0(RAS_CONNECTION_0 *pRasConnection0);
VOID File_Print_Connection1(RAS_CONNECTION_1 *pRasConnection1);
VOID File_Print_RAS_PORT0(RAS_PORT_0 *pRasPort0);
VOID File_Print_RAS_PORT1(RAS_PORT_1 *pRasPort1);
VOID ProcPortClearStat(HANDLE hPort);
VOID ProcConnectionClearStat(HANDLE hConnection);
VOID ProcPortReset(HANDLE hPort);
VOID ProcPortDisconnect(HANDLE hPort);
VOID ProcConnectionGetInfo(HANDLE hConnection);
VOID ProcPortGetInfo(HANDLE hPort);


// Global Variables
WCHAR*
StrDupWFromA(
  CHAR* psz );


#define Number_Of_Flags 6

HANDLE LogFile = NULL;
HANDLE cLogFile = NULL;
HANDLE ErrLogFile = NULL;

CHAR buf[120];
WCHAR CallbackNumber[255];
BOOL First_Call = TRUE;
DWORD Status = 0;
DWORD dwResult = 0;
DWORD dwBytesWritten = 0;
CHAR szBuf[120];
BOOL ErrLogInValid = FALSE;
BOOL cErrLogInValid = FALSE;
BOOL LogInValid = TRUE;
BOOL FirstCall = TRUE;
WCHAR szUserAccountServer[UNLEN+1];
PRAS_USER_0 ppRasUser0;
RAS_USER_0 RasUser0;
WCHAR lpszServerName[50];
WCHAR RasSrv[64];
BOOL Quit=FALSE;

RAS_SERVER_HANDLE phRasServer;


// Function Starts
WCHAR*
StrDupWFromA(
  CHAR* psz )

  /* Returns heap block containing a copy of 0-terminated string 'psz' or
  ** NULL on error or if 'psz' is NULL. The output string is converted to
  ** UNICODE. It is caller's responsibility to Free the returned string.
  */
{
  WCHAR* pszNew = NULL;

  if (psz)
  {
   DWORD cb;

   cb = MultiByteToWideChar( CP_ACP, 0, psz, -1, NULL, 0 );

   pszNew = malloc( cb * sizeof(WCHAR) );
   if (!pszNew)
   {
     return NULL;
   }

   cb = MultiByteToWideChar( CP_ACP, 0, psz, -1, pszNew, cb );
   if (cb == 0 && strlen(psz)!=0)
   {
     free( pszNew );
     return NULL;
   }
  }
  return pszNew;
}


//
// Format and write debug information to OutputDebugString
//
ULONG
_cdecl
DbgPrint(
  PCH Format,
  ...
  )
{
  WCHAR buffer[255];
  WCHAR *temp = NULL;
  LPINT lpResult=NULL;
  va_list marker;
  va_start (marker,Format);

  temp = StrDupWFromA(Format);
  if (temp)
  {
    wvnsprintfW(buffer, CELEMS(buffer), temp, marker);
    OutputDebugString (buffer);
    free(temp);
  }

  return TRUE;
}

//
// Init Functions to setup logfiles
//

VOID Init1(void )
{
  //Store port information in this file
  LogInValid = FALSE;
  LogFile = CreateFile(TEXT("Admin.log"),
            GENERIC_READ|GENERIC_WRITE,
            FILE_SHARE_READ,
            (LPSECURITY_ATTRIBUTES) NULL,
            CREATE_ALWAYS,
            0,
            (HANDLE) NULL);

  if (LogFile== INVALID_HANDLE_VALUE)
  {
   LogInValid = TRUE;
  }

}


VOID Init2(void)
{
  cErrLogInValid = FALSE;
  ErrLogInValid = FALSE;
  //Stores Statistics and port disconnect information in this file
  cLogFile = CreateFile(TEXT("AdminStats.log"),
             GENERIC_READ|GENERIC_WRITE,
             FILE_SHARE_READ,
             (LPSECURITY_ATTRIBUTES) NULL,
             CREATE_ALWAYS,
             0,
             (HANDLE) NULL);
  if (cLogFile== INVALID_HANDLE_VALUE)
  {
   cErrLogInValid = TRUE;
  }

  //Stores user privilege information in this file
  ErrLogFile = CreateFile(TEXT("AdminUser.log"),
              GENERIC_READ|GENERIC_WRITE,
              FILE_SHARE_READ,
              (LPSECURITY_ATTRIBUTES) NULL,
              CREATE_ALWAYS,
              0,
              (HANDLE) NULL);

  if (ErrLogFile== INVALID_HANDLE_VALUE)
  {
   ErrLogInValid = TRUE;
  }

}


//
// Function to print error strings
//
VOID PrintGetStringError(DWORD dwResult)
{
CHAR szBuf[120];
DWORD dwBytesWritten = 0;

  DbgPrint("ERROR MprAdminGetErrorString   %d\n",dwResult);
  wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminGetErrorString   %d\n",dwResult);
  WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
}


//
// Function to see if the service running
//
INT IsServiceRunning(WCHAR *RasSrv)
{
DWORD dwResult;
CHAR szBuf[120];
DWORD dwBytesWritten = 0;

  //Calling MprAdminIsServiceRunning
  // Parameters:
  // IN LPWSTR  * RasSrv
  dwResult = MprAdminIsServiceRunning(RasSrv);
  //printf("Ras server: %s\n", *RasSrv);
  if (dwResult==TRUE)
  {
   DbgPrint("Ras AND Router Serivce running on the Server\n");
   wnsprintfA(szBuf, CELEMS(szBuf), "Ras AND Router Serivce running on the Server\n");
   WriteFile(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   //Calling MprAdminServerConnect
   // Parameters
   // IN LPWSTR  * RasSrv
   // OUT RAS_SERVER_HANDLE * phRasServer
   dwResult = MprAdminServerConnect(RasSrv, &phRasServer);
   if (dwResult != NO_ERROR)
   {
     DbgPrint("Failed to Connect to Server\n");
     wnsprintfA(szBuf, CELEMS(szBuf), "Failed to Connect to Server: ERROR %d\n", dwResult);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
     return 0;
   }
  }
  else
  {
   DbgPrint("Ras AND Router Serivce is NOT running on the Server\n");
   wnsprintfA(szBuf, CELEMS(szBuf), "Ras AND Router Serivce is NOT running on the Server: ERROR %d\n", dwResult);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   return 0;
  }
  return 1;
}


//
// Function to print user privileges to logfile
//
VOID PrintPriv(WCHAR *DomainName, WCHAR *UserName)
{
DWORD dwBytesWritten = 0;
CHAR szBuf[120];

   /*********** from mprapi.h ****************************************************/
   //
   // Note: Bit 0 MUST represent NoCallback due to a quirk of the "userparms"
   //    storage method. When a new LAN Manager user is created, bit 0 of the
   //    userparms field is set to 1 and all other bits are 0. These bits are
   //    arranged so this "no Dial-In info" state maps to the "default Dial-In
   //    privilege" state.
   //
   // #define RASPRIV_NoCallback    0x01
   // #define RASPRIV_AdminSetCallback 0x02
   // #define RASPRIV_CallerSetCallback 0x04
   // #define RASPRIV_DialinPrivilege  0x08
   //
   // #define RASPRIV_CallbackType (RASPRIV_AdminSetCallback \
   //               | RASPRIV_CallerSetCallback \
   //               | RASPRIV_NoCallback)
   /*****************************************************************************/

   wnsprintfA(szBuf, CELEMS(szBuf), "\nDomainName = %ws\nUserName = %ws\n",DomainName, UserName);
   WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);

   wnsprintfA(szBuf, CELEMS(szBuf), "ppRasUser0->bfPrivilege = 0x%x\n",ppRasUser0->bfPrivilege);
   WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);

   //
   // display the privilege flags
   //
   if ((ppRasUser0->bfPrivilege) & (RASPRIV_NoCallback))
   {
    wnsprintfA(szBuf, CELEMS(szBuf), "\t\tRASPRIV_NoCallback    = 0x%x\n", (ppRasUser0->bfPrivilege & (RASPRIV_NoCallback)));
    WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   if ((ppRasUser0->bfPrivilege) & (RASPRIV_AdminSetCallback))
   {
    wnsprintfA(szBuf, CELEMS(szBuf), "\t\tRASPRIV_AdminSetCallback = 0x%x\n", (ppRasUser0->bfPrivilege & (RASPRIV_AdminSetCallback)));
    WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   if ((ppRasUser0->bfPrivilege) & (RASPRIV_CallerSetCallback))
   {
    wnsprintfA(szBuf, CELEMS(szBuf), "\t\tRASPRIV_CallerSetCallback = 0x%x\n", (ppRasUser0->bfPrivilege & (RASPRIV_CallerSetCallback)));
    WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   if ((ppRasUser0->bfPrivilege) & (RASPRIV_DialinPrivilege))
   {
    wnsprintfA(szBuf, CELEMS(szBuf), "\t\tRASPRIV_DialinPrivilege  = 0x%x\n", (ppRasUser0->bfPrivilege & (RASPRIV_DialinPrivilege)));
    WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
}


//
// Function to get and change User Dialin Privileges.
// It goes through all the Dialin Privileges for a user.
//
VOID UserPrivilege(WCHAR *DomainName, WCHAR *UserName)
{
DWORD dwResult;
CHAR szBuf[120];
DWORD dwBytesWritten = 0;
WCHAR Buf[512];
WCHAR *lpszString;
static BYTE Dialin = 9;
lpszString = &Buf[0];
ppRasUser0 = &RasUser0;

  // API Called:   MprAdminGetPDCServer
  // Parameters:
  // IN WCHAR * lpwsDomainName
  // IN WCHAR * lpwsServerName
  // OUT WCHAR * lpwsPDCServer


  dwResult = MprAdminGetPDCServer(DomainName, NULL, &szUserAccountServer[0]);

  if (dwResult != NO_ERROR)
  { 
   dwResult = MprAdminGetPDCServer(NULL, RasSrv, &szUserAccountServer[0]);
  }

  if (dwResult == NO_ERROR)
  {
   // API Called:   MprAdminUserGetInfo
   // Parameters:
   // IN WCHAR * lpwsServerName
   // IN WCHAR * lpwsUserName
   // IN DWORD dwLevel
   // OUT LPBYTE *lpbBuffer
   dwResult = MprAdminUserGetInfo(szUserAccountServer, UserName,(DWORD) 0, (LPBYTE) ppRasUser0);
   if (dwResult != NO_ERROR)
   {
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminUserGetInfo   %d\n",dwResult);
     WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
     wnsprintfA(szBuf, CELEMS(szBuf), "Parameters in:\n\tlpszServer=%ws\n\tlpszUser=%ws\n\tdwLevel=0,\n\tlpbBuffer)\n",
            szUserAccountServer, UserName);
     WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);

     dwResult = MprAdminGetErrorString( dwResult, &lpszString);
     if (dwResult == NO_ERROR)
     {
      wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminUserGetInfo: string from MprAdminGetErrorString: %ws\n",lpszString);
      WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
     }
     else
      PrintGetStringError(dwResult);
   }
   else //MprAdminUserGetInfo returned success
   {
     ppRasUser0->bfPrivilege = (RASPRIV_DialinPrivilege | Dialin );
     wcsncpy(ppRasUser0->wszPhoneNumber, CallbackNumber,
        sizeof(ppRasUser0->wszPhoneNumber)/sizeof(ppRasUser0->wszPhoneNumber[0]));
     // API Called:   MprAdminUserSetInfo
     // Parameters:
     // IN WCHAR * lpwsServerName
     // IN WCHAR * lpwsUserName
     // IN DWORD dwLevel
     // IN LPBYTE lpbBuffer
     dwResult = MprAdminUserSetInfo(szUserAccountServer, UserName, 0, (LPBYTE)ppRasUser0);
     if (dwResult != NO_ERROR)
     {
      wnsprintfA(szBuf, CELEMS(szBuf), "ERROR: MprAdminUserSetInfo   %d\n",dwResult);
      WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);

      wnsprintfA(szBuf, CELEMS(szBuf), "Parameters in:\n\tlpszServer=%ws\n\tlpszUser=%ws\n\tdwLevel=0,\n\tlpbBuffer)\n",
              szUserAccountServer, UserName);
      WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
      // dump this out to see what privileges were passed in UserSetInfo call
      PrintPriv(szUserAccountServer, UserName);

      dwResult = MprAdminGetErrorString( dwResult, &lpszString);
      if (dwResult == ERROR_SUCCESS)
      {
        wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminUserSetInfo: string from MprAdminGetErrorString: %ws\n",lpszString);
        WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
      }
      else
        PrintGetStringError(dwResult);
     }
     else
     {
      PrintPriv(szUserAccountServer, UserName);
     }
         
   
     //
     // cycle thru these Callback privilege values
     //
     // Dialin = 9 : No Callback
     // Dialin = 10: Admin Sets Callback Number
     // Dialin = 12: Caller Sets Callback Number
     switch (Dialin)
     {
      case 9:
        Dialin = 10;
        break;
      case 10:
        Dialin = 12;
        break;
      case 12:
        Dialin = 9;
        break;
      default:
        break;
     }

   
   } // end of loop for MprAdminUserGetInfo returning success

  }
  else //MprAdminGetPDCServer returned an error
  {
   DbgPrint("ERROR MprAdminGetPDCServer   %d\n",dwResult);
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminGetPDCServer   %d\n",dwResult);
   WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   wnsprintfA(szBuf, CELEMS(szBuf), "Parameters in:\n\tlpszDomain=%ws\n\tlpszServer=NULL\n", DomainName);
   WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);

   dwResult = MprAdminGetErrorString(dwResult, &lpszString);
   if (dwResult == NO_ERROR)
   {
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminGetPDCServer   %ws\n",lpszString);
     WRITE_LOG_FILE(ErrLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }

} //end UserPrivilege()



//
// dump connection0 struct to debug output
//
VOID Debug_Print_Connection0(RAS_CONNECTION_0 *pRasConnection0)
{
  WCHAR *Interface_Type[] =
  {
  L"ROUTER_IF_TYPE_CLIENT",
  L"ROUTER_IF_TYPE_HOME_ROUTER",
  L"ROUTER_IF_TYPE_FULL_ROUTER",
  L"ROUTER_IF_TYPE_DEDICATED",
  L"ROUTER_IF_TYPE_INTERNAL",
  L"ROUTER_IF_TYPE_INTERNAL"
  };

  //dumping pRasConnection0
  DbgPrint("pRasConnection0->hConnection 0x%x\n",pRasConnection0->hConnection);
  DbgPrint("pRasConnection0->hInterface  0x%x\n",pRasConnection0->hInterface);
  DbgPrint("pRasConnection0->dwConnectDuration %d\n",pRasConnection0->dwConnectDuration);
  DbgPrint("pRasConnection0->dwInterfaceType %ws\n",Interface_Type[pRasConnection0->dwInterfaceType]);
  DbgPrint("pRasConnection0->dwConnectionFlags %d\n",pRasConnection0->dwConnectionFlags);
  DbgPrint("pRasConnection0->wszInterfaceName %ws\n",pRasConnection0->wszInterfaceName);
  DbgPrint("pRasConnection0->wszUserName %ws\n",pRasConnection0->wszUserName);
  DbgPrint("pRasConnection0->wszLogonDomain %ws\n",pRasConnection0->wszLogonDomain);
  DbgPrint("pRasConnection0->wszRemoteComputer %ws\n",pRasConnection0->wszRemoteComputer);

 

 
}


//
// dump connection1 struct to debug output
//
VOID Debug_Print_Connection1(RAS_CONNECTION_1 *pRasConnection1)
{
  //dumping pRasConnection1
  DbgPrint( "\n\npRasConnection1->hConnection 0x%x\n",pRasConnection1->hConnection);
  DbgPrint( "pRasConnection1->hInterface  0x%x\n",pRasConnection1->hInterface);
  DbgPrint( "pRasConnection1->PppInfo.nbf.dwError %d\n",pRasConnection1->PppInfo.nbf.dwError);
  DbgPrint( "pRasConnection1->PppInfo.nbf.wszWksta %ws\n",pRasConnection1->PppInfo.nbf.wszWksta);
  DbgPrint( "pRasConnection1->PppInfo.ip.dwError %d\n",pRasConnection1->PppInfo.ip.dwError);
  DbgPrint( "pRasConnection1->PppInfo.ip.wszAddress %ws\n",pRasConnection1->PppInfo.ip.wszAddress);
  DbgPrint( "pRasConnection1->PppInfo.ip.wszRemoteAddress %ws\n",pRasConnection1->PppInfo.ip.wszRemoteAddress);
  DbgPrint( "pRasConnection1->PppInfo.ipx.dwError %d\n",pRasConnection1->PppInfo.ipx.dwError);
  DbgPrint( "pRasConnection1->PppInfo.ipx.wszAddress %ws\n",pRasConnection1->PppInfo.ipx.wszAddress);
  DbgPrint( "pRasConnection1->PppInfo.at.dwError %d\n",pRasConnection1->PppInfo.at.dwError );
  DbgPrint( "pRasConnection1->PppInfo.at.wszAddress %ws\n",pRasConnection1->PppInfo.at.wszAddress);
 
  //connection stats
  DbgPrint( "pRasConnection1->dwBytesXmited=%d\n", pRasConnection1->dwBytesXmited );
  DbgPrint( "pRasConnection1->dwBytesRcved=%d\n", pRasConnection1->dwBytesRcved );
  DbgPrint( "pRasConnection1->dwFramesXmited=%d\n", pRasConnection1->dwFramesXmited );
  DbgPrint( "pRasConnection1->dwFramesRcved=%d\n", pRasConnection1->dwFramesRcved);
  DbgPrint( "pRasConnection1->dwCrcErr=%d\n", pRasConnection1->dwCrcErr);
  DbgPrint( "pRasConnection1->dwTimeoutErr=%d\n", pRasConnection1->dwTimeoutErr);
  DbgPrint( "pRasConnection1->dwAlignmentErr=%d\n", pRasConnection1->dwAlignmentErr);
  DbgPrint( "pRasConnection1->dwHardwareOverrunErr=%d\n", pRasConnection1->dwHardwareOverrunErr);
  DbgPrint( "pRasConnection1->dwFramingErr=%d\n", pRasConnection1->dwFramingErr);
  DbgPrint( "pRasConnection1->dwBufferOverrunErr=%d\n", pRasConnection1->dwBufferOverrunErr);
}



//
// dump port0 struct to debug output
//
VOID Debug_Print_RAS_PORT0(RAS_PORT_0 *pRasPort0)
{
WCHAR *Line_Condition[] =
  {
  L"RAS_PORT_NON_OPERATIONAL",
  L"RAS_PORT_DISCONNECTED",
  L"RAS_PORT_CALLING_BACK",
  L"RAS_PORT_LISTENING",
  L"RAS_PORT_AUTHENTICATING",
  L"RAS_PORT_AUTHENTICATED",
  L"RAS_PORT_INITIALIZING"
  };

WCHAR *Hdw_Error[] =
  {
  L"RAS_HARDWARE_OPERATIONAL",
  L"RAS_HARDWARE_FAILURE"
  };

  //dumping pRasPort0
  DbgPrint("pRasPort0->hPort %d\n",pRasPort0->hPort);
  DbgPrint("pRasPort0->hConnection  0x%x\n",pRasPort0->hConnection);
  DbgPrint("pRasPort0->dwPortCondition %ws\n",Line_Condition[pRasPort0->dwPortCondition-1]);
  DbgPrint("pRasPort0->dwTotalNumberOfCalls %d\n",pRasPort0->dwTotalNumberOfCalls);
  DbgPrint("pRasPort0->dwConnectDuration %d\n",pRasPort0->dwConnectDuration);
  DbgPrint("pRasPort0->wszPortName %ws\n",pRasPort0->wszPortName);
  DbgPrint("pRasPort0->wszMediaName %ws\n",pRasPort0->wszMediaName);
  DbgPrint("pRasPort0->wszDeviceName %ws\n",pRasPort0->wszDeviceName);
  DbgPrint("pRasPort0->wszDeviceType %ws\n",pRasPort0->wszDeviceType);

}



//
// dump port1 struct to debug output
//
VOID Debug_Print_RAS_PORT1(RAS_PORT_1 *pRasPort1)
{
WCHAR *Line_Condition[] =
  {
  L"RAS_PORT_NON_OPERATIONAL",
  L"RAS_PORT_DISCONNECTED",
  L"RAS_PORT_CALLING_BACK",
  L"RAS_PORT_LISTENING",
  L"RAS_PORT_AUTHENTICATING",
  L"RAS_PORT_AUTHENTICATED",
  L"RAS_PORT_INITIALIZING"
  };

WCHAR *Hdw_Error[] =
  {
  L"RAS_HARDWARE_OPERATIONAL",
  L"RAS_HARDWARE_FAILURE"
  };

  //dumping pRasPort1
  DbgPrint("pRasPort1->hPort %d\n",pRasPort1->hPort);
  DbgPrint("pRasPort1->hConnection  0x%x\n",pRasPort1->hConnection);
  DbgPrint("pRasPort1->dwHardwareCondition %ws\n",Hdw_Error[pRasPort1->dwHardwareCondition]);

  //connection stats
  DbgPrint( "pRasPort1->dwLineSpeed=%d\n", pRasPort1->dwLineSpeed );
  DbgPrint( "pRasPort1->dwBytesXmited=%d\n", pRasPort1->dwBytesXmited );
  DbgPrint( "pRasPort1->dwBytesRcved=%d\n", pRasPort1->dwBytesRcved );
  DbgPrint( "pRasPort1->dwFramesXmited=%d\n", pRasPort1->dwFramesXmited );
  DbgPrint( "pRasPort1->dwFramesRcved=%d\n", pRasPort1->dwFramesRcved);
  DbgPrint( "pRasPort1->dwCrcErr=%d\n", pRasPort1->dwCrcErr);
  DbgPrint( "pRasPort1->dwTimeoutErr=%d\n", pRasPort1->dwTimeoutErr);
  DbgPrint( "pRasPort1->dwAlignmentErr=%d\n", pRasPort1->dwAlignmentErr);
  DbgPrint( "pRasPort1->dwHardwareOverrunErr=%d\n", pRasPort1->dwHardwareOverrunErr);
  DbgPrint( "pRasPort1->dwFramingErr=%d\n", pRasPort1->dwFramingErr);
  DbgPrint( "pRasPort1->dwBufferOverrunErr=%d\n", pRasPort1->dwBufferOverrunErr);
}


//
// dump connection0 struct to logfile
//
VOID File_Print_Connection0(RAS_CONNECTION_0 *pRasConnection0)
{
WCHAR *Interface_Type[] =
  {
  L"ROUTER_IF_TYPE_CLIENT",
  L"ROUTER_IF_TYPE_HOME_ROUTER",
  L"ROUTER_IF_TYPE_FULL_ROUTER",
  L"ROUTER_IF_TYPE_DEDICATED",
  L"ROUTER_IF_TYPE_INTERNAL",
  L"ROUTER_IF_TYPE_INTERNAL"
  };

  //dumping pRasConnection0
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "dumping pRasConnection0\n\n");
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->hConnection 0x%l64x\n",pRasConnection0->hConnection);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->hInterface  0x%l64x\n",pRasConnection0->hInterface);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->dwConnectDuration %d\n",pRasConnection0->dwConnectDuration);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->dwInterfaceType %ws\n",Interface_Type[pRasConnection0->dwInterfaceType]);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->dwConnectionFlags %d\n",pRasConnection0->dwConnectionFlags);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->wszInterfaceName %ws\n",pRasConnection0->wszInterfaceName);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->wszUserName %ws\n",pRasConnection0->wszUserName);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->wszLogonDomain %ws\n",pRasConnection0->wszLogonDomain);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection0->wszRemoteComputer %ws\n",pRasConnection0->wszRemoteComputer);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);

}


//
// dump connection1 info to logfile
//
VOID File_Print_Connection1(RAS_CONNECTION_1 *pRasConnection1)
{

  //dumping pRasConnection1
  wnsprintfA(buf, CELEMS(buf), "dumping pRasConnection1\n");
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "\n\npRasConnection1->hConnection 0x%l64x\n",pRasConnection1->hConnection);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->hInterface  0x%l64x\n",pRasConnection1->hInterface);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.nbf.dwError %d\n",pRasConnection1->PppInfo.nbf.dwError);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.nbf.wszWksta %ws\n",pRasConnection1->PppInfo.nbf.wszWksta);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.ip.dwError %d\n",pRasConnection1->PppInfo.ip.dwError);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.ip.wszAddress %ws\n",pRasConnection1->PppInfo.ip.wszAddress);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.ip.wszRemoteAddress %ws\n",pRasConnection1->PppInfo.ip.wszRemoteAddress);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.ipx.dwError %d\n",pRasConnection1->PppInfo.ipx.dwError);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.ipx.wszAddress %ws\n",pRasConnection1->PppInfo.ipx.wszAddress);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.at.dwError %d\n",pRasConnection1->PppInfo.at.dwError );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->PppInfo.at.wszAddress %ws\n",pRasConnection1->PppInfo.at.wszAddress);

  //connection stats
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwBytesXmited=%d\n", pRasConnection1->dwBytesXmited );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwBytesRcved=%d\n", pRasConnection1->dwBytesRcved );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwFramesXmited=%d\n", pRasConnection1->dwFramesXmited );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwFramesRcved=%d\n", pRasConnection1->dwFramesRcved);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwCrcErr=%d\n", pRasConnection1->dwCrcErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwTimeoutErr=%d\n", pRasConnection1->dwTimeoutErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwAlignmentErr=%d\n", pRasConnection1->dwAlignmentErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwHardwareOverrunErr=%d\n", pRasConnection1->dwHardwareOverrunErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwFramingErr=%d\n", pRasConnection1->dwFramingErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasConnection1->dwBufferOverrunErr=%d\n", pRasConnection1->dwBufferOverrunErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
}



//
// dump port0 info to logfile
//
VOID File_Print_RAS_PORT0(RAS_PORT_0 *pRasPort0)
{
WCHAR *Line_Condition[] =
  {
  L"RAS_PORT_NON_OPERATIONAL",
  L"RAS_PORT_DISCONNECTED",
  L"RAS_PORT_CALLING_BACK",
  L"RAS_PORT_LISTENING",
  L"RAS_PORT_AUTHENTICATING",
  L"RAS_PORT_AUTHENTICATED",
  L"RAS_PORT_INITIALIZING"
  };

WCHAR *Hdw_Error[] =
  {
  L"RAS_HARDWARE_OPERATIONAL",
  L"RAS_HARDWARE_FAILURE"
  };

  //dumping pRasPort0 to a file
  wnsprintfA(buf, CELEMS(buf), "dumping pRasPort0 to file\n");
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->hPort %l64d\n",pRasPort0->hPort);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->hConnection  0x%l64x\n",pRasPort0->hConnection);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->dwPortCondition %ws\n",Line_Condition[pRasPort0->dwPortCondition-1]);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->dwTotalNumberOfCalls %d\n",pRasPort0->dwTotalNumberOfCalls);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->dwConnectDuration %d\n",pRasPort0->dwConnectDuration);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->wszPortName %ws\n",pRasPort0->wszPortName);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->wszMediaName %ws\n",pRasPort0->wszMediaName);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->wszDeviceName %ws\n",pRasPort0->wszDeviceName);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort0->wszDeviceType %ws\n",pRasPort0->wszDeviceType);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);

}



//
// dump port1 info to logfile
//
VOID File_Print_RAS_PORT1(RAS_PORT_1 *pRasPort1)
{
WCHAR *Line_Condition[] =
  {
  L"RAS_PORT_NON_OPERATIONAL",
  L"RAS_PORT_DISCONNECTED",
  L"RAS_PORT_CALLING_BACK",
  L"RAS_PORT_LISTENING",
  L"RAS_PORT_AUTHENTICATING",
  L"RAS_PORT_AUTHENTICATED",
  L"RAS_PORT_INITIALIZING"
  };

WCHAR *Hdw_Error[] =
  {
  L"RAS_HARDWARE_OPERATIONAL",
  L"RAS_HARDWARE_FAILURE"
  };


  //dumping pRasPort1
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "\n dumping pRasPort1\n");
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->hPort %l64d\n",pRasPort1->hPort);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->hConnection  0x%l64x\n",pRasPort1->hConnection);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwHardwareCondition %ws\n",Hdw_Error[pRasPort1->dwHardwareCondition]);

  //connection stats
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwLineSpeed=%d\n", pRasPort1->dwLineSpeed );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwBytesXmited=%d\n", pRasPort1->dwBytesXmited );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwBytesRcved=%d\n", pRasPort1->dwBytesRcved );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwFramesXmited=%d\n", pRasPort1->dwFramesXmited );
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwFramesRcved=%d\n", pRasPort1->dwFramesRcved);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwCrcErr=%d\n", pRasPort1->dwCrcErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwTimeoutErr=%d\n", pRasPort1->dwTimeoutErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwAlignmentErr=%d\n", pRasPort1->dwAlignmentErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwHardwareOverrunErr=%d\n", pRasPort1->dwHardwareOverrunErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwFramingErr=%d\n", pRasPort1->dwFramingErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);
  wnsprintfA(buf, CELEMS(buf), "pRasPort1->dwBufferOverrunErr=%d\n", pRasPort1->dwBufferOverrunErr);
  WRITE_LOG_FILE(cLogFile, (LPSTR)buf, (int) strlen(buf), &dwBytesWritten, NULL);

}


//
// Function to clear port statistics.
//
VOID ProcPortClearStat(HANDLE hPort)
{
DWORD dwBytesWritten = 0;
CHAR szBuf[120];
WCHAR Buf[512];
WCHAR *lpszString;
lpszString = &Buf[0];

  if (phRasServer==NULL)
   return;
   
  // API Called:   MprAdminPortClearStats
  // Parameters:
  // IN RAS_SERVER_HANDLE phRasServer
  // IN HANDLE hPort
  Status = MprAdminPortClearStats(phRasServer, hPort);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortClearStats  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString(Status,&lpszString);
   if (dwResult == ERROR_SUCCESS)
   {
     DbgPrint("ERROR MprAdminPortClearStats   %ws\n",lpszString);
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortClearStats   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else
  {
   DbgPrint("\n\nMprAdminPortClearStats Called From ProcPortClearStat, Now dumping structs \n");
   wnsprintfA(szBuf, CELEMS(szBuf), "\n\nMprAdminPortClearStats Called From ProcPortClearStat, Now dumping structs\n");
   WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   ProcPortGetInfo(hPort);
  }

}



//
// Function to clear connection statistics.
//
VOID ProcConnectionClearStat(HANDLE hConnection)
{
DWORD dwBytesWritten = 0;
CHAR szBuf[120];
WCHAR Buf[512];
WCHAR *lpszString;
lpszString = &Buf[0];

  if (phRasServer==NULL)
   return;
   
  // API Called:   MprAdminConnectionClearStats
  // Parameters:
  // IN RAS_SERVER_HANDLE phRasServer
  // IN HANDLE hConnection
  Status = MprAdminConnectionClearStats(phRasServer, hConnection);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminConnectionClearStats  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString(Status, &lpszString);
   if (dwResult == ERROR_SUCCESS)
   {
     DbgPrint("ERROR MprAdminConnectionClearStats   %ws\n",lpszString);
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminConnectionClearStats   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else
  {
   DbgPrint("\n\nMprAdminConnectionClearStats Called From ProcConnectionClearStat, Now dumping structs \n");
   wnsprintfA(szBuf, CELEMS(szBuf), "\n\nMprAdminConnectionClearStats Called From ProcConnectionClearStat, Now dumping structs\n");
   WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   ProcConnectionGetInfo(hConnection);
  }
}


//
// Function to reset port.
//
VOID ProcPortReset(HANDLE hPort)
{
DWORD dwBytesWritten = 0;
CHAR szBuf[120];
WCHAR Buf[512];
WCHAR *lpszString;
lpszString = &Buf[0];

  if (phRasServer==NULL)
   return;
   
  // API Called:   MprAdminPortReset
  // Parameters:
  // IN RAS_SERVER_HANDLE phRasServer
  // IN HANDLE hPort
  Status = MprAdminPortReset(phRasServer, hPort);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortReset  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString(Status, &lpszString);
   if (dwResult == ERROR_SUCCESS)
   {
     DbgPrint("ERROR MprAdminPortReset   %ws\n",lpszString);
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortReset   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else
  {
   DbgPrint("\n\nMprAdminPortReset Called From ProcPortReset, Now dumping structs \n");
   wnsprintfA(szBuf, CELEMS(szBuf), "\n\nMprAdminPortReset Called From ProcPortReset, Now dumping structs\n");
   WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   ProcPortGetInfo(hPort);
  }
}


//
// Function to disconnect port.
//
VOID ProcPortDisconnect(HANDLE hPort)
{
DWORD dwBytesWritten = 0;
CHAR szBuf[120];
WCHAR Buf[512];
WCHAR *lpszString;
lpszString = &Buf[0];

  if (phRasServer==NULL)
   return;
   
  // API Called:   MprAdminPortDisconnect
  // Parameters:
  // IN RAS_SERVER_HANDLE phRasServer
  // IN HANDLE hPort
  Status = MprAdminPortDisconnect(phRasServer, hPort);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortDisconnect  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString( Status, &lpszString);
   if (dwResult == ERROR_SUCCESS)
   {
     DbgPrint("ERROR MprAdminPortDisconnect   %ws\n",lpszString);
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortDisconnect   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
}



//
// Function to reset port statistics
//
DWORD WINAPI RasAdminClearDisc(LPVOID param)
{
CHAR option= ' ';
WORD i = 0;
INT k = 0;

  while (!Quit)
  {
   // If the user hits q or Q then this will exit gracefully.
   // It may take some time to exit though.
   printf("Type Q to Quit\n");
   do
   {
     option = (CHAR)_getch();
     option = (CHAR)toupper(option);
     printf("%c\n",option);
   } while (((option) != 'q')&& ((option) != 'Q'));

   if (option == 'Q')
   {
     Quit = TRUE;
   }
  }
  return(0);
}

VOID ProcConnectionGetInfo(HANDLE hConnection)
{
RAS_CONNECTION_0 *pRasConnection0;
RAS_CONNECTION_1 *pRasConnection1;
LPBYTE lplpbBuffer;
DWORD dwBytesWritten = 0;
CHAR szBuf[120];
WCHAR *lpszString;
WCHAR Buf[512];
lpszString = &Buf[0];

  if (phRasServer==NULL)
   return;
   
  // API Called: MprAdminConnectionGetInfo
  // Parameters:
  // IN RAS_SERVER_HANDLE phRasServer
  // IN DWORD  dwLevel
  // IN HANDLE  hConnection
  // OUT LPBYTE * lplpbBuffer
  Status = MprAdminConnectionGetInfo(phRasServer,0,hConnection,&lplpbBuffer);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminConnectionGetInfo  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString( Status, &lpszString);
   if (dwResult == NO_ERROR)
   {
     wnsprintfA(szBuf,CELEMS(szBuf), "ERROR MprAdminConnectionGetInfo   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else
  {
   pRasConnection0 = (RAS_CONNECTION_0 *) lplpbBuffer;
   wnsprintfA(szBuf, CELEMS(szBuf), "\n\nDumping RpRasConnection0::Called from ProcConnectionGetinfo:->MprAdminConnectionGetInfo\n");
       WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   File_Print_Connection0(pRasConnection0);
   DbgPrint("\n\nDumping RpRasConnection0::Called from ProcConnectionGetinfo:->MprAdminConnectionGetInfo\n");
   Debug_Print_Connection0(pRasConnection0);
   MprAdminBufferFree(pRasConnection0);
  }

  Status = MprAdminConnectionGetInfo(phRasServer,1,hConnection,&lplpbBuffer);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminConnectionGetInfo  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString( Status, &lpszString);
   if (dwResult == NO_ERROR)
   {
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminConnectionGetInfo   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else
  {
   pRasConnection1 = (RAS_CONNECTION_1 *) lplpbBuffer;
   wnsprintfA(szBuf, CELEMS(szBuf), "\n\nDumping RpRasConnection1::Called from ProcConnectionGetinfo:->MprAdminConnectionGetInfo\n");
   WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   File_Print_Connection1(pRasConnection1);
   DbgPrint("\n\nDumping RpRasConnection1::Called from ProcConnectionGetinfo:->MprAdminConnectionGetInfo\n");
   Debug_Print_Connection1(pRasConnection1);
   MprAdminBufferFree(pRasConnection1);
  }
}


//
// get port info
//
VOID ProcPortGetInfo(HANDLE hPort)
{
RAS_PORT_0 *pRasPort0;
RAS_PORT_1 *pRasPort1;
LPBYTE lplpbBuffer;
DWORD dwBytesWritten = 0;
CHAR szBuf[120];
WCHAR *lpszString;
WCHAR Buf[512];
lpszString = &Buf[0];

  if (phRasServer==NULL)
   return;

  // API Called: MprAdminPortGetInfo
  // Parameters:
  // IN RAS_SERVER_HANDLE phRasServer
  // IN DWORD  dwLevel
  // IN HANDLE  hPort
  // OUT LPBYTE * lplpbBuffer
  Status = MprAdminPortGetInfo(phRasServer,0,hPort,&lplpbBuffer);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortGetInfo  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString( Status, &lpszString);
   if (dwResult == NO_ERROR)
   {
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortGetInfo   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else
  {
   pRasPort0 = (RAS_PORT_0 *) lplpbBuffer;
   wnsprintfA(szBuf, CELEMS(szBuf), "\n\nDumping RpRasPort0::Called from ProcPortGetInfo:-> MprAdminPortGetInfo\n");
   WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   File_Print_RAS_PORT0(pRasPort0);
   DbgPrint("\n\nDumping RpRasPort0::Called from ProcPortGetInfo:->MprAdminPortGetInfo\n");
   Debug_Print_RAS_PORT0(pRasPort0);
   MprAdminBufferFree(pRasPort0);
  }

  Status = MprAdminPortGetInfo(phRasServer,1,hPort,&lplpbBuffer);
  if (Status != NO_ERROR)
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminPortGetInfo  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString( Status, &lpszString);
   if (dwResult == NO_ERROR)
   {
     wnsprintfA(szBuf,CELEMS(szBuf), "ERROR MprAdminPortGetInfo   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else
  {
   pRasPort1 = (RAS_PORT_1 *) lplpbBuffer;
   wnsprintfA(szBuf, CELEMS(szBuf), "\n\nDumping pRasPort1::Called from ProcPortGetInfo:->MprAdminPortGetInfo\n");
   WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   File_Print_RAS_PORT1(pRasPort1);
   DbgPrint("\n\nDumping RpRasConnection1::Called from ProcPortGetInfo:->MprAdminPortGetInfo\n");
   Debug_Print_RAS_PORT1(pRasPort1);
   MprAdminBufferFree(pRasPort1);
  }
}


/*************************************************************************/
/***************** Start Main ********************************************/
/*************************************************************************/

void _cdecl main(int argc, char **argv)
{
INT LoopPriv = 0;
INT Error = 0;
CHAR szBuf[120];
DWORD dwBytesWritten = 0;
DWORD Dialin = 1;
WORD i = 0;
INT_PTR id = 0;
WCHAR *lpszString;
WCHAR Buf[512];
HANDLE ConnectDiscThread;
LPBYTE lplpbBuffer;
DWORD lpdwEntriesRead = 0;
DWORD lpdwTotalEntries = 0;
LPDWORD lpdwResumeHandle=NULL;
RAS_CONNECTION_0 *pRasConnection0;
LPBYTE plplpbBuffer;
DWORD plpdwPrefMaxLen = 0;
DWORD plpdwEntriesRead = 0;
DWORD plpdwTotalEntries = 0;
DWORD plpdwResumeHandle = 0;
RAS_PORT_0 *pRasPort0;
HANDLE hConnection = 0;
lpszString = &Buf[0];

if (argc > 1)
{
  mbstowcs(RasSrv, argv[1], 32) ;
}
Init1();
Init2();
Error=IsServiceRunning(RasSrv);
if (!Error)
{
  printf ("Ras Server is not started on the system");
  exit(0);
}
printf("Please specify the Client's phone number or IP address\n");
scanf("%ws", CallbackNumber);
ConnectDiscThread = CreateThread (NULL,
                 0,
                 &RasAdminClearDisc,
                 (LPVOID)&id,
                 0,
                 (LPDWORD)&id);
while (!Quit)
{
// API Called:   MprAdminConnectionEnum
// Parameters:
// IN RAS_SERVER_HANDLE phRasServer
// IN DWORD dwLevel
// OUT LPBYTE * lplpbBuffer  (RAS_CONNECTION_0 array)
// IN DWORD dwPrefMaxLen
// OUT LPDWORD lpdwEntriesRead
// OUT LPDWORD lpdwdTotalEntries
// IN LPDWORD lpdwResumeHandle OPTIONAL

// Free up lplpbBuffer by calling MprAdminFreeBuffer API

  lpdwEntriesRead = 0;

  Status = MprAdminConnectionEnum(phRasServer,(DWORD) 0,&lplpbBuffer,(DWORD)-1,
                  &lpdwEntriesRead,&lpdwTotalEntries,lpdwResumeHandle);
  if (Status != NO_ERROR) //error
  {
   wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminConnectionEnum  %d\n",Status);
   WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   dwResult = MprAdminGetErrorString( Status, &lpszString);
   if (dwResult == NO_ERROR)
   {
     wnsprintfA(szBuf, CELEMS(szBuf), "ERROR MprAdminConnectionEnum   %ws\n",lpszString);
     WRITE_LOG_FILE(LogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
   }
   else
     PrintGetStringError(dwResult);
  }
  else //no error
  {
   if (lpdwEntriesRead == lpdwTotalEntries)
   {
     pRasConnection0 = (RAS_CONNECTION_0 *) lplpbBuffer;
     for (i=0; i < (DWORD)lpdwTotalEntries;i++)
     {
      wnsprintfA(szBuf, CELEMS(szBuf), "\n\nDumping RpRasConnection0::Called from MprAdminConnectionEnum\n");
      WRITE_LOG_FILE(cLogFile, (LPSTR)szBuf, (int) strlen(szBuf), &dwBytesWritten, NULL);
      File_Print_Connection0(&pRasConnection0);
      DbgPrint("\n\nDumping RpRasConnection0::Called from MprAdminConnectionEnum\n");
      Debug_Print_Connection0(&pRasConnection0);
      ProcConnectionGetInfo(pRasConnection0.hConnection);
      // pass hConnection = handle from MprAdminConnectionEnum
      hConnection = pRasConnection0.hConnection;
      //alternatively, could pass hConnection = INVALID_HANDLE_VALUE;
      Sleep (500);
      // A good idea is to call UserPrivilege outside the loop. It doesn't really
      // make sense to go through the privilege change for every iteration.
      // However, this code is just intended to demonstrate the usage.
      if (lpdwEntriesRead > 0)
    {
    UserPrivilege(pRasConnection0.wszLogonDomain,pRasConnection0.wszUserName);
    }
      ProcConnectionClearSt
#261
Holas chikos, veran quiero hacer un regalo por fin de año y es que tengo a unos parientes de mi esposa con los cuales nos comunicamos por el Yahoo Messenger usando video conferencia y todo de maravillas hablamos podemos vemos en fin todo perfecto.

Mi duda es que quisiera ampliar eso un poquito para que esos parientes pueda hablar con mis suegros y bueno ya aqui se complica un poco las cosas, yo tengo una linea de telefono y un modem 56k Motorola PCI, quisiera saber como puedo hacer para llamar desde mi modem a mis suegros y conectar esa llamada una ves que ellos respondan a algun programa para que puedan hablar.

Interconectarlos... cuando les pido esto asi es se me hace dificil algo sobre Voip igual me dan alguna solucion, los parientes quizas puedan pagar algun servicio bien barato y entonces yo hacer eso que quiero hacer... nada espero ideas... gracias

Gracias y salu2
#262


Lo que necesito es poder desde mi aplicación desactivar esa casilla y activarla a mi antojo, le puse un monitor de registro para ver las entradas en el REGEDIT que modifica pero al parecer todas las casillas que el configura nada mas son de información o sea que las vuelto a colocar con los valores que tenia anterior a que el las modificara y nada cuando entra una llamada se activa el módem.....

El módem no lo puedo deshabilitar porque lo uso con otros programas.

Activar y desactivar el servicio que atiende esto no es viable porque me es necesario hacer esa tarea muchas veces al día y con un servicio da problemas.

Cualquier ayuda sera bienvenida..
#263
.NET (C#, VB.NET, ASP) / Ayuda con Proyecto !!
4 Diciembre 2012, 21:39 PM
Amigos que tal les comento rapido, buscando por la Web informacion sobre como usar la API TAPI3 encontre 2 proyectos uno en C# y otro en Vb.Net, obviamente quisiera usar el ultimo, pero tengo una problematica cuando creo un proyecto e implemento la Clase que se usa ahi me da un error: Interop type 'TAPIClass' cannot be embedded. Use the applicable interface instead.

Lo mas raro es que cuando cargo el proyecto no da error y esta identico, el lio es cuando creo un proyecto nuevo y copio toda la clase, declaro las referencias que usa hacia la TAPI3 y nada me da ese error..entonces continuo me es necesario cargar los modem que el detecte en un ComboBox para seleccionar el que desee y entonces desde un boton agregarle el codigo para que lo ponga en estado de monitor.

Todo el codigo esta en la clase lo que necesito es poder interactuar con ella.

El proyecto es el siguiente http://www.codeproject.com/Articles/11238/Working-with-TAPI-3-x-from-NET

no se como les podria subir los archivos son pequeños menos de 100 KB

cualquier duda preguntenme
#264
Señores quisiera tratar de diseñar una aplicación tipo SERVER RAS y buscando en la Microsoft encuentro este tema:

http://msdn.microsoft.com/en-us/library/ms924929.aspx

Ahora lo que no entiendo:

El Windows CE funciona como una aplicacion o es un Windows como el XP ?

Es necesario instalar el Windows CE para el desarrollo de la aplicación?

No puedo desarrollar esta aplicación desde VS2010 o VS2012 en un Windows Xp o Windows 8 ??

Y si no es mucha molestia, si tuviera que instalar el Windows CE me pueden dar alguna version estable ?

GRacias
#265
.NET (C#, VB.NET, ASP) / Call Id duda?
28 Noviembre 2012, 02:34 AM
Holas por aqui, chikos tengo una problematica, veran quiero hacer un Caller Id y ya tengo una duda quiero que el programa me identifique las llamadas pero que a la vez no interfiera con otros programas que usan el modem tambien, entonces averiguando me entere de que esta es la solucion http://msdn.microsoft.com/en-us/library/aa920113.aspx la cuestion es que no tengo idea de como implementarlo, si alguien me pudiese ayudar con informacion...

Yo tengo uno ya terminado y funcionando en VB 6 usando el componente MSComm, que lo que hago en realidad es abrir el puerto COM y pasar un comando AT al modem y este me responde OK o ERROR, pero ya con esta api o funcion me pierdo asi que alguien que me guie...

GRacias
#266
Desarrollo Web / Problema con imagen !!
21 Noviembre 2012, 00:27 AM
Amigos tengo una imagen con todas las banderas y queria saber si es posible sacar con codigo CSS o de algun modo una bandera especifica para mostrarla en un menu..

Como un icono

Salu2
#267
GRacias la ayuda
#268
Programación C/C++ / Modificando source code ??
6 Noviembre 2012, 00:36 AM
Holas por aca amigos pues tengo una gran problematica y es que necesito entender la parte del programa donde dice como "Compartir el Modem con otros programas", asi dicho programa entra como en un estado de Monitor y no trabaja directamente con el puerto COM donde esta el MODEM...

Este es el programa, no entiendo nada de C++ ni C pero si pudieran brindarme algo de ayuda, algun norte les estaria inmensamente agradecidos.....

http://sunflowerhead.com/software/yac/yac-0.16-src-win32.zip

Gracias nuevamente
#269
Amigos estoy buscando informacion sobre el uso de esta Api que se usa para desconectar un puerto X de algún usuario que se haya conectado usando las conexiones entrantes..

Quizas algun proyecto ya echo estaria muy bien para poder verlo en funcionamiento y adaptarlo
#270
Holas chikos(as) pues eso el comando "netsh" del Seven le añadieron la opcion de desconectar a los usuarios PPP que esten conectados como se ve en esta pagina http://www.colorconsole.de/cmd/es/Windows_7/netsh/ras/set/client.htm

En el XP no tengo esa posibilidad con ese comando si alguien conoce alguna otra forma se los voy agradecer...