none
WinLockDll RRS feed

  • Pregunta

  • Hola, que tengan un excelente dia.

    Bueno he estado trabajando con la dll WinLockDll en VS2010 bajo una platarforma x86

    Y no tengo problemas; el detalle es que ahora lo necito trabajar bajo AnyCPU

     

    Pero obtengo la siguiente excepción:


    Me podrían orientar a corregir el problema para trabajar bajo AnyCPU

    jueves, 7 de julio de 2016 18:55

Respuestas

  • ahh pero entonces si es una libreria de c++ porque usas el atributo DllImport

    en ese caso al dll deberias ubicarla en la carpeta c:\windows\system32 para que pueda ser encontrada

    no funciona si esta dll la ubicas en el \debug eso solo aplcia con dll de .net, al usas el dllinport esta claro que es una libreria no manejada

    tambien cambia la compilacion a x86

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 8 de julio de 2016 2:51

Todas las respuestas

  • Hola L - J - R

    Fíajte si todos los otros componentes de tu solución también estan compilando en any cpu y no  x86 , si hay algún otro windowslibrary

    que esté llamando a estas clases o entre si compilen también en any cpu

    Fíjate también que este ddl sea de la versión que requieres x86, x64


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.
    Saludos.
    Lima-Perú




    jueves, 7 de julio de 2016 19:12
  • Gracias Augusto ya estube revisabdo las demas librerias y ya todas compilan en AnyCPU de hecho si comonto toda la clase WinLockDll no tengo problemas de compilacion. Por la version de la libreria para x86, x64, ya he estado buscando y siempre logro descargar la misma (aki un link de la version que uso) conoceras algun lugar donde pueda buscar alternativas de version


    jueves, 7 de julio de 2016 20:39
  • Hola.

    -->de hecho si comonto toda la clase WinLockDll no tengo problemas de compilacion. 

    No entendí bien esto puedes postear el código de como lo estas haciendo?

    -->Por la version de la libreria para x86, x64, ya he estado buscando y siempre logro descargar la misma (aki un link de la version que uso) conoceras algun lugar donde pueda buscar alternativas de version

    Encontré esto en la web ,espero ayude

    http://www.codeproject.com/Articles/7392/Lock-Windows-Desktop


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.
    Saludos.
    Lima-Perú

    jueves, 7 de julio de 2016 21:00
  • Tengo una clase "x" donde coloco lo siguiente:

            //Administrador de Tareas
            [DllImport("WinLockDll.dll")]
            public static extern int TaskManager_Enable_Disable(bool bEnableDisable);
    
            //Boton Inicio Windows
            [DllImport("WinLockDll.dll")]
            public static extern int TaskSwitching_Enable_Disable(bool bEnableDisable);
    
            //Barra de Tareas
            [DllImport("WinLockDll.dll")]
            public static extern int Taskbar_Show_Hide(bool bShowHide);
    
            //Icono Inicio Windows
            [DllImport("WinLockDll.dll")]
            public static extern int StartButton_Show_Hide(bool bShowHide);

    Posteriormente mando a traer los eventos de la siguente forma:

                miClaseX.TaskManager_Enable_Disable(false);
                miClaseX.TaskSwitching_Enable_Disable(false);
                miClaseX.Taskbar_Show_Hide(false);

    y es ahi donde me genera la excepcion.

    Del link que me envias, si ya lo habia revisado anteriorme, de echo de ahi me base para la programacion anterior cuando lo tenia a x86


    jueves, 7 de julio de 2016 21:12
  • hola

    que funcionalidad quieres implementar ? porque pueden existir otras alternativas

    entiendo que no es una dll creada con .net, pero puede validar si es una libreria COM o quizas C++ ?

    como usas la libreria? agregas una referencia o defines el [DllImport]

    si es una de estas ultimas dos opciones entonces tendrias que compilar en 32bits, por eso cambia los proyecto para que compiles en x86

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 7 de julio de 2016 21:16
  • Hola Leandro.

    Lo que deseo hacer es desahabilitar y habilitar la barrade tareas de windows segun un inicio de sesion por tipo de usuario de un sistema.

    En efecto no es una libreria en .net, y no logro visualizar codigo de la dll, al "abrirla" con VS210 lo unico que me muestra son las propiedades de la libreria

    Y si utilizo un [DllImport] para trabajar sobre ella.

    jueves, 7 de julio de 2016 21:27
  • hola

    >>En efecto no es una libreria en .net,

    cuando agregas la dll como referencia si vas a la carpeta \bin\Debug puede observar que lleva nombre de Interop ?

    >>Y si utilizo un [DllImport] para trabajar sobre ella.

    este atributo solo aplica si es una libreria creada en c++


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 7 de julio de 2016 21:44
  • Asi lo tengo guardado en ...\Debug

    jueves, 7 de julio de 2016 21:56
  • ahh pero entonces si es una libreria de c++ porque usas el atributo DllImport

    en ese caso al dll deberias ubicarla en la carpeta c:\windows\system32 para que pueda ser encontrada

    no funciona si esta dll la ubicas en el \debug eso solo aplcia con dll de .net, al usas el dllinport esta claro que es una libreria no manejada

    tambien cambia la compilacion a x86

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 8 de julio de 2016 2:51