Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-01-2010
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 22
Cabanyaler Va por buen camino
Wink ShellExecute y PChar "Truncador"

Hola, intento ejecutar una determinada aplicación (entiendase Excel, acrobat reader, word, ...) y que abra un determinado documento asociado a esa aplicación (entiendase Excel, acrobat reader, word, ...) .

Con la siguiente función 'BuscaEjecutable' obtengo el archivo ejecutable asociado al fichero con su ruta completa.
P.e. si Fichero es la cadena 'nomarchivo.doc' me devuelve el valor: 'C:\Archivos de programa\Microsoft Office\Office\WINDWORD.EXE'

Código Delphi [-]
function TFDocAsoLuminaria.BuscaEjecutable(Fichero:string):String;
var
    Ejecutable:Pchar;
 begin
    GetMem(Ejecutable,200);
    FindExecutable(Pchar(Fichero),nil,Ejecutable);
    Result:=String(Ejecutable);
    FreeMem(Ejecutable,200);
end;

Se supone pues que teniendo el archivo que quiero abrir (en este caso de ejemplo de tipo doc asociado a word de office 'nomarchivo.doc') y por otro lado tengo la ruta completa de donde se encuentra el ejecutable que hace posible la visualización del Fichero 'C:\Archivos de programa\Microsoft Office\Office\WINDWORD.EXE', con la siguiente instrucción me abre el word con el documento

Código Delphi [-]
      PathExe := BuscaEjecutable(DMGIS.ADOQ_DocLuminariaRuta.value);   // Traure el ejecutable associat al'extensió del fitxer
      ShellExecute(0, 'open', PChar(PathExe), PChar(fichero_w), nil, SW_SHOW);    // Ejecutar el exe associat amb el fitxer per obrir-lo

Pero.......
Problema: Si en lugar de llamarse el fichero 'nomarchivo.doc', se llama 'nom archivo.doc' (es decir tiene espacios en blanco), me corta el nombre (y solo me pasa con los que tienen extensión doc. Con las demás naturalezas de fichero funciona aunque tenga estos espacios en blanco en su nombre.) y me lo deja como nom.doc y claro no se abre pq no lo encuentra.


Pregunta: ¿Alguien sabe como puedo pasar ese parametro que debe ser de tipo pointer, a partir de una cadena String sin que se me trunque de ese modo?

Gracias, gracias
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.

Última edición por Cabanyaler fecha: 13-01-2010 a las 18:19:38.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
"OBJECT OR CLASS TYPE REQUIRED" en "APPLICATION EXENAME" Xavierator Varios 3 27-10-2008 09:09:50
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
¿cuál es mejor: "close" o "application.terminate"? unreal4u Varios 5 05-03-2007 11:01:19
ShellExecute y "c:\WINDOWS\system32\telephon.cpl" Durbed API de Windows 7 20-12-2005 21:33:04


La franja horaria es GMT +2. Ahora son las 23:11:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi