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 - el_doctor

#1
Hola estoy creando un componente (biblioteca de clase) en el que tenga dos métodos uno para consultar y otro para insertar datos en una tabla; cómo puedo conectar desde el componente a la base de datos y realizar estas acciones; es una base de datos sql server.
#2
hola alguien que haya utilizado controles DevExpress específicamente ASPxGridView y ComboBox; he agregado un WebUserControl que es dónde estoy creando la vista.
A continuación dejo el diseño de la vista:
http://fotos.subefotos.com/1c4b51878348003215b1ee91b3d263f9o.png

El problema que tengo es que el ComboBox no se como poner el source para ese control en la gridview; dejo el código diseño y .cs del WebUserControl.

Código (asp) [Seleccionar]

<dx:ASPxGridView ID="GridViewTransaction" runat="server" AutoGenerateColumns="false" OnCellEditorInitialize="GridViewTransaction_CellEditorInitialize" onini>
       <Columns>
           <dx:GridViewDataColumn FieldName="OidCCOrigin" Visible="false"></dx:GridViewDataColumn>
           <dx:GridViewDataColumn FieldName="CenterCostOrigin" Caption="Centro de Costo"></dx:GridViewDataColumn>
           <dx:GridViewDataColumn FieldName="OidAccount" Visible="false"></dx:GridViewDataColumn>
           <dx:GridViewDataColumn FieldName="Account" Caption="Cuenta"></dx:GridViewDataColumn>
           <dx:GridViewDataDateColumn FieldName="DateTransaction" Caption="Fecha Transacción"></dx:GridViewDataDateColumn>
           <dx:GridViewDataColumn FieldName="Amount" Caption="Cantidad"></dx:GridViewDataColumn>
           <dx:GridViewDataColumn FieldName="UnitPrice" Caption="Precio Unitario"></dx:GridViewDataColumn>
           <dx:GridViewDataColumn FieldName="Total" Caption="Total"></dx:GridViewDataColumn>
           <dx:GridViewDataTextColumn Caption="Centro Costo Destino">
               <DataItemTemplate>
                   <dx:ASPxComboBox ID="cmbCCDestination" runat="server" ValueType="System.Guid" ValueField="Oid"></dx:ASPxComboBox>
               </DataItemTemplate>
           </dx:GridViewDataTextColumn>
           
       </Columns>
   </dx:ASPxGridView>


El source de la grid lo paso de forma dinámica con el botón buscar ya que no quiero que se cargue al iniciar el control web por tanto de paso el source en el clic de buscar.

Código (csharp) [Seleccionar]

