Página 1 de 1
[source] Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 15 Ago 2010, 19:56
por p0is0n-123
Haciendo practicas con funciones,y APIs pense en una funcion que ejecutara visible un archivo (exe,jpg,etc...) con solo pasarle la Ruta,quizas les sea util para sus proyectos de Downloaders o similares..
Quiero dar gracias a
ps1c0s1s por aguantarme en el msn con alguna duda tonta antes de empezar con el lenguaje y demas....
Compilado con Dev C++
Código: Seleccionar todo
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
////////////////////////////////////////////////////////////////////////
char sExecute(char* sPath) //c0d3d p0is0n
{
if(sPath==NULL)
{
MessageBox(0,"Ruta Invalida","sExecute Function C",MB_OK);
}
ShellExecute(0,"open",sPath,0,0,1);
}
/////////////////////////////////////////////////////////////////////////
//Ejemplo de Uso........
int main(int argc, char *argv[])
{
sExecute("prueb.exe"); //Works Fine =)
getch();
}
Se mira Fud
File Info
Report date: 2010-08-15 23:19:37 (GMT 1)
File name: proyecto1-exe
File size: 17963 bytes
MD5 Hash: fa1c890ec753520540f1262a6e0abbba
SHA1 Hash: a912d7e7d13d35d4a78a0ab309d7be0bdf010b89
Detection rate: 0 on 16 (0%)
Status: CLEAN
Detections
a-squared -
Avast -
AVG -
Avira AntiVir -
BitDefender -
ClamAV -
Comodo -
Dr.Web -
F-PROT6 -
Ikarus T3 -
Kaspersky -
NOD32 -
Panda -
TrendMicro -
VBA32 -
VirusBuster -
Scan report generated by
[Enlace externo eliminado para invitados]
Supongo que habrá criticas..Pero apenas estoy empezando asique hice lo que pude,Gracias..
Salu2
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 15 Ago 2010, 21:58
por K-0Z
muy bueno... vere como se puede hacer en c++ aunque creo que no hay diferencia
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 15 Ago 2010, 23:08
por linkgl
poison hay que acostumbrarse a colocar el return 0; al final de los programas para no tener problemas con otros compiladores!, y sería bueno que la funcion retornara boleano para poder ponerla con IF'S y otras condicionales (:
algo como esto es a lo que me refiero:
Código: Seleccionar todo
bool sExecute(char* sPath) //c0d3d p0is0n
{
if(sPath==NULL)
return false;
if(ShellExecute(0,"open",sPath,0,0,1))
return true;
else
return false;
}
así puedes manipular tu mensaje de error como tu quieras en tu programa
--Edito, si solo vas a usar apis para tu programa pues no necesitas las demas librerías solo windows.h y en vez de usar main, deberías usar winmain
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 16 Ago 2010, 11:47
por p0is0n-123
Gracias por la critica link
Salu2
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 16 Ago 2010, 15:19
por ØnLy
Lindo, lo probare!
Saludos!
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 16 Ago 2010, 21:35
por masangel
Bueno pues yo aqui les dejo Mi Funcion saludos a Frozen y Horricreu Zero (Gracias porque luego tengo dudas y me ayudan)
PD compilado Visual c++ 2005
Código: Seleccionar todo
#include <iostream>
#include <windows.h>
bool Funcion (char* ruta)
{
if (ruta==0)
{
std::cout <<"no se cargo la ruta correctamente" <<std::endl;
return false;
}
else
{
HINSTANCE d = ShellExecute (NULL,"open",ruta,NULL,NULL,1);
std::cout <<"Se ejecuto Correctamente" <<std::endl;
}
return true;
}
Ejemplo de Uso
int main ()
{
Funcion("Tu ruta");
return 0;
}
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 16 Ago 2010, 21:39
por p0is0n-123
En C++....Te quedo muy buena
Salu2
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 17 Ago 2010, 00:40
por scuarplex
masangel, una consulta: el "return true;" lo pusiste fuera del else por algo en especial?
No devolvería false y después true? o acaso se corta en el primer return?
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 17 Ago 2010, 01:32
por linkgl
scuarplex escribió:masangel, una consulta: el "return true;" lo pusiste fuera del else por algo en especial?
No devolvería false y después true? o acaso se corta en el primer return?
Cuando la funcion retorna el primer valor automaticamente se sale de la funcion, osea solo puede retornar un valor, o retorna false o true, aunque si era lo que te iba a comentar masa, que pongas el true dentro del else por que si se produce algun otro error al ejecutar el programa que no sea el del path va a retornar true :/
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 17 Ago 2010, 01:33
por osnaraus
scuarplex escribió:masangel, una consulta: el "return true;" lo pusiste fuera del else por algo en especial?
No devolvería false y después true? o acaso se corta en el primer return?
Para el caso, es lo mismo. Es más! se podría obviar el "else" y funcionaría igualmente
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 17 Ago 2010, 02:38
por masangel
Ok checare ese code gracias por la observacion
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 18 Ago 2010, 00:53
por ps1c0s1s
bien ahi es lindo ver avanzar a alguien ! y De nada loco , en lo q sea aprendizaje cuenta conmigo ! un abrazo
Re: Funcion sExecute [Api ShellExecute] c0d3d p0is0n
Publicado: 26 Ago 2010, 17:26
por adolf
para poison
lo mismo que en la otra funcion, no tiene mucha logica hacer eso de poner solo un api dentro de una funcion, segundo, podrias validar si la ruta ingresada es valida
if( ShellExecute(....) == ERROR_FILE_NOT_FOUND )
{
MessageBox( 0 , "Error Archivo no econtrado !!" , "Error !!" , 0 );
}
y para masangel, de claro una variable que no utiliza
HINSTANCE d = ShellExecute (NULL,"open",ruta,NULL,NULL,1);
para tu codigo, eso que marcaste es innecesario, no lo utilizas mas , tienes que tener ojo con estas cosas.
Tener cuidado con las cosas que declaran , en otra funcion de poison creo que era un downloader vi declarado un puntero a funcion ( typedef ... Down .... ) y su comentario dice que era un handle de una funcion, tienen que tener cuidado con esto.