Hola: Alguien sabe como puedo ejecutar un programa de la siguiente manera: -Que al iniciar Windows se ejecute automáticamente(No creo tener problemas con esto). -Que una vez ejecutado el programa se sobreponga a Windows y no permita al usuario hacer algo que no sea la funcionalidad del mismo (que windows esté bloqueado completamente al usuario). -Que haya un escape a windows con password (para el programador).
-El código que se tenga que escribir que sea en Visual Básic.
Ok, en VB tendrías una opción para ello realmente simple, un formulario topMost que se sobreponga a todos y cubra la pantalla completa... ese formulario al ser topMost no puede ser cubierto por nadie más... No sin antes, te advierto que para Windows 9x, deberás remover la aplicación del Ctrl+Alt+Sup (sino, no hay chiste!... Para ello usas este código: '-------------- Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long Public Declare Function GetCurrentProcess Lib "kernel32" () As Long Public Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long Public Const RSP_SIMPLE_SERVICE = 1 Public Const RSP_UNREGISTER_SERVICE = 0 'para remover una aplicacion del Ctrl+Alt+Sup, debes llamar a MakeMeService: Public Sub RemoveProgramFromList() Dim lngProcessID As Long Dim lngReturn As Long lngProcessID = GetCurrentProcessId() lngReturn = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE) End Sub 'para restaurar esa aplicación en el Ctrl+Alt+Delete Public Sub AddProgramToList() Dim lngProcessID As Long Dim lngReturn As Long lngProcessID = GetCurrentProcessId() lngReturn = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE) End Sub '------ Posteriormente, debes leer la configuración de pantalla, para hacer a tu form más grande que tu área de pantalla... '---- Public Type Window_Area Left As Long Top As Long Right As Long Bottom As Long Left_Twip As Long Top_Twip As Long Right_Twip As Long Bottom_Twip As Long Area_Width As Long Area_Height As Long Area_Width_Twip As Long Area_Height_Twip As Long End Type Public Function GetSystemArea() As Window_Area Dim rc As RECT Dim twipsx As Long Dim twipsy As Long twipsx = Screen.TwipsPerPixelX twipsy = Screen.TwipsPerPixelY Call SystemParametersInfo(SPI_GETWORKAREA, 0&, rc, 0&) With GetSystemArea .Bottom = rc.Bottom .Bottom_Twip = rc.Bottom * twipsy .Right = rc.Right .Right_Twip = rc.Right * twipsx .Left = rc.Left .Left_Twip = rc.Left * twipsx .Top = rc.Top .Top_Twip = rc.Top * twipsy .Area_Height = .Bottom - .Top .Area_Width = .Right - .Left .Area_Height_Twip = .Area_Height * twipsy .Area_Width_Twip = .Area_Width * twipsx End With End Function '----- Con esos valores... puedes llamar a la API para que muestre y redimensione el formulario que necesitas para "tapar" el Windows... '----- 'la API, llamada SetWindowPos es asi Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long '*-- Call SetWindowPos(frm.hwnd, i, t, l, w, h, Modo) Ojo: El valor para i en tu caso es: Public Const HWND_TOPMOST = -1 T y l son los respectivos tope y left. W y h son tu ancho y largo del form Y modo para tu caso sería una combinación así: Public Const Modo = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW ¿Cualquier cosa, no he revisado muy bien el código, así que me avisas ante cualquier error y corrijo... ok? Suerte con tu aplicación... '---- 'Puedes encontrar bastaste ayuda sobre la API en la MSDN
Excelente no pensé que me contestaran tan pronto, que bueno que hay gente como tú que saben y comparten sus conocimientos, yo también me dí de alta como experto y en la medida de mis posibilidades contesto preguntas, espero llegar a ser un gran experto y también ayudar a los demás.