protected void searchTransaction_Click(object sender, EventArgs e)
{


if (ReferenceEquals(cmbCC.Value, null) &&
ReferenceEquals(cmbCta.Value, null) &&
ReferenceEquals(cmbPeriod.Value, null))
{
GridViewTransaction.DataSource = this._objectSpace.GetObjects<CostCenter.Module.BusinessObjects.Transaction>()
.Select(s =>
new
{
OidCCOrigin = s.CenterCost.Oid,
CenterCostOrigin = s.CenterCost.Name,
OidAccount = s.Account.Oid,
Account = s.Account.Description,
DateTransaction = s.TransactionDate,
Amount = s.Qty,
UnitPrice = s.UnitPrice,
Total = s.Total
}).OrderBy(o => o.DateTransaction);

GridViewTransaction.DataBind();
}
}
#3
¿Es posible autenticarse de forma automática en un sitio que usa autenticación basada en formularios? Poder enviar mediante un post un usuario y contraseña un membership ya configurado en la base de datos y que estén estáticos en el web.config del sitio externo para ingresar.
#4
Hola quiero configurar el servicio DHCP en windows server 2012 para conectar equipos de a internet y compartir archivos conectados a un switch el equipo con windows server tiene 3 tarjetas de red una se va usar para conectar al modem del proveedor de servicio de internet y la otra para conectar al switch según la documentación a internet es necesario crear un enrutamiento y acceso remoto NAT y configurar el DHCP pero no me funcionó.
para el dhcp puse el rango de ip 10.1.2.1 - 10.1.2.254 pero las dos tarjetas las tengo con ip dinámicas no se si hay que configurar las tarjetas con ip estáticas el modem el rango que maneja es 192.168.1.1 en adelante. Alguien sabe o tiene información de cómo hacer esto?
#5
Redes / Compartir dos conexiones a internet
20 Marzo 2015, 16:51 PM
Hola tengo una consulta ¿es posible compartir en dos redes distintas la conexión de internet de otra red?
Tengo dos redes un servidor windows server y cada una con su propia conexión a internet lo que quiero hacer es primero crear un enlace que permita compartir entre las dos redes algo así como una vpn pero no se si se puede hacer esto sin usar vpn; y lo otro es poder compartir el internet de un red a otra en caso de fallo; esto es porque cada conexión a internet es de un proveedor distinto y por veces falla uno y lo que quiero es que en caso que una red no tenga conexión a internet compartir la conexión de la otra mientras se restablece la conexión.
#6
Hola tengo una consulta, he hecho una aplicación que adelanta de forma dinámica la hora al sistema mediante un bucle voy aumentando ya sean segundos, minutos u horas para ello importo la biblioteca kernel32. Ahora mi pregunta es si para el sistema operativo traerá alguna repercusión ejecutar mi aplicación digamos que cada segundo adelante 30 segundos y esté así por 3 minutos? o no representaría ningún problema.
#7
hola a todos espero haya alguien que pueda orientarme, quiero hacer una aplicación que permita detectar el malware que se ejecuta con el tiempo usando como parámetro la hora del sistema; ¿es esto posible? ¿qué documentación me recomiendan leer?; mi idea es hacer un simulador que permita aumentar rápidamente la hora del sistema pero pienso que esto activaría el malware y no es lo que buscaría sino saber que proceso ejecuta una acción al avanzar el tiempo pues es una idea.

#8
Hola no sabía si poner este tema aquí, bueno se sabe que hay ciertos malware que se ejecutan en un tiempo determinado y para esto se valen de la hora del sistema; quiero hacer una aplicación que me permita simular el avanzar rápidamente la hora del sistema sin alterar dicha hora para poder así hacer que el malware se active y poderle detectar no se si esto es posible si alguien tiene una idea y me pueda orientar que documentación puedo referirme.
#9
Dudas Generales / Archivos extensión rsl
17 Febrero 2015, 16:23 PM
Buenas pongo aquí este tema porque no se dónde publicar el tema. Estoy seguro que me pueden dar una buena orientación.
Alguien a trabajado alguna vez con archivos con extensión "rsl" tengo entendido que es un tipo de script; pero realmente no se mucho y no he encontrado mucha información de ese tipo de archivo. Lo que quiero es poder ejecutar esos script.
#10
Hola a todos, no se alguien ya habrá hecho antes esto y me puede ayudar; quiero certificar un archivo de infopath desde mi programa en C#, lo hago pero usando signtool y ejecutándolo desde el cmd; pero quiero poder hacerlo sin usar signtool sino usando alguna biblioteca de C#. La idea es poder certificar el archivo infopath usando un certificado que tengo instalado en el ordenador. La certificación usando signtool la tengo así:

Código (csharp) [Seleccionar]

public static void InstallCertFile(string filePath)
       {
         
           var signtool = Path.Combine(System.IO.Directory.GetCurrentDirectory(), "signtool.exe");

           var cert = Path.Combine(System.IO.Directory.GetCurrentDirectory(), "Archivo.pfx");

           var argument = string.Format(@"sign /f ""{0}"" /p pass_certificado ""{1}""", cert, filePath);
                     
           var process = new Process();
           
           process.StartInfo.FileName = signtool;
           
           process.StartInfo.Arguments = argument;
           
           process.Start();

           verifyCert(filePath);
       }
