Delphi - ShellExecute

 
Vista:

ShellExecute

Publicado por Damian (8 intervenciones) el 30/12/2002 17:13:05
Necesito ayuda de como utilizar la api ShellExecute desde Windows
la declaro y utilizo la Unit MmSystem y me sale un error de que no esta definida ShellExecute.....
me vendria bien un aayuda es que necesito ejecutar otros programas desde delphi con esa funcion........
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ShellExecute

Publicado por Diego Romero (636 intervenciones) el 30/12/2002 22:33:15
ShellExecute() está definido en la Unit estandar ShellApi, asi que agregala a la clausula Uses de tu Form o Unit.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ShellExecute

Publicado por damian (8 intervenciones) el 31/12/2002 00:03:44

Ya he agregado la unit shellapi
pero me sale un error diciendo que espera un "(" y encuentra una ","
con la sintaxis siguiente...

ShellExecute(hwnd, "open", 'c:\rar\rar.exe', NULL, NULL, SW_SHOWNORMAL);

ya yo he usado esta api pero en visual basic
ahora me hace falta utilizarla en delphi
¿me podrias ayudar y decirme que error es el que tengo?
nos vemos saludos

damian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ShellExecute

Publicado por DAmian (8 intervenciones) el 31/12/2002 00:01:43

Ya he agregado la unit shellapi
pero me sale un error diciendo que espera un "(" y encuentra una ","
con la sintaxis siguiente...

ShellExecute(hwnd, "open", 'c:\rar\rar.exe', NULL, NULL, SW_SHOWNORMAL);

ya yo he usado esta api pero en visual basic
ahora me hace falta utilizarla en delphi
¿me podrias ayudar y decirme que error es el que tengo?
nos vemos saludos

damian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ShellExecute

Publicado por maCo (7 intervenciones) el 31/12/2002 05:58:49
Delphi que yo sepa no tiene una constante por default NULL, eso es de C/C++
Delphi no usa la doble comillas "Mi String" para encapsular literales, tienes que usar la que tiene solo una 'Mi String'

No se que parametros pida porque no tengo Delphi instalado en esta pc pero si es numerico en ves de NULL pones un ceso 0
y si es puntero, pones nil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ShellExecute

Publicado por Diego Romero (636 intervenciones) el 31/12/2002 07:58:52
Lo que ha comentado maCo es correcto, las cadenas literales en Object Pascal se encierran en comilla simple, la constante nula es NIL y no NULL, por último la constante hwdn no existe en Delphi, debes pasar handle que es el handle de la ventana que invoca al otro programa, para tu caso sería
ShellExecute(Handle,NIL,PChar('C:\Rar\Rar.exe),'','',SW_SHOWNORMAL);
Observa que debes hacer una promoción de tipos de String a PChar en el tercer parámetro y como se trata de un .exe no necesitas aclarar que la operación es "open" lo unico que se puede hacer con un .exe es abrirlo :).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ShellExecute

Publicado por Damian (8 intervenciones) el 31/12/2002 14:58:28
Gracias Diego , ya me funciono correctamente...
lo que pasa es que hace años que utilizaba el Delphi, Me he acostumbrado a Visual Basic... A veces necesito hacer aplicaciones rápidas en Delphi...
nos vemossssss
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ShellExecute

Publicado por maCo (7 intervenciones) el 01/01/2003 07:43:45
Que raro que te hayas cambiado de Delphi a VB, siempre he oido lo contrario, y mi caso tambien es de VB a Delphi.

Interesante.
Chao
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar