border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

Cuenta Bancaria en EEUU
  #1 (permalink)  
Antiguo 18-10-2004, 13:06:48
Avatar de buligan
Un Nuevo Amigo
 
Registrado: nov 2003
Posts: 29
buligan Valoración +2
Predeterminado Se puede lanzar la apertura de un fichero?

Hola a todos

Igual el título no es muy expresivo pero no sabía cómo ponerlo. Me explico:

¿Puedo hacer algo parecido a un Shell pero dándole sólo un nombre de fichero y dejar que Windows se encargue de ver la extensión y abrirlo?

En concreto quiero lanzar un fichero power point show, pero si hago un shell de power point me lo abre en modo edición y eso es lo que quiero evitar a toda costa.

ideas? gracias
Responder Con Cita
  #2 (permalink)  
Antiguo 18-10-2004, 13:20:03
Moderador
 
Registrado: dic 2002
Ubicación: Madrid
Posts: 4.271
acalanto ha deshabilitado la reputación
Predeterminado

Shell sólo admite ejecutables a los que naturalmente puedes añadir parámetros tal y como si lo invocasse desde ejecutar.

En el caso de Power-Point es lógico que te lo abra en modo diseño pues éste es el modo en el que sucedería si lo abres desde el propio PowerPoint.

Power Point dispone de una herramienta para generar un empaquetado de la presentación en la que adjunta todo lo necesario pata invocarla desde un shell. (Incluye un ejecutable que muestra la presentación sin que por ello necesite cargar Power Point)


No sé si esto te puede solucionar el problema, creo que sí.
__________________
Un cordial saludo
-Acalanto-

Madrid - España

Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 18-10-2004, 13:31:38
Avatar de buligan
Un Nuevo Amigo
 
Registrado: nov 2003
Posts: 29
buligan Valoración +2
Predeterminado

Seguiré estudiando el tema, ya he probado lo del asistente de empaquetado y no creo que me vaya a servir pero muchas gracias.

De todas formas, si la apertura normal de un fichero pps es la presentación del documento no entiendo por qué al hacer un shell lo abre en modo edición.

Estoy intentando proteger la presentación anti copias y manipulaciones y la verdad es que me está costando ver por dónde tirar.

Un saludo y muchas gracias
Responder Con Cita
  #4 (permalink)  
Antiguo 18-10-2004, 15:57:33
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.431
J.M.Movilla Valoración +2
Predeterminado

Creo que esta instrucción resuelve tus deseos:

Código:
X = ShellExecute(Me.hWnd, "Open", "RutaCompleta\NombreFichero.pps", "", "c:\windows", 1)
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #5 (permalink)  
Antiguo 18-10-2004, 17:38:51
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 438
MiguelS Valoración +2
Predeterminado

La respuesta de Jose Maria es correcta pero hay que declarar el API
Código:
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
y despues se pude usar
Código:
ShellExecute 0, "open", sFile, 0, 0, 1
Miguel[/code]
Responder Con Cita
  #6 (permalink)  
Antiguo 18-10-2004, 17:45:16
Avatar de J.M.Movilla
Administrator
 
Registrado: dic 2002
Ubicación: BURGOS - ESPAÑA
Posts: 5.431
J.M.Movilla Valoración +2
Predeterminado

Bueno, por supuesto. No hablé de la declaración de la API porque Buligan se estaba ya refiriendo a cómo manejarla, por lo que di por hecho que ya la tenía declarada... No obstante, está perfecta la corrección puesto que este mensaje podría crear confusión a otras personas que no cayeran en ese detalle. Gracias.
__________________
José María Movilla Cuadrado
______________________

Visual Basic Videos Programacion Foro Programacion
Tutoriales Programacion Trucos Programacion Codigos Programacion
Responder Con Cita
  #7 (permalink)  
Antiguo 19-10-2004, 09:18:09
Avatar de buligan
Un Nuevo Amigo
 
Registrado: nov 2003
Posts: 29
buligan Valoración +2
Predeterminado

es justo lo que necesitaba, muchas gracias
Responder Con Cita
  #8 (permalink)  
Antiguo 19-10-2004, 14:15:47
Avatar de buligan
Un Nuevo Amigo
 
Registrado: nov 2003
Posts: 29
buligan Valoración +2
Predeterminado

Siento dar la lata otra vez pero tengo otro pequeño problema:

Quiero esperar a que el proceso lanzado termine pero ShellExecute no me devuelve el número de proceso. Aunque llevo un buen rato revisando posts anteriores no tengo muy claro el tema.

Más o menos querría hacer algo del tipo:

(no veo necesario poner las declaraciones de funciones y variables):

PROCESO = ShellExecute(1, "Open", dirDESTINO + fileDESTINO, "", "c:\windows", 1)

SINCRONIZAR = OpenProcess(&H400, False, PROCESO)
If SINCRONIZAR <> 0 Then
Call WaitForSingleObject(SINCRONIZAR, &HFFFFFFFF)
Call CloseHandle(SINCRONIZAR)
End If

Esta última parte la he sacado de otro post de este foro, el problema es que no me había dado cuenta de que en 'PROCESO' no tengo el ID del proceso, de hecho sólo sirve para informar de errores, por lo que esto no puede funcionar.

Agradecería otra ayudita, saludos
Responder Con Cita
Respuesta


Herramientas
Desplegado

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
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Sobre envio y apertura Lord Vader PHP 1 24-04-2007 19:22:51
Apertura de ficheros mcarpio Visual Basic 3.00 Embedded 5 28-09-2006 15:57:37
APERTURA DE BASE DATOS DIVEMASTER2002 Visual Basic 6.00 1 20-02-2006 18:37:25
Detectar apertura de BD DIVEMASTER2002 Visual Basic 6.00 1 06-01-2006 19:38:16
Agilizar Apertura y Cerrado de una WinForm spider_Ramon Visual Basic.NET 2003 & 2005 1 22-04-2005 00:19:53


La franja horaria es GMT. Ahora son las 02:52:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right