#11
Hola no se si ya está este tema; bueno todavía me resulta difícil trabajar con este tipo de variable, cómo podría remover los primeros 4 caracteres de un tipo TCHAR.
#12
Hola, alguien sabe de una función que sea equivalente a la función QueryFullProcessImageName pero que su requerimientos mínimos para el sistema sea windows XP ya que esta función no es soportada en windows XP.
Buscando en la documentación de Microsoft encontré la función GetProcessImageFileName pero el problema es la forma en que retorna el path ya que esta función lo retorna en forma de dispositivo no en forma de unidad. Por ejemplo para el proceso del explorer la función QueryFullProcessImageName el retorno es: "C:\\Windows\\explorer.exe"; en cambio la función GetProcessImageFileName lo retorna de la forma: "\\Device\\HarddiskVolume2\\Windows\\explorer.exe" y de esta forma no me sirve.
Y el problema que necesito que la función como parámetro le envíe un process handle
#13
puedo usar la función GetFileInformationByHandle para obtener el espacio usado por un archivo especifico HANDLE hFile en la documentación de oficial de Microsoft el puntero que retorna de BY_HANDLE_FILE_INFORMATION  no hay una propiedad igual que en FILE_STANDARD_INFO -> AllocationSize que es el valor que necesito y la cuestión es que esta función la quiero ejecutar en Windows XP por eso no puedo usar GetFileInformationByHandleEx es posible usar GetFileInformationByHandle y obtener el mismo valor?
#14
Bases de Datos / Error al iniciar servicio SQL Server
28 Septiembre 2013, 07:07 AM
Saludos, les agradecería si alguien me puede ayudar a solucionar mi problema, hace unos meses instalé Microsoft SQL Server en una computadora con Windows 7 cree la base de datos, usuarios, etc. Todo funcionaba bien, pero de un día para otro ya no funciona y es porque no se inicia el servicio de Sql Server, está puesto que el servicio se inicia de forma automática pero al darle iniciar me muestra los siguientes mensajes de error:

Se produjo el error 1722 - (El Servidor RPC no está disponible.) al realizar esta operación de servicio en el servicio MSSQLServer

El servidor RPC no está disponible

alguien me puede decir como solucionarlo para hacer funcionar el servicio de Sql otra vez.
#15
Saludos!!!
Necesito su ayuda quiero ejecutar una linea de comandos del cmd desde mi programa en C# la línea de comandos ya lo probé en el cmd y funciona bien pero al ejecutarlo de mi aplicación no funciona y me abre el cmd de la siguiente manera.


el código para llamar el cmd es el siguiente:
Código (csharp) [Seleccionar]
var info = new System.Diagnostics.ProcessStartInfo("CMD.exe", "/C netsh interface set interface 'Ethernet' DISABLED");

           info.Verb = "open";

           System.Diagnostics.Process.Start(info);


la instrucción que quiero usar es netsh interface set interface 'Ethernet' DISABLED
#16
Hola, existe alguna manera de desactivar las tarjetas de red desde una aplicación hecha en C++ he estado leyendo la documentación msdn y está la clase Win32_NetworkAdapter la he usado desde C# pero no me funciona no se si puedo usar esta clase en C++ y hacer que funcione o hay alguna otra forma de hacerlo desde C++.

Gracias por su ayuda
#17
Saludos, estoy intentando desactivar la tarjeta de red usando una aplicación en C# pero no se si lo he hecho bien o me falta algo ya que al ejecutar el programa no me desactiva la tarjeta de red, estoy usando la clase Win32_NetworkAdapter y mi función queda así:

Código (csharp) [Seleccionar]
private void DisableNetworkByAdapterType(string adapterType)
       {

           var query = new SelectQuery("Win32_NetworkAdapter",
                                       "NetConnectionStatus=2 and AdapterType='" + adapterType + "'");

           var searcher = new ManagementObjectSearcher(query);

           foreach (ManagementObject result in searcher.Get())
           {
               result.InvokeMethod("Disable", null);
           }
       }


nota: el parámetro adapterType yo le mando "Ethernet 802.3"
#18
Hay alguna forma de obtener el path del directorio de cada cuenta de usuario y su modificación con C# he podido obtener el sid de cada usuario pero no se como obtener el path del directorio de cada cuenta. algo así como:

