| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Lun 25 Sep, 2017 5:03 pm Asunto: Duda crear archivo de texto |
|
|
Buenas...
Es posible tener una "variable" con el valor "Hola mundo" y al pulsar un boton que se ejecute el programa predeterminado para los archivos .txt (notpad,word..) y se mostraria en su hoja, el texto "Hola mundo" dandole la opcion al usuario a guardarlo como archivo de texto.
No quiero que exista un archivo de texto con "Hola Mundo" y abrirlo, el quid de la cuestion es que en disco no haya ningun archivo con ese texto y sea la decision del usuario una vez abierto el lector de archivos .txt, el que determine si al final se guarde en en disco el archivo de texto o se deseche la informacion...
Nota : Los Textos con los que trabajaria tendrian muchos mas caracteres que "Hola Mundo".
Alguna idea. Gracias |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mie 27 Sep, 2017 12:46 pm Asunto: |
|
|
Buenas...
Finalmente he optado por crear el archivo txt, guardarlo en la carpeta temporal de Windows, abrirlo con el programa predeterminado (word) ... hasta aqui todo correcto, el problema surge al querer borrar el archivo y que el usuario decida si quiere guardarlo o no y donde, obviamente el sistema operativo no me deja borrar el archivo mientras esta abierto en word... es posible "liberar" ese archivo para que me permita borrarlo sin ser necesario cerrar word.
Gracias |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 12 Oct, 2017 2:43 pm Asunto: |
|
|
Hola, si te vale con el Block de Notas podrías probar algo así:
| Código: | SHELLEXECUTEINFO info = {0};
info.cbSize = sizeof(SHELLEXECUTEINFO);
info.fMask = SEE_MASK_NOCLOSEPROCESS;
info.lpFile = TEXT("Notepad.exe");
info.nShow = SW_SHOW;
if (ShellExecuteEx(&info)) {
WaitForInputIdle(info.hProcess, 5000);
HWND w = FindWindow(TEXT("Notepad"), NULL);
if (w) {
w = FindWindowEx(w, NULL, TEXT("Edit"), NULL);
if (w)
SendMessage(w, WM_SETTEXT, 0, (LPARAM)TEXT("Prueba\r\nOtra prueba"));
}
CloseHandle(info.hProcess);
} |
Y si prefieres con el MS Word tienes unos cuantos ejemplos por el foro sin necesidad de crear un archivo temporal. |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mar 17 Oct, 2017 1:18 pm Asunto: |
|
|
Muchas Gracias.
Un Saludo. |
|
| Volver arriba |
|
 |
|