es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pyautogui funcionará hasta que tenga que ingresar algo en el intérprete, momento en el cual se detendrá hasta que haga clic en “Enter” de forma manual.

Actualmente estoy intentando crear un programa que me permita ingresar un nombre y luego, utilizando pyautogui, buscar ese nombre en la aplicación de mensajería de mi computadora, luego preguntar a la persona cuyo nombre escribí si quieren hacer el teorema de Pitágoras. El programa copia sus mensajes y se supone que debe haber un intercambio de mensajes entre la persona que está siendo enviada y el intérprete directamente. El problema que tengo es que cuando Python copia el mensaje de mi amigo, lo pega en una configuración de entrada en el intérprete, pero se congela. No continuará ejecutándose hasta que haga clic en enter manualmente para omitir la entrada que configuré, en ese momento pegará el mensaje en el intérprete, incluso si la entrada ya fue utilizada. Intenté insertar una entrada ficticia antes de la primera entrada, que pregunta al usuario si quieren resolver la longitud de una pierna o la hipotenusa. Lo siento si la explicación no está clara, espero que se entienda mejor con el código. Incluso con una entrada ficticia no funciona. Por cierto, (373, 823) es un punto dentro del intérprete para que pyautogui haga clic en el intérprete y lo use.

pyautogui.click(373, 823)
entrada_ficticia = input("relleno: ")
pyautogui.press("a")
pyautogui.press("enter")
eleccion_usuario = input("pierna o hip: ")
time.sleep(2)
pyautogui.click(373, 823)
pyautogui.keyDown("command")
pyautogui.press("v")
pyautogui.keyUp("command")
pyautogui.press("enter")
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que te estás enfrentando a un problema con el programa que se congela al intentar pegar el mensaje en el intérprete. Una solución que intentaste fue insertar una entrada ficticia, pero eso no funcionó.

    Una cosa que puedes intentar es utilizar el módulo pyperclip para copiar y pegar el mensaje en lugar de depender de pyautogui. Esto puede ayudarte a evitar el problema de congelamiento del programa.

    Aquí tienes un ejemplo de cómo utilizar pyperclip:

    import pyperclip
    import time
    
    # hacer clic en la aplicación de mensajes y buscar al usuario
    pyautogui.click(373, 823)
    user = input("Ingresa el nombre del usuario: ")
    pyautogui.write(user)
    time.sleep(1)
    pyautogui.press('enter')
    
    # preguntar al usuario si desea resolver para la pata o la hipotenusa
    userchoice = input("¿Deseas resolver para la pata o la hipotenusa? ")
    
    # copiar el mensaje del usuario y pegarlo en el intérprete
    pyautogui.click(373, 823)
    pyautogui.hotkey('command', 'c')
    message = pyperclip.paste() # obtener el mensaje copiado del portapapeles
    pyautogui.press('enter') # omitir la configuración de entrada
    pyautogui.click(373, 823)
    pyautogui.hotkey('command', 'v')
    pyautogui.press('enter')
    

    Este código utiliza pyperclip para obtener el mensaje copiado del portapapeles y luego lo pega en el intérprete. Esperamos que esto te ayude a superar el problema de congelamiento que estabas encontrando.

Comments are closed.