User: localadmin
directory: c:\documment setting\localadmin
last day: 12/09/2013
#19
tengo dos variables una tipo DWORD y otra tipo WCHAR y quiero asignar a estas variables una variable BYTE[8] Y CHAR[16] respectivamente.
¿Cómo puedo hacer la conversión?




Bueno para convertir un CHAR[16] a WCHAR ya pude resolverlo con el método mbstowcs.

Pero sigo teniendo problemas para convertir un arreglo de byte a DWORD o no se si lo puedo convertir a WCHAR
les agradecería su ayuda.
#20
Programación General / Obtener NIC's con C#
11 Septiembre 2013, 22:18 PM
Saludos,
alguien sabe como poder obtener todas las nic del ordenador osea la ip y la mac; he estado investigando y supuestamente se puede usar la función GetAllNetworkInterfaces y según la documentación de msdn retorna un arreglo de la clase NetworkInterface y esta clase contiene las propiedades IpAddress y PhysicalAddress pero al implementarla no me aparecen dichas propiedades o es que no puedo usar esta función para lo que quiero hacer, usando la función GetAllNetworkInterfaces me queda algo así:

Código (csharp) [Seleccionar]
int i = 0;
            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();

            var nic = new Structures.Model.NIC[interfaces.Length]; //un arreglo del objeto NIC 

            foreach (var adapter in interfaces)
            {
                //nic[i].IP = ???? no se como accessar a la propiedad IpAddress

                nic[i].MAC = adapter.GetPhysicalAddress().ToString(); //este tiene fallos ya que no encontre la propiedad PhysicalAddress
                i++;
            }
#21
Saludos estoy teniendo problemas para recuperar el nombre de un proceso mediante su id debido a que no tiene acceso al hacer la consulta y quiero saber si hay alguna forma de obtener el nombre del archivo dll y su fecha de creación asociado a un servicio determinado es decir yo tengo el nombre del servicio y a partir de ahí obtener la otra información lo estoy haciendo con C# para recuperar el nombre de un proceso y su directorio tengo lo siguiente:
Código (csharp) [Seleccionar]
try
                    {
                        var localById = Process.GetProcessById(Convert.ToInt32(runxInfo.pid));

                        var info = new FileInfo(localById.MainModule.FileName);

                        runX.ProcessName = info.Name;
                        runX.FilePath = info.DirectoryName;
                    }
                    catch (Exception ex)
                    {
                        runX.ProcessName = "Error : " + ex.Message;
                    }


el problema que para ciertos procesos me da error de acceso.
#22
Saludos,
Estoy haciendo una mini aplicación en C++ que me recupere todos los servicios que cada proceso en ejecución está usando.
tengo el siguiente código para recuperar el id de los procesos en ejecución

Código (cpp) [Seleccionar]

HANDLE hProcessSnap;
HANDLE hProcess;
PROCESSENTRY32 pe32;
DWORD dwPriorityClass;

hProcessSnap=CreateToolhelp32Snapshot( TH32CS_SNAPALL, 0 );

vector<RunxInfo>* initialRunxes = new vector<RunxInfo>();
RunxInfo val;

if(hProcessSnap == INVALID_HANDLE_VALUE)
{
return NULL;
}

pe32.dwSize = sizeof(PROCESSENTRY32);

if(!Process32First(hProcessSnap, &pe32))
{
CloseHandle(hProcessSnap);
return NULL;
}

do
{
dwPriorityClass = 0;
hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID);

if(hProcess == NULL)
{
return NULL;
}
else
{
dwPriorityClass = GetPriorityClass(hProcess);
if(!dwPriorityClass)
{
return NULL;
}
CloseHandle(hProcess);
}

val.pid = pe32.th32ProcessID;
               
                //implementar la recuperación de todos los servicios utilizados por el proceso con el Id seleccionado.

}while( Process32Next( hProcessSnap, &pe32 ) );



les agradecería me puedan ayudar

#23
Saludos estoy haciendo un proceso que me recupere los procesos que están usando una conexión TCP/IP leyendo la documentación MSDN esta función devuelve los datos que necesito pero tengo dudas con el primer parámetro de salida que es donde se recupera la tabla de la estructura con los datos, según la documentación MSDN la sintaxis de la función es la siguiente:

