FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Lanzar programa desde mi programa
Hola Gente. aqui de nuevo...
Quisiera que mi prg ejecute otro programa por ejemplo el Word... y lo hago asi WinExec(PChar('C:\ARCHIV~1\Microsoft Office\Office\WinWord.exe'), SW_SHOWNORMAL); hasta aqui todo bien... pero que sucede cuando se instalan nuevos programas? debería modificar mi programa para actualizarlo y me parece un poco rustico... la idea es crear una base de datos donde yo carge las Path de cada exe y que mi programa, en su código tenga algo asi... var Ruta : String; Ruta := Label1.Caption; (o el contenido del campo. que esto no sería problema) WinExec(PChar('Ruta'), SW_SHOWNORMAL); Que obviamente no funciona... acepto sugerencias Muchas gracias.... Pablo |
#2
|
||||
|
||||
WinExec(PChar('Ruta'), SW_SHOWNORMAL);
Obviamente si encierras Ruta entre las comillas no te va a funcionar, por que el compilador asumira que quieres ejecutar Ruta, mas no el contenido de Ruta. Lo que tendrias que hacer es WinExec(PChar(Ruta), SW_SHOWNORMAL); Suerte
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
||||
|
||||
Cita:
Muchas gracias |
#4
|
||||
|
||||
ahora si quisiera que mi prg se ejecute antes que continue la carga de windows (esto seria tipo usuario) en el registro no encuentro donde... estube buscando en hkey_local_machine -> software -> microsoft -> windows y no lo logro... por alli me dijeron que en la misma ruta pero en windowsnt-> winlogon (pero este winlogon no lo tengo--- estoy hablando de win95 y milenium
Tambien me encanta Venezuela |
#5
|
||||
|
||||
Es que dentro de windows debe buscar la carpeta Current Version, y alli encontras winlogon, de todas formas esto puedes seguir discutiendolo en el otro hilo, respetemos la guia de estilo
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#6
|
||||
|
||||
ok.... dentro de current version no esta tampoco ... y en que hilo puedo seguir este tema? Gracias...
|
#7
|
||||
|
||||
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#8
|
|||
|
|||
y si ademas de ejecutar un programa, keremos k este se abra con un archivo determinado, es decir,abrir x ejemplo un JPG con el imaging de win o con el photoshop. GRacias
|
#9
|
||||
|
||||
Solo se lo pasas por parametros:
Código:
winexec('"c\Imagen.exe" "c:\dibujo.jpg"')
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#10
|
|||
|
|||
no me traga eso
mi codigo (segun tu version es asi) windows.WinExec(cadena pchar(hint),1) donde cadena es la ruta del programa, e Hint es el nombre del fichero que quiero cargar con el programa. tambien e probrado a concatenar ambas cadenas para utilizar un solo parametro: strcat(cadena , pchar(hint); windows.WinExec(cadena ,1); asi me compila bien, xo en runtime al ejecutar el codigo me abre el programa xo no el archivos |
#11
|
||||
|
||||
lo mas seguro es que la ruta no sea la correcta
prueba copiandolo en la raiz para ver si es eso o no
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#12
|
|||
|
|||
la ruta esta bien
esto es todo lo k ago
el (Timage).hint contiene la misma cadena k se a cargado en el picture.loadfromfile, x lo tanto el contenido sera valido, despues le concateno delante la ruta (dejando un espacio en blanco) del photoeditor i lo ejecuto, el resultado es que me abre el photoeditor pero no me abre la fotografia ... |
#13
|
||||
|
||||
[/quote] Prueba los dos pequeños cambio que te propongo a ver que sucede, no estoy muy seguro en referencias a objetos, pero creo que el Hint que estas capturando es el del Form y no el del Imagen
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#14
|
||||
|
||||
Si los nombres de archivo del programa y del que queres pasar como parámetro contienen espacios, tenes que encerrarlos entre comillas para que el sistema los considere un único parámetro:
por ejemplo: WinExec('c:\archivos de programa\programa.exe c:\mis documentos\documento.doc'); tratará de ejecutar c:\archivos, pasándole como parámetros: de programa\programa.exe c:\mis documentos\documento.doc totalmente erratico, no: en cambio: WinExec('"c:\archivos de programa\programa.exe" "c:\mis documentos\documento.doc'"); Tratará de ejecutar: c:\archivos de programa\programa.exe con el parámetro: c:\mis documentos\documento.doc otra opción es usar solamente nombres de archivo 8.3: WinExec('c:\archiv~1\programa.exe c:\misdoc~1\documento.doc'); Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#15
|
|||
|
|||
eduarcol, tu solucion no me sirve, ia k ese procedimiento solo sirve para la imagen1, y tengo 36 imagenes... xD tendria k escribir 36 procedimientos iguales !!! utilizando el parametro server le digo al compilador que objeto es el que4 a llamado al procedimiento, fijate que pongo with sender as timage ... en cuanto a jachguate probare pasando las dos cadenas x separado, xo tengo k pasarle variables, no cadenas literales, no puedo, x tanto ,usar las comillas
eduarcol el hint no es del form, comprobado x showmessage.pertenece a la imagen que llama al procedimiento |
#16
|
||||
|
||||
Por que no le pasas la ruta por un Var por ejemplo...
Var Ruta : string; Ruta := Edit1.Caption y la ruta la escribis en un Edit y cuando ejecutas WinExec(Ruta); Te servira asi? Saludos |
#17
|
|||
|
|||
la ruta se la paso x variable,
[delphi] procedure a; var cadena:array[0..256] of char; begin strcopy(cadena,'c:\programa.exe archivo.doc'); winexec(cadena); end; pues esto me abre programa.exe xo no me carga archivo.doc |
#18
|
||||
|
||||
Mira lo acabo de probar y funciona...
C:\ARCHIV~1\Microsoft Office\Office\WinWord.exe c:\orden.doc %1 con esa cadena me abre el Word junto al archivo orden Saludos |
#19
|
|||
|
|||
prueba con el photoeditor del office
c:\archivos de programa\archivos comunes\microsoft shared\photoed\photoed.exe i el archivo de imagen k kieras |
#20
|
||||
|
||||
No tengo el photoed.exe
yo lo hago asi: var Ruta : String; begin Ruta := edit.Caption; WinExec(PChar(Ruta), SW_SHOWNORMAL); end; y ruta es igual a C:\ARCHIV~1\Microsoft Office\Office\WinWord.exe c:\orden.doc %1 |
|
|
|