Solo una sugerencia, para ahorrarte muuuchas lineas de codigo, y errores de copy/paste... ARRAYS
Si tienes que hacer una tarea varias veces, piensa en un bucle FOR y un Array para hacerlo.
Por ejemplo, me he tomado la libertad de modificar tu codigo, para que la comprobacion de las respuestas se haga en un bucle. Para hacerlo en la creacion de los controles he creado un nuevo elemento en el Array que guarda la respuesta correcta.
Código: Seleccionar todo
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <UpDownConstants.au3>
#include <EditConstants.au3>
;#include <WorD).au3>
GUICreate("Examen de EL TECLADO", 1015, 705, 1, 1)
$lTitulo = GUICtrlCreateLabel("Examen de EL TECLADO", 400, 5, 600, 25)
GUICtrlSetFont(-1, 16, 400, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
Global $resul1, $resul2, $resul3, $resul4, $resul5, $resul6, $resul7, $resul8, $resul9, $resul10, $resul11, $resul12, $resul13, $resul14, $resul15
Global $resul16, $resul17, $resul18, $resul19, $resul20, $resul21, $resul22, $resul23, $resul24, $resul25, $resul26, $resul27, $resul28, $resul29, $resul30
Global $letra1, $letra2, $letra3, $letra4, $letra5, $letra6, $letra7, $letra8, $letra9, $letra10, $letra11, $letra12, $letra13, $letra14, $letra15
Global $letra16, $letra17, $letra18, $letra19, $letra20, $letra21, $letra22, $letra23, $letra24, $letra25, $letra26, $letra27, $letra28, $letra29, $letra30
Global $aviso, $nombre, $fecha, $titulo, $horario, $ttlselec, $lselec, $lttlSelec
Global $res, $contar, $corr = "Correcto", $inco = "Incorrecto", $lTitulo, $contar = 0, $file
Global $grupIzq = 5, $grup1Ar = 100, $grupLrg = 335, $grupAlt = 150
Global $radIzq = 15, $radAr = 125, $radLrg = 315, $radAlt = 30
;Botones
$btnIngrestDat = GUICtrlCreateButton("Ingresar Datos", 830, 25, 180, 30)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
$btnComExa = GUICtrlCreateButton("Comenzar el Examen", 830, 25, 180, 30)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetState($btnComExa, $GUI_HIDE)
$btnRevisar = GUICtrlCreateButton("Revisar el Examen", 830, 25, 180, 30)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetState($btnRevisar, $GUI_HIDE)
$btnslr = GUICtrlCreateButton("Salir", 830, 60, 180, 30)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
;Informaciones
$lIngresDat = GUICtrlCreateLabel("Haga clic en el boton [ Ingresar Datos ] e ingrese sus datos", 250, 70, 550, 25)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
;GUICtrlSetState($lIngresDat,$GUI_HIDE)
$lComExa = GUICtrlCreateLabel("Haga clic en el botón [ COMENZAR EXAMEN ]", 300, 70, 500, 25)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetState($lComExa, $GUI_HIDE)
$lselecComEx = GUICtrlCreateLabel("Llene los datos y haga clic en el boton [ COMENZAR EXAMEN ]", 250, 70, 550, 25)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetState($lselecComEx, $GUI_HIDE)
$lttlSelec = GUICtrlCreateLabel("Seleccione las respuestas correctas y luego haga clic en el botón [ REVISAR EL EXAMEN ]", 190, 70, 630, 25)
GUICtrlSetFont(-1, 10, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetState($lttlSelec, $GUI_HIDE)
$lCompare = GUICtrlCreateLabel("Las correctas estan activadas y las que usted selecciono desactivadas", 230, 70, 580, 25)
GUICtrlSetFont(-1, 10, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetState($lCompare, $GUI_HIDE)
;Area de Datos
$lNombre = GUICtrlCreateLabel("Nombre: ", 10, 45, 65, 25)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
$inNombre = GUICtrlCreateInput("", 80, 45, 200, 20)
GUICtrlSetState($inNombre, $GUI_DISABLE)
$lFecha = GUICtrlCreateLabel("Fecha: ", 290, 45, 55, 25)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
$fecha = @MDAY
$mes = @MON
$ano = @YEAR
$InFecha = GUICtrlCreateInput($fecha & "/" & $mes & "/" & $ano, 348, 45, 80, 20)
GUICtrlSetState($InFecha, $GUI_DISABLE)
$dia = GUICtrlCreateCombo("", 710, 45, 100, 20)
GUICtrlSetData(-1, "Martes P.M.|Miércoles P.M.|Jueves P.M.|Viernes P.M.|Sábado A).M.|Sábado P.M.|Domingo A).M.|Domingo P.M.", "Martes P.M.")
GUICtrlSetState($dia, $GUI_DISABLE)
;$lselec = GUICtrlCreateLabel("Seleccione la respuesta correcta",370,110,350,25)
GUICtrlCreateGroup("Nivel", 435, 32, 270, 35)
$nivel1 = GUICtrlCreateRadio("1er Nivel ", 440, 45, 60, 20)
$nivel2 = GUICtrlCreateRadio("2do Nivel ", 505, 45, 62, 20)
$nivel3 = GUICtrlCreateRadio("3er Nivel ", 575, 45, 60, 20)
$nivel4 = GUICtrlCreateRadio("4to Nivel ", 640, 45, 60, 20)
GUICtrlSetState($nivel1, $GUI_CHECKED)
GUICtrlSetState($nivel1, $GUI_DISABLE)
GUICtrlSetState($nivel2, $GUI_DISABLE)
GUICtrlSetState($nivel3, $GUI_DISABLE)
GUICtrlSetState($nivel4, $GUI_DISABLE)
;Preguntas y Respuestas
Global $preg1 = "ESC (Escape)", $resp1 = "Cancela procesos y advertencias"
Global $preg2 = "TAB (Tabulación)", $resp2 = "A. Crea 5 espacios entre letras, B. Selecciona entre botones o pestañas"
Global $preg3 = "Bloq Mayus (Bloquear Mayúsculas)", $resp3 = "Activa todas las letras en mayúsculas"
Global $preg4 = "Shift", $resp4 = "A. Presionada permite escribir en mayúsculas, B. Saca el segundo símbolo de las teclas"
Global $preg5 = "Ctrl (Control)", $resp5 = "Tecla comodín, se combina con otras teclas (Ctrl + C = copiar)"
Global $preg6 = "Win (Logo de Windows)", $resp6 = "A. Abre el menú Inicio, B. Se puede combinar con teclas alfabéticas"
Global $preg7 = "Alt (Alterar)", $resp7 = "A. Activa la barra de menús en los programas, B. Se combina con otras teclas"
Global $preg8 = "Espacio (Space)", $resp8 = "A. Crea un espacio entre letras, B. Activa o desactiva cuadros de chequeo"
Global $preg9 = "Alt Gr (Alterar Gr)", $resp9 = "Saca el tercer símbolo de las teclas"
Global $preg10 = "Menú Contextual", $resp10 = "Abre un menú igual que el botón derecho del ratón"
Global $preg11 = "Enter o Intro (Entrar)", $resp11 = "A. Ejecuta lo seleccionado, B. Crea una nueva línea en el texto"
Global $preg12 = "Back Space (Retroceso)", $resp12 = "Borra los caracteres ubicados a la izquierda del puntero"
Global $preg13 = "F2", $resp13 = "Para renombrar los archivos seleccionados"
Global $preg14 = "Imp Pant (Imprimir Pantalla)", $resp14 = "Crea una copia exacta de lo que hay en la pantalla"
Global $preg15 = "Sup o Del (Suprimir)", $resp15 = "A. Elimina los archivos seleccionados, B. Borra los caracteres ubicados a la derecha del puntero"
Global $preg16 = "Ini (Inicio)", $resp16 = "Nos lleva al comienzo de la página"
Global $preg17 = "End (Fin)", $resp17 = "Nos lleva al final de la página"
Global $preg18 = "Re Pag (Página Arriba)", $resp18 = "Nos lleva a la página anterior"
Global $preg19 = "Av Pag (Página Abajo)", $resp19 = "Nos lleva a la siguiente página"
Global $preg20 = "Bloq Num (Bloqueo Numérico)", $resp20 = "Activa o desactiva el teclado numérico"
Global $preg21 = "/ (Pleca)", $resp21 = "Operador matemático de División"
Global $preg22 = "* (Asterisco)", $resp22 = "Operador matemático de multiplicación"
Global $preg23 = "- (Guión)", $resp23 = "Operador matemático de Resta"
Global $preg24 = "+ (Cruz)", $resp24 = "Operador matemático de Suma"
Global $preg25 = "F6", $resp25 = "Activa la barra de direcciones"
Global $preg26 = "Alt + F4", $resp26 = "Cierra las ventanas abiertas"
Global $preg27 = "F1", $resp27 = "Abre una ventana de ayuda o barra de ayuda"
Global $preg28 = "Alt + Tab", $resp28 = "Selecciona entre las ventanas abiertas"
Global $preg29 = "Ctrl + Alt + Sup", $resp29 = "Ejecuta el administrador de tareas de Windows"
Global $preg30 = "Logo de Windows + R", $resp30 = "Inicia el ejecutor de comandos"
GUICtrlCreateTab(1, 75, 1014, 630)
Dim $opc[30][5]
Dim $ar_LetraResp [12]
GUICtrlCreateTabItem("PAGINA 1")
;Pregunta 1
$ttlpreg1 = GUICtrlCreateGroup("1. " & $preg1, $grupIzq, $grup1Ar, $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[0][0] = GUICtrlCreateRadio("A). " & $resp1, $radIzq, $radAr, $radLrg, $radAlt, $BS_MULTILINE)
$opc[0][1] = GUICtrlCreateRadio("B). " & $resp8, $radIzq, $radAr + 30, $radLrg, $radAlt, $BS_MULTILINE)
$opc[0][2] = GUICtrlCreateRadio("C). " & $resp15, $radIzq, $radAr + (30 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[0][3] = GUICtrlCreateRadio("D). " & $resp22, $radIzq, $radAr + (30 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[0][4] = 0 ; Respuesta correcta
;Pregunta 2
$ttlpreg2 = GUICtrlCreateGroup("2. " & $preg8, $grupIzq + 335, $grup1Ar, $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[1][0] = GUICtrlCreateRadio("A). " & $resp29, $radIzq + 335, $radAr, $radLrg, $radAlt, $BS_MULTILINE)
$opc[1][1] = GUICtrlCreateRadio("B). " & $resp6, $radIzq + 335, $radAr + 30, $radLrg, $radAlt, $BS_MULTILINE)
$opc[1][2] = GUICtrlCreateRadio("C). " & $resp8, $radIzq + 335, $radAr + (30 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[1][3] = GUICtrlCreateRadio("D). " & $resp13, $radIzq + 335, $radAr + (30 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[1][4] = 2 ; Respuesta correcta
;Pregunta 3
$ttlpreg3 = GUICtrlCreateGroup("3. " & $preg15, $grupIzq + (335 * 2), $grup1Ar, $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[2][0] = GUICtrlCreateRadio("A). " & $resp15, $radIzq + (335 * 2), $radAr, $radLrg, $radAlt, $BS_MULTILINE)
$opc[2][1] = GUICtrlCreateRadio("B). " & $resp20, $radIzq + (335 * 2), $radAr + 30, $radLrg, $radAlt, $BS_MULTILINE)
$opc[2][2] = GUICtrlCreateRadio("C). " & $resp27, $radIzq + (335 * 2), $radAr + (30 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[2][3] = GUICtrlCreateRadio("D). " & $resp4, $radIzq + (335 * 2), $radAr + (30 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[2][4] = 0 ; Respuesta correcta
;Pregunta 4
$ttlpreg4 = GUICtrlCreateGroup("4. " & $preg22, $grupIzq, $grup1Ar + 150, $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[3][0] = GUICtrlCreateRadio("A). " & $resp11, $radIzq, $radAr + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[3][1] = GUICtrlCreateRadio("B). " & $resp22, $radIzq, $radAr + 30 + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[3][2] = GUICtrlCreateRadio("C). " & $resp18, $radIzq, $radAr + (30 * 2) + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[3][3] = GUICtrlCreateRadio("D). " & $resp25, $radIzq, $radAr + (30 * 3) + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[3][4] = 1 ; Respuesta correcta
;Pregunta 5
$ttlpreg5 = GUICtrlCreateGroup("5. " & $preg29, $grupIzq + 335, $grup1Ar + 150, $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[4][0] = GUICtrlCreateRadio("A). " & $resp29, $radIzq + 335, $radAr + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[4][1] = GUICtrlCreateRadio("B). " & $resp2, $radIzq + 335, $radAr + 30 + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[4][2] = GUICtrlCreateRadio("C). " & $resp9, $radIzq + 335, $radAr + (30 * 2) + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[4][3] = GUICtrlCreateRadio("D). " & $resp16, $radIzq + 335, $radAr + (30 * 3) + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[4][4] = 0 ; Respuesta correcta
;Pregunta 6
$ttlpreg6 = GUICtrlCreateGroup("6. " & $preg6, $grupIzq + (335 * 2), $grup1Ar + 150, $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[5][0] = GUICtrlCreateRadio("A). " & $resp23, $radIzq + (335 * 2), $radAr + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[5][1] = GUICtrlCreateRadio("B). " & $resp30, $radIzq + (335 * 2), $radAr + 30 + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[5][2] = GUICtrlCreateRadio("C). " & $resp6, $radIzq + (335 * 2), $radAr + (30 * 2) + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[5][3] = GUICtrlCreateRadio("D). " & $resp1, $radIzq + (335 * 2), $radAr + (30 * 3) + 150, $radLrg, $radAlt, $BS_MULTILINE)
$opc[5][4] = 2 ; Respuesta correcta
;Pregunta 7
$ttlpreg7 = GUICtrlCreateGroup("7. " & $preg13, $grupIzq, $grup1Ar + (150 * 2), $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[6][0] = GUICtrlCreateRadio("A). " & $resp8, $radIzq, $radAr + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[6][1] = GUICtrlCreateRadio("B). " & $resp15, $radIzq, $radAr + 30 + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[6][2] = GUICtrlCreateRadio("C). " & $resp22, $radIzq, $radAr + (30 * 2) + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[6][3] = GUICtrlCreateRadio("D). " & $resp13, $radIzq, $radAr + (30 * 3) + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[6][3] = 2 ; Respuesta correcta
;Pregunta 8
$ttlpreg8 = GUICtrlCreateGroup("8. " & $preg20, $grupIzq + 335, $grup1Ar + (150 * 2), $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[7][0] = GUICtrlCreateRadio("A). " & $resp29, $radIzq + 335, $radAr + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[7][1] = GUICtrlCreateRadio("B). " & $resp20, $radIzq + 335, $radAr + 30 + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[7][2] = GUICtrlCreateRadio("C). " & $resp6, $radIzq + 335, $radAr + (30 * 2) + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[7][3] = GUICtrlCreateRadio("D). " & $resp13, $radIzq + 335, $radAr + (30 * 3) + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[7][4] = 1 ; Respuesta correcta
;Pregunta 9
$ttlpreg9 = GUICtrlCreateGroup("9. " & $preg27, $grupIzq + (335 * 2), $grup1Ar + (150 * 2), $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[8][0] = GUICtrlCreateRadio("A). " & $resp20, $radIzq + (335 * 2), $radAr + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[8][1] = GUICtrlCreateRadio("B). " & $resp4, $radIzq + (335 * 2), $radAr + 30 + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[8][2] = GUICtrlCreateRadio("C). " & $resp27, $radIzq + (335 * 2), $radAr + (30 * 2) + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[8][3] = GUICtrlCreateRadio("D). " & $resp11, $radIzq + (335 * 2), $radAr + (30 * 3) + (150 * 2), $radLrg, $radAlt, $BS_MULTILINE)
$opc[8][4] = 2 ; Respuesta correcta
;Pregunta 10
$ttlpreg10 = GUICtrlCreateGroup("10. " & $preg4, $grupIzq, $grup1Ar + (150 * 3), $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[9][0] = GUICtrlCreateRadio("A). " & $resp4, $radIzq, $radAr + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[9][1] = GUICtrlCreateRadio("B). " & $resp18, $radIzq, $radAr + 30 + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[9][2] = GUICtrlCreateRadio("C). " & $resp25, $radIzq, $radAr + (30 * 2) + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[9][3] = GUICtrlCreateRadio("D). " & $resp2, $radIzq, $radAr + (30 * 3) + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[9][4] = 0 ; Respuesta correcta
;Pregunta 11
$ttlpreg11 = GUICtrlCreateGroup("11. " & $preg11, $grupIzq + 335, $grup1Ar + (150 * 3), $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[10][0] = GUICtrlCreateRadio("A). " & $resp9, $radIzq + 335, $radAr + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[10][1] = GUICtrlCreateRadio("B). " & $resp11, $radIzq + 335, $radAr + 30 + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[10][2] = GUICtrlCreateRadio("C). " & $resp16, $radIzq + 335, $radAr + (30 * 2) + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[10][3] = GUICtrlCreateRadio("D). " & $resp23, $radIzq + 335, $radAr + (30 * 3) + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[10][4] = 1 ; Respuesta correcta
;Pregunta 12
$ttlpreg12 = GUICtrlCreateGroup("12. " & $preg18, $grupIzq + (335 * 2), $grup1Ar + (150 * 3), $grupLrg, $grupAlt, $WS_DLGFRAME)
$opc[11][0] = GUICtrlCreateRadio("A). " & $resp30, $radIzq + (335 * 2), $radAr + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[11][1] = GUICtrlCreateRadio("B). " & $resp7, $radIzq + (335 * 2), $radAr + 30 + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[11][2] = GUICtrlCreateRadio("C). " & $resp14, $radIzq + (335 * 2), $radAr + (30 * 2) + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[11][3] = GUICtrlCreateRadio("D). " & $resp18, $radIzq + (335 * 2), $radAr + (30 * 3) + (150 * 3), $radLrg, $radAlt, $BS_MULTILINE)
$opc[11][4] = 3 ; Respuesta correcta
GUISetState(@SW_SHOW)
Global $Accion1 = $GUI_DISABLE, $Accion2 = $GUI_ENABLE
_desactivados($Accion1)
;_correctas()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $btnIngrestDat
GUICtrlSetState($btnIngrestDat, $GUI_HIDE)
GUICtrlSetState($btnComExa, $GUI_SHOW)
GUICtrlSetState($lselecComEx, $GUI_SHOW)
GUICtrlSetState($lIngresDat, $GUI_HIDE)
_activarUsuario()
Case $btnComExa
If GUICtrlRead($inNombre) = "" Then
MsgBox(0, "Advertencia", "Debe ingresar su nombre")
Else
GUICtrlSetState($btnComExa, $GUI_HIDE)
GUICtrlSetState($btnRevisar, $GUI_SHOW)
GUICtrlSetState($lttlSelec, $GUI_SHOW)
_comenzar($Accion2)
_desactivarUsuario()
EndIf
Case $btnRevisar
GUICtrlSetState($lttlSelec, $GUI_HIDE)
GUICtrlSetState($lIngresDat, $GUI_HIDE)
GUICtrlSetState($btnRevisar, $GUI_DISABLE)
GUICtrlSetState($lselecComEx, $GUI_HIDE)
GUICtrlSetState($lCompare, $GUI_SHOW)
_desactivados($Accion1)
;_contar()
_estado()
_Imprimir()
$lpuntuacion = GUICtrlCreateLabel("Su puntuación es de " & $contar & " de 30", 10, 10, 250, 25)
GUICtrlSetFont(-1, 12, 600, 0, "Arial")
GUICtrlSetColor(-1, 0xFF0000)
Case $btnslr
Exit
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _desactivados($Desac)
For $x = 0 To UBound($opc) - 1 ; nº de preguntas para recorrer.
For $y = 0 To UBound($opc, 2) - 1 ; suma de pregunta y nº de respuestas. Si en vez de empezar en 0 empieza en 1 no desactiva el texto, solo las respuestas
GUICtrlSetState($opc[$x][$y], $Desac)
Next
Next
EndFunc ;==>_desactivados
Func _activarUsuario()
GUICtrlSetState($inNombre, $GUI_ENABLE)
GUICtrlSetState($InFecha, $GUI_ENABLE)
GUICtrlSetState($nivel1, $GUI_ENABLE)
GUICtrlSetState($nivel2, $GUI_ENABLE)
GUICtrlSetState($nivel3, $GUI_ENABLE)
GUICtrlSetState($nivel4, $GUI_ENABLE)
GUICtrlSetState($dia, $GUI_ENABLE)
EndFunc ;==>_activarUsuario
Func _desactivarUsuario()
GUICtrlSetState($inNombre, $GUI_DISABLE)
GUICtrlSetState($InFecha, $GUI_DISABLE)
GUICtrlSetState($nivel1, $GUI_DISABLE)
GUICtrlSetState($nivel2, $GUI_DISABLE)
GUICtrlSetState($nivel3, $GUI_DISABLE)
GUICtrlSetState($nivel4, $GUI_DISABLE)
GUICtrlSetState($dia, $GUI_DISABLE)
EndFunc ;==>_desactivarUsuario
Func _estado()
Dim $ar_LetraResp [12]
Dim $Letras[4]= ["A","B","C","D"]
For $Preguntas = 0 To 11
For $Respuestas = 0 To 3
$respDada =GUICtrlRead($opc[$Preguntas][$Respuestas])
If $respDada = 1 Then ; Si es la respuesta marcada...
If $Respuestas = $opc[$Preguntas][4] Then ; Si conincide la respuesta dada con la correcta:
$contar+=1
$ar_LetraResp[$Preguntas]= $Letras[$Respuestas] &" - " &$corr
Else
$ar_LetraResp[$Preguntas]= $Letras[$Respuestas] &" - " &$inco
EndIf
EndIf
Next
Next
#cs
;Respuesta 1
$res1a = GUICtrlRead($opc[0][0]) ;Lee el estado de los checkbox
If $res1a = 1 Then
$contar = $contar + 1
$resul1 = $corr
$letra1 = "A"
EndIf
$res1b = GUICtrlRead($opc[0][1])
If $res1b = 1 Then
$resul1 = $inco
$letra1 = "B"
EndIf
$res1c = GUICtrlRead($opc[0][2])
If $res1c = 1 Then
$resul1 = $inco
$letra1 = "C"
EndIf
$res1d = GUICtrlRead($opc[0][3])
If $res1d = 1 Then
$resul1 = $inco
$letra1 = "D"
EndIf
;Respuesta 2
$res2a = GUICtrlRead($opc[1][0])
If $res2a = 1 Then
$resul2 = $inco
$letra2 = "A"
EndIf
$res2b = GUICtrlRead($opc[1][1])
If $res2b = 1 Then
$resul2 = $inco
$letra2 = "B"
EndIf
$res2c = GUICtrlRead($opc[1][2])
If $res2c = 1 Then
$contar = $contar + 1
$resul2 = $corr
$letra2 = "C"
EndIf
$res2d = GUICtrlRead($opc[1][3])
If $res2d = 1 Then
$resul2 = $inco
$letra2 = "D"
EndIf
;Respuesta 3
$res3a = GUICtrlRead($opc[2][0])
If $res3a = 1 Then
$contar = $contar + 1
$resul3 = $corr
$letra3 = "A"
EndIf
$res3b = GUICtrlRead($opc[2][1])
If $res3b = 1 Then
$resul3 = $inco
$letra3 = "B"
EndIf
$res3c = GUICtrlRead($opc[2][2])
If $res3c = 1 Then
$resul3 = $inco
$letra3 = "C"
EndIf
$res3d = GUICtrlRead($opc[2][3])
If $res3d = 1 Then
$resul3 = $inco
$letra3 = "D"
EndIf
;Respuesta 4
$res4a = GUICtrlRead($opc[3][0])
If $res4a = 1 Then
$resul4 = $inco
$letra4 = "A"
EndIf
$res4b = GUICtrlRead($opc[3][1])
If $res4b = 1 Then
$contar = $contar + 1
$resul4 = $corr
$letra4 = "B"
EndIf
$res4c = GUICtrlRead($opc[3][2])
If $res4c = 1 Then
$resul4 = $inco
$letra4 = "C"
EndIf
$res4d = GUICtrlRead($opc[3][3])
If $res4d = 1 Then
$resul4 = $inco
$letra4 = "D"
EndIf
;Respuesta 5
$res5a = GUICtrlRead($opc[4][0])
If $res5a = 1 Then
$contar = $contar + 1
$resul5 = $corr
$letra5 = "A"
EndIf
$res5b = GUICtrlRead($opc[4][1])
If $res5b = 1 Then
$resul5 = $inco
$letra5 = "B"
EndIf
$res5c = GUICtrlRead($opc[4][2])
If $res5c = 1 Then
$resul5 = $inco
$letra5 = "C"
EndIf
$res5d = GUICtrlRead($opc[4][3])
If $res5d = 1 Then
$resul5 = $inco
$letra5 = "D"
EndIf
;Respuesta 6
$res6a = GUICtrlRead($opc[5][0])
If $res6a = 1 Then
$resul6 = $inco
$letra6 = "A"
EndIf
$res6b = GUICtrlRead($opc[5][1])
If $res6b = 1 Then
$resul6 = $inco
$letra6 = "B"
EndIf
$res6c = GUICtrlRead($opc[5][2])
If $res6c = 1 Then
$contar = $contar + 1
$resul6 = $corr
$letra6 = "C"
EndIf
$res6d = GUICtrlRead($opc[5][3])
If $res6d = 1 Then
$resul6 = $inco
$letra6 = "D"
EndIf
;Respuesta 7
$res7a = GUICtrlRead($opc[6][0])
If $res7a = 1 Then
$resul7 = $inco
$letra7 = "A"
EndIf
$res7b = GUICtrlRead($opc[6][1])
If $res7b = 1 Then
$resul7 = $inco
$letra7 = "B"
EndIf
$res7c = GUICtrlRead($opc[6][2])
If $res7c = 1 Then
$resul7 = $inco
$letra7 = "C"
EndIf
$res7d = GUICtrlRead($opc[6][3])
If $res7d = 1 Then
$contar = $contar + 1
$resul7 = $corr
$letra7 = "D"
EndIf
;Respuesta 8
$res8a = GUICtrlRead($opc[7][0])
If $res8a = 1 Then
$resul8 = $inco
$letra8 = "A"
EndIf
$res8b = GUICtrlRead($opc[7][1])
If $res8b = 1 Then
$contar = $contar + 1
$resul8 = $corr
$letra8 = "B"
EndIf
$res8c = GUICtrlRead($opc[7][2])
If $res8c = 1 Then
$resul8 = $inco
$letra8 = "C"
EndIf
$res8d = GUICtrlRead($opc[7][3])
If $res8d = 1 Then
$resul8 = $inco
$letra8 = "D"
EndIf
;Respuesta 9
$res9a = GUICtrlRead($opc[8][0])
If $res9a = 1 Then
$resul9 = $inco
$letra9 = "A"
EndIf
$res9b = GUICtrlRead($opc[8][1])
If $res9b = 1 Then
$resul9 = $inco
$letra9 = "B"
EndIf
$res9c = GUICtrlRead($opc[8][2])
If $res9c = 1 Then
$contar = $contar + 1
$resul9 = $corr
$letra9 = "C"
EndIf
$res9d = GUICtrlRead($opc[8][3])
If $res9d = 1 Then
$resul9 = $inco
$letra9 = "D"
EndIf
;Respuesta 10
$res10a = GUICtrlRead($opc[9][0])
If $res10a = 1 Then
$contar = $contar + 1
$resul10 = $corr
$letra10 = "A"
EndIf
$res10b = GUICtrlRead($opc[9][1])
If $res10b = 1 Then
$resul10 = $inco
$letra10 = "B"
EndIf
$res10c = GUICtrlRead($opc[9][2])
If $res10c = 1 Then
$resul10 = $inco
$letra10 = "C"
EndIf
$res10d = GUICtrlRead($opc[9][3])
If $res10d = 1 Then
$resul10 = $inco
$letra10 = "D"
EndIf
;Respuesta 11
$res11a = GUICtrlRead($opc[10][0])
If $res11a = 1 Then
$resul11 = $inco
$letra11 = "A"
EndIf
$res11b = GUICtrlRead($opc[10][1])
If $res11b = 1 Then
$contar = $contar + 1
$resul11 = $corr
$letra11 = "B"
EndIf
$res11c = GUICtrlRead($opc[10][2])
If $res11c = 1 Then
$resul11 = $inco
$letra11 = "C"
EndIf
$res11d = GUICtrlRead($opc[10][3])
If $res11d = 1 Then
$resul11 = $inco
$letra11 = "D"
EndIf
;Respuesta 12
$res12a = GUICtrlRead($opc[11][0])
If $res12a = 1 Then
$resul12 = $inco
$letra12 = "A"
EndIf
$res12b = GUICtrlRead($opc[11][1])
If $res12b = 1 Then
$resul12 = $inco
$letra12 = "B"
EndIf
$res12c = GUICtrlRead($opc[11][2])
If $res12c = 1 Then
$resul12 = $inco
$letra12 = "C"
EndIf
$res12d = GUICtrlRead($opc[11][3])
If $res12d = 1 Then
$contar = $contar + 1
$resul12 = $corr
$letra12 = "D"
EndIf
#ce
If $contar > 28 Then
$aviso = "Felicidades eres un genio, tu esfuerzo a dado frutos" & @CRLF & @CRLF & "Estoy orgulloso de ti"
EndIf
If $contar > 20 And $contar < 28 Then
$aviso = "Muy bien, pero puedes hacerlo mejor" & @CRLF & @CRLF & "Yo se que tienes el poder de hacerlo"
EndIf
If $contar > 15 And $contar < 20 Then
$aviso = "Debes mejorar, preocupate y esfuerzate mas" & @CRLF & @CRLF & "Dedicale un poco mas de tiempo a los estudios"
EndIf
If $contar < 20 Then
$aviso = "Tienes que estudiar mas, tus calificaciones son muy bajas" & @CRLF & @CRLF & "Si deseas ayuda, dimelo que con mucho gusto te ayudare"
EndIf
MsgBox(0, "Examen del Teclado", "Su puntuacion es de " & $contar & " de 30" & @CRLF & @CRLF & $aviso)
EndFunc ;==>_estado
Func _comenzar($Activ)
For $x = 0 To UBound($opc) - 1 ; nº de preguntas para recorrer.
For $y = 0 To UBound($opc, 2) - 1
GUICtrlSetState($opc[$x][$y], $Activ)
Next
Next
EndFunc ;==>_comenzar
Func _Imprimir()
If GUICtrlRead($nivel1) = 1 Then
$nivel = "Nivel 1"
EndIf
If GUICtrlRead($nivel2) = 1 Then
$nivel = "Nivel 2"
EndIf
If GUICtrlRead($nivel3) = 1 Then
$nivel = "Nivel 3"
EndIf
If GUICtrlRead($nivel4) = 1 Then
$nivel = "Nivel 4"
EndIf
$nombre = GUICtrlRead($inNombre)
$fecha = GUICtrlRead($InFecha)
$titulo = GUICtrlRead($lTitulo)
$horario = GUICtrlRead($dia)
$ttlSelec = GUICtrlRead($lttlSelec)
$arreglo = StringTrimRight($ttlSelec, 52)
$file = FileOpen(@ScriptDir & "\Examen Teclado " & $nombre & ".doc", 1)
Sleep(2000)
$txtttl = " " & $titulo & @CRLF & @CRLF & "Puntuacion total: " & $contar & " de 30" & @CRLF & @CRLF & "Nombre: " & $nombre & " Fecha: " & $fecha & @CRLF & @CRLF & "Nivel: " & $nivel & " Horario de clases: " & $horario & @CRLF & @CRLF & " " & $arreglo & @CRLF & @CRLF
$txt1 = GUICtrlRead($ttlpreg1) & @CRLF & @CRLF & GUICtrlRead($opc[0][0], 1) & @CRLF & GUICtrlRead($opc[0][1], 1) & @CRLF & GUICtrlRead($opc[0][2], 1) & @CRLF & GUICtrlRead($opc[0][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[0] & @CRLF & @CRLF
$txt2 = GUICtrlRead($ttlpreg2) & @CRLF & @CRLF & GUICtrlRead($opc[1][0], 1) & @CRLF & GUICtrlRead($opc[1][1], 1) & @CRLF & GUICtrlRead($opc[1][2], 1) & @CRLF & GUICtrlRead($opc[1][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[1] & $resul2 & @CRLF & @CRLF
$txt3 = GUICtrlRead($ttlpreg3) & @CRLF & @CRLF & GUICtrlRead($opc[2][0], 1) & @CRLF & GUICtrlRead($opc[2][1], 1) & @CRLF & GUICtrlRead($opc[2][2], 1) & @CRLF & GUICtrlRead($opc[2][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[2] & $resul3 & @CRLF & @CRLF
$txt4 = GUICtrlRead($ttlpreg4) & @CRLF & @CRLF & GUICtrlRead($opc[3][0], 1) & @CRLF & GUICtrlRead($opc[3][1], 1) & @CRLF & GUICtrlRead($opc[3][2], 1) & @CRLF & GUICtrlRead($opc[3][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[3] & $resul4 & @CRLF & @CRLF
$txt5 = GUICtrlRead($ttlpreg5) & @CRLF & @CRLF & GUICtrlRead($opc[4][0], 1) & @CRLF & GUICtrlRead($opc[4][1], 1) & @CRLF & GUICtrlRead($opc[4][2], 1) & @CRLF & GUICtrlRead($opc[4][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[4] & $resul5 & @CRLF & @CRLF
$txt6 = GUICtrlRead($ttlpreg6) & @CRLF & @CRLF & GUICtrlRead($opc[5][0], 1) & @CRLF & GUICtrlRead($opc[5][1], 1) & @CRLF & GUICtrlRead($opc[5][2], 1) & @CRLF & GUICtrlRead($opc[5][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[5] & $resul6 & @CRLF & @CRLF
$txt7 = GUICtrlRead($ttlpreg7) & @CRLF & @CRLF & GUICtrlRead($opc[6][0], 1) & @CRLF & GUICtrlRead($opc[6][1], 1) & @CRLF & GUICtrlRead($opc[6][2], 1) & @CRLF & GUICtrlRead($opc[6][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[6] & $resul7 & @CRLF & @CRLF
$txt8 = GUICtrlRead($ttlpreg8) & @CRLF & @CRLF & GUICtrlRead($opc[7][0], 1) & @CRLF & GUICtrlRead($opc[7][1], 1) & @CRLF & GUICtrlRead($opc[7][2], 1) & @CRLF & GUICtrlRead($opc[7][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[7] & $resul8 & @CRLF & @CRLF
$txt9 = GUICtrlRead($ttlpreg9) & @CRLF & @CRLF & GUICtrlRead($opc[8][0], 1) & @CRLF & GUICtrlRead($opc[8][1], 1) & @CRLF & GUICtrlRead($opc[8][2], 1) & @CRLF & GUICtrlRead($opc[8][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[8] & $resul9 & @CRLF & @CRLF
$txt10 = GUICtrlRead($ttlpreg10) & @CRLF & @CRLF & GUICtrlRead($opc[9][0], 1) & @CRLF & GUICtrlRead($opc[9][1], 1) & @CRLF & GUICtrlRead($opc[9][2], 1) & @CRLF & GUICtrlRead($opc[9][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[9] & $resul10 & @CRLF & @CRLF
$txt11 = GUICtrlRead($ttlpreg11) & @CRLF & @CRLF & GUICtrlRead($opc[10][0], 1) & @CRLF & GUICtrlRead($opc[10][1], 1) & @CRLF & GUICtrlRead($opc[10][2], 1) & @CRLF & GUICtrlRead($opc[10][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[10] & $resul11 & @CRLF & @CRLF
$txt12 = GUICtrlRead($ttlpreg12) & @CRLF & @CRLF & GUICtrlRead($opc[11][0], 1) & @CRLF & GUICtrlRead($opc[11][1], 1) & @CRLF & GUICtrlRead($opc[11][2], 1) & @CRLF & GUICtrlRead($opc[11][3], 1) & @CRLF & "Opción: " & $ar_LetraResp[11] & $resul12 & @CRLF & @CRLF
FileWrite($file, $txtttl)
FileWrite($file, " ")
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt1)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt2)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt3)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt4)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt5)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt6)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt7)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt8)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt9)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt10)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt11)
FileWrite($file, "-------------------------------------------------------------------------")
FileWrite($file, $txt12)
FileWrite($file, "-------------------------------------------------------------------------")
Sleep(2000)
FileSetAttrib(@ScriptDir & "\Examen Teclado " & $nombre & ".doc", "+RS")
FileClose($file)
EndFunc ;==>_Imprimir
Tambien he cambiado la ruta del .doc que crea, porque en mi caso al menos (Windows 7) no tengo permisos en la carpeta Escritorio de All Users/Public.
Una mejora que puedes hacer, es que el examen sea aleatorio tanto en preguntas como en respuestas... Pero eso es para nivel avanzado. Te puede llevar bastante tiempo.
Pero animo, que la cosa va muy muy bien. Elegante y funcional.