Código (cpp) [Seleccionar]
DWORD GetExtendedTcpTable(
 _Out_    PVOID pTcpTable,
 _Inout_  PDWORD pdwSize,
 _In_     BOOL bOrder,
 _In_     ULONG ulAf,
 _In_     TCP_TABLE_CLASS TableClass,
 _In_     ULONG Reserved
);


el problema que tengo es con el parámetro pTcpTable según entiendo debe ser una estructura de datos que ya existe en "tcpmib.h" pero no se como usar estas estructuras y como recuperaría los datos que envía la función en esta variable.

la función la he definido de la siguiente manera:

Código (cpp) [Seleccionar]
DWORD size;
DWORD dwResult;


dwResult = GetExtendedTcpTable( , size, false, AF_INET, TCP_TABLE_OWNER_PID_ALL, 0);


les agradecería me ayudaran en comprender mejor para usar esta función




Una aclaración la variable size no le he asignado ningún valor porque igual como no se que estructura es pTcpTable no puedo darle un valor.

Código (cpp) [Seleccionar]

size = sizeof (PVOID)
//no se que estructura corresponde pTcpTable el tipo lo pone como PVOID
#24
Programación C/C++ / Asignar valores a un vector
3 Septiembre 2013, 18:46 PM
Saludos quiero  probar si un vector me devuelve bien los datos antes de programar los datos que va recibir el constructor tengo un contructor en una biblioteca que he creado llamada NetXh.h y la forma del constructor es:
struct NetxInfo
{
public:
   ULONG pid;
   WCHAR filename[MAX_PATH];
   WCHAR pathname[MAX_PATH];

   WCHAR protocol[10];
   WCHAR state [MAX_PATH];
   WCHAR srcip[MAX_PATH];
   WCHAR destip[MAX_PATH];
};

ahora bien donde incluyo el archivo Netxh.h creo un vector:

vector<NetxInfo>* initialNetxes = new vector<NetxInfo>();

quiero agregarle valores (basura) sólo para probar si la función que me va devolver este vector funciona bien.

como puedo agregarle valores de forma estática




no se si lo puedo hacer de la forma:
initialNetxes[0].pid = <dato>;
initialNetxes[0].filename = <dato>;
.
.
.
initialNetex[0].destip = <dato>;
para todo el vector que contiene la estructura NetxInfo
#25
Hola, espero me puedan ayudar necesito hacer una mini aplicación en C++ que me muestre todos los procesos que están activos en windows y los servicios que usa cada proceso algo así como lo que hace el process explorer según he investigado la forma de poder lograrlo es por el WMI pero no he podido encontrar mucha información encontré un código en C++ donde hacen la conexión COM y verifican el nombre de la computadora no se si alguien me puede decir si este código me sirve y que líneas puedo agregar para que me consulte los procesos y los servicios asociados a cada proceso.


#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <comdef.h>
#include <Wbemidl.h>

# pragma comment(lib, "wbemuuid.lib")

