|
Responder
|
| Autor | |
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Tema: Sendkeys variable string no funciona Windows11Enviado: 03/Noviembre/2023 a las 12:53 |
|
Hola, hasta ahora venía pasando una variable string a Sendkeys para pasar los datos de varios controles de un formulario a un bloc de notas que me ayudásteis en este hilo Pasar datos de formulario access a Notepad - Foro de Access y VBA (mvp-access.com) Pero ahora me han instalado windows 11 y no me funciona. Se me abre mil veces como loco archivos en blanco del Notepad Creo que lo que afecta son los Enter que incluyo en la variable como vbCrLf porque cuando lo sustituyo por ~ no hace eso pero es que no hace nada. Solo se abre el bloc de notas pero no pasa ningún valor.Este es el código, ¿qué puedo hacer? Shell "C:\WINDOWS\NOTEPAD.EXE", vbNormalFocus str = Replace(str, "(", "-") str = Replace(str, ")", "-") SendKeys str SendKeys "{NUMLOCK}" La línea SendKeys "{NUMLOCK}" la pongo porque Sendkeys desconecta el teclado numérico y así lo vuelvo a conectar. Pero quitándola, tampoco funciona Y es que además, pasando un simple Shell "C:\WINDOWS\NOTEPAD.EXE", vbNormalFocus Sendkeys "hola" se abre el bloc pero no pasa el valor "hola" Gracias. Saludos,
Editado por paloma - 03/Noviembre/2023 a las 13:16 |
|
![]() |
|
McPegasus
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual
Unido: 02/Abril/2007 Localización: España Estado: Sin conexión Puntos: 81 |
Enviado: 03/Noviembre/2023 a las 17:48 |
|
Hola Paloma, Ya nos hemos dado cuenta de que nuestro Notepad ya no es el
que era ☹. Descanse en paz nuestro Notepad y que le den al
nuevo Notepad. Tras esta introducción quiero indicarte que por las pruebas
que he realizado su actitud es divergente, unas veces escribe y otras no. Yo no seguiria por esta línea. ¿Se te ha ocurrido utilizar el método CreateObject("Scripting.FileSystemObject") para crear un archivo directamente? Es más fiable para crear un archivo desde cero o abrir uno existente, modificar o crearle contenido y guardar los cambios. Dinos si necesitas más información sobre ello, o como los masters son un poco quisqui lo que haría es crear un nuevo hilo. Buen fin de semana. |
|
|
Rafael [McPegasus]
Valencia www.mcpegasus.net ..:: Tu Access, Mi Pasión ::.. |
|
![]() |
|
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Enviado: 03/Noviembre/2023 a las 20:49 |
|
Hola Pegasus, jope, al final después de dar muchas vueltas, he encontrado la solución.. Este código me funciona, pero mira, no sé hasta cuándo, hartita me ha dejado. Lo de crear objeto ¿te importaría xfa pasarme info para darle una vuelta también? Muuchas gracias. Lo de incorporar una pausa, parece ser que en estas líneas se precisa porque si no se atora, eso he leído, y la verdad es que sí, sin la pausa no tira. En finnn str = Replace(str, "(", "-") str = Replace(str, ")", "-") Dim X X = Shell("C:\WINDOWS\NOTEPAD.EXE", 1) esperar (0.5) AppActivate X esperar (0.5) SendKeys str SendKeys "{NUMLOCK}" Saludos,
|
|
![]() |
|
McPegasus
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual
Unido: 02/Abril/2007 Localización: España Estado: Sin conexión Puntos: 81 |
Enviado: 04/Noviembre/2023 a las 09:44 |
|
Claro, en la web tenemos disponible el artículo: VBA: método OpenTextFile – Access Global (access-global.net) con vídeo explicativo y todo.
Que lo disfrutes y lo uses.
|
|
|
Rafael [McPegasus]
Valencia www.mcpegasus.net ..:: Tu Access, Mi Pasión ::.. |
|
![]() |
|
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Enviado: 08/Noviembre/2023 a las 01:53 |
|
Graciass!!! lo miro! saludos
|
|
![]() |
|
xavi
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Terrassa-BCN Unido: 10/Mayo/2005 Localización: Catalunya |||| Estado: Sin conexión Puntos: 14926 |
Enviado: 08/Noviembre/2023 a las 11:37 |
|
Hola,
Hay alternativas a SendKeys que evitan (en principio) el error También invocar a la biblioteca de Word me funcionó en un caso (1068 lanza una PrintScreen) Dim wrdap Set wrdap = CreateObject("Word.Application") wrdap.WordBasic.SendKeys "{1068}" Un saludo
|
|
![]() |
|
McPegasus
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Habitual
Unido: 02/Abril/2007 Localización: España Estado: Sin conexión Puntos: 81 |
Enviado: 08/Noviembre/2023 a las 11:42 |
|
Gracias tomo nota, el Sendkeys parece infinito
.En este caso, por las pruebas que he realizado es que el bloc de notas tras abrirse hace una pausa muy prolongada por lo que hay que hacer una pausa también prolongada para lanzar el SendKeys. Aunque yo tomaría el camino de crear un txt ya que seguro en un futuro le volverá a sacar partido. |
|
|
Rafael [McPegasus]
Valencia www.mcpegasus.net ..:: Tu Access, Mi Pasión ::.. |
|
![]() |
|
paloma
Habitual
Unido: 24/Junio/2010 Estado: Sin conexión Puntos: 139 |
Enviado: 28/Diciembre/2023 a las 19:27 |
|
Hola, perdón la tardanza, muchas gracias por contestar a los dos. Xavi, con tú código me pasaba lo mismo, el Notepad se volvía loco y se abría sin parar. De hecho, se debió quedar pirado porque tuve que pedir asistencia para que me lo reinstalaran. Al final lo conseguí con este código, cogiendo un poco de todo. Creé un fichero plano como borrador para llamarlo cada vez que lo necesite y escribir en él. 'Escribir en el fichero txt Open "C:\Users\Documents\BD\DatosDemanda.txt" For Output As FreeFile Print #1, str Close 'Abrir el fichero Shell "Notepad.exe C:\Users\Documents\BD\DatosDemanda.txt", vbNormalFocu Se puede cerrar el hilo, Saludos,
|
|
![]() |
|
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |