Aca les dejo la solucion que me dio Chefito para este tipo de problemas, respecto a como añadir un texto en un Iframe
Solucion 1
Código: Seleccionar todo
$Objeto = _IEGetObjById($oIE, "trackbackto") ; obtengo el objeto de la página para utilizarlo después. Se podría tomar cualquier objeto
$Texto = "Esto es un ejemplo de como dominar el control Editor vbulletin con AutoIt.\n\n A CHEFITO NO SE LE RESISTE CASI NADA ;) :D" ; texto que voy a insertar en el editor
; Inserto un campo oculto donde en el evento onclick pongo el código javascript para insertar el texto.
$Objeto.insertAdjacentHtml("beforebegin", "<input type='hidden' id='insertarTexto' onclick=""vB_Editor['vB_Editor_001'].write_editor_contents('" & $Texto & "', false);""></input>")
$oInsertarTexto = _IEGetObjById($oIE, "insertarTexto") ; obtengo el objeto del campo oculto creado
$oInsertarTexto.fireevent("onclick") ; lanzo el evento onclick del objeto creado para insertar el texto.
Solucion 2
Código: Seleccionar todo
; === Esta es otra forma de hacerlo. Aquí lo hago utilizando el evento onclick del objeto document === ;
_IEHeadInsertEventScript($oIE, "document", "onclick", "vB_Editor['vB_Editor_001'].write_editor_contents('" & $Texto & "', false);")
$oIE.document.fireevent("onclick")
; =========== ;
Como le dije a Chefito en algunos casos anda uno y en otros caso anda otro, pero encontre algo muy curioso del porque no me anda la "SOLUCION 1". Es muy raro y me pasa a mi solo.
El codigo de Chefito anda perfecto, asi sea solo o cuando lo adjunto a mi codigo, asi tan cual anda perfecto. Pone en el campo del mensaje "Esto es un ejemplo de como dominar el control Editor vbulletin con AutoIt.\n\n A CHEFITO NO SE LE RESISTE CASI NADA ;) :D", hasta ahi perfecto.
Ahora si yo lo pongo en mi codigo, anda pero aqui lo raro.
1) Para que el codigo ande tengo que dejarle el "$Texto" que puso CHEFITO, "Esto es un ejemplo de como dominar el control Editor vbulletin con AutoIt.\n\n A CHEFITO NO SE LE RESISTE CASI NADA ;) :D", con ese texto anda.
2) Si le cambio el texto, osea si la variable "$Texto" viene de otro lado, no me pone el texto ¬¬ ¬¬ ¬¬
Este es mi code ... un pedazo
Código: Seleccionar todo
$Texto = ""
For $s = 1 To _GUICtrlRichEdit_GetLineCount($Rich_Edit)
$Texto &= _GUICtrlRichEdit_GetTextInLine($Rich_Edit, $s) & "\n"
Next
MsgBox(0, "", $Texto) ; Puse este MsgBox para ver si el problema estaba en que no me guardaba nada en $Texto, pero si, anda perfecto ...
$Objeto = _IEGetObjById($oIE, "trackbackto") ; obtengo el objeto de la página para utilizarlo después. Podía haber obtenido casi cualquier otro.
$Texto = "Esto es un ejemplo de como dominar el control Editor vbulletin con AutoIt.\n\n A CHEFITO NO SE LE RESISTE CASI NADA ;) :D" ; texto que voy a insertar en el editor
; Inserto un campo oculto donde en el evento onclick pongo el código javascript para insertar el texto.
$Objeto.insertAdjacentHtml("beforebegin", "<input type='hidden' id='insertarTexto' onclick=""vB_Editor['vB_Editor_001'].write_editor_contents('" & $Texto & "', false);""></input>")
$oInsertarTexto = _IEGetObjById($oIE, "insertarTexto") ; obtengo el objeto del campo oculto creado
$oInsertarTexto.fireevent("onclick") ; lanzo el evento onclick del objeto creado para insertar el texto.
; === Postea === ;
$oSubmit = _IEGetObjByName($oIE, $Boton_Web_Postear)
If Not @error Then
_IEAction($oSubmit, "click") ; Cuando hace clic en publicar, me dice que debo ingresar un texto mayor de x caracteres, aparte es obvio no hay texto ^^
_IELoadWait($oIE)
EndIf
Bueno ese code asi como esta, no anda, no me pone nada en el campo de texto ¬¬