int main(int argc, char **argv)
{
    HRESULT hres;

    // Step 1: --------------------------------------------------
    // Initialize COM. ------------------------------------------

    hres =  CoInitializeEx(0, COINIT_MULTITHREADED);
    if (FAILED(hres))
    {
        cout << "Failed to initialize COM library. Error code = 0x"
            << hex << hres << endl;
        return 1;                  // Program has failed.
    }

    // Step 2: --------------------------------------------------
    // Set general COM security levels --------------------------
    // Note: If you are using Windows 2000, you need to specify -
    // the default authentication credentials for a user by using
    // a SOLE_AUTHENTICATION_LIST structure in the pAuthList ----
    // parameter of CoInitializeSecurity ------------------------

    hres =  CoInitializeSecurity(
        NULL,
        -1,                          // COM authentication
        NULL,                        // Authentication services
        NULL,                        // Reserved
        RPC_C_AUTHN_LEVEL_DEFAULT,   // Default authentication
        RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation 
        NULL,                        // Authentication info
        EOAC_NONE,                   // Additional capabilities
        NULL                         // Reserved
        );

                     
    if (FAILED(hres))
    {
        cout << "Failed to initialize security. Error code = 0x"
            << hex << hres << endl;
        CoUninitialize();
        return 1;                    // Program has failed.
    }
   
    // Step 3: ---------------------------------------------------
    // Obtain the initial locator to WMI -------------------------

    IWbemLocator *pLoc = NULL;

    hres = CoCreateInstance(
        CLSID_WbemLocator,             
        0,
        CLSCTX_INPROC_SERVER,
        IID_IWbemLocator, (LPVOID *) &pLoc);

    if (FAILED(hres))
    {
        cout << "Failed to create IWbemLocator object."
            << " Err code = 0x"
            << hex << hres << endl;
        CoUninitialize();
        return 1;                 // Program has failed.
    }

    // Step 4: -----------------------------------------------------
    // Connect to WMI through the IWbemLocator::ConnectServer method

    IWbemServices *pSvc = NULL;

    // Connect to the root\cimv2 namespace with
    // the current user and obtain pointer pSvc
    // to make IWbemServices calls.
    hres = pLoc->ConnectServer(
         _bstr_t(L"ROOT\\CIMV2"), // Object path of WMI namespace
         NULL,                    // User name. NULL = current user
         NULL,                    // User password. NULL = current
         0,                       // Locale. NULL indicates current
         NULL,                    // Security flags.
         0,                       // Authority (for example, Kerberos)
         0,                       // Context object
         &pSvc                    // pointer to IWbemServices proxy
         );
   
    if (FAILED(hres))
    {
        cout << "Could not connect. Error code = 0x"
             << hex << hres << endl;
        pLoc->Release();     
        CoUninitialize();
        return 1;                // Program has failed.
    }

    cout << "Connected to ROOT\\CIMV2 WMI namespace" << endl;


    // Step 5: --------------------------------------------------
    // Set security levels on the proxy -------------------------

    hres = CoSetProxyBlanket(
       pSvc,                        // Indicates the proxy to set
       RPC_C_AUTHN_WINNT,           // RPC_C_AUTHN_xxx
       RPC_C_AUTHZ_NONE,            // RPC_C_AUTHZ_xxx
       NULL,                        // Server principal name
       RPC_C_AUTHN_LEVEL_CALL,      // RPC_C_AUTHN_LEVEL_xxx
       RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
       NULL,                        // client identity
       EOAC_NONE                    // proxy capabilities
    );

    if (FAILED(hres))
    {
        cout << "Could not set proxy blanket. Error code = 0x"
            << hex << hres << endl;
        pSvc->Release();
        pLoc->Release();     
        CoUninitialize();
        return 1;               // Program has failed.
    }

    // Step 6: --------------------------------------------------
    // Use the IWbemServices pointer to make requests of WMI ----

    // For example, get the name of the operating system
    IEnumWbemClassObject* pEnumerator = NULL;
    hres = pSvc->ExecQuery(
        bstr_t("WQL"),
        bstr_t("SELECT * FROM Win32_OperatingSystem"),
        WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
        NULL,
        &pEnumerator);
   
    if (FAILED(hres))
    {
        cout << "Query for operating system name failed."
            << " Error code = 0x"
            << hex << hres << endl;
        pSvc->Release();
        pLoc->Release();
        CoUninitialize();
        return 1;               // Program has failed.
    }

    // Step 7: -------------------------------------------------
    // Get the data from the query in step 6 -------------------

    IWbemClassObject *pclsObj;
    ULONG uReturn = 0;
   
    while (pEnumerator)
    {
        HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
            &pclsObj, &uReturn);

        if(0 == uReturn)
        {
            break;
        }

        VARIANT vtProp;

        // Get the value of the Name property
        hr = pclsObj->Get(L"Name", 0, &vtProp, 0, 0);
        wcout << " OS Name : " << vtProp.bstrVal << endl;
        VariantClear(&vtProp);

        pclsObj->Release();
    }

    // Cleanup
    // ========
   
    pSvc->Release();
    pLoc->Release();
    pEnumerator->Release();
    pclsObj->Release();
    CoUninitialize();

    return 0;   // Program successfully completed.

}