Página 1 de 1

ejecutar aplicacion oculta

Publicado: 01 Ago 2014, 06:20
por joselin
estaba viendo que


ShellExecute(Handle, 'open', pchar(edit1.text), NIL, nil, SW_hide) ;


solo oculta notepad pero no aplicaciones externas
probe con

var
  startupinfo: TStartupInfo;
  ProcInfo: TProcessInformation;
begin


          ZeroMemory(@startupinfo, sizeof(STARTUPINFO));
        startupinfo.cb := sizeof(STARTUPINFO);
        startupinfo.wShowWindow := SW_HIDE;
        startupinfo.dwFlags := STARTF_USESTDHANDLES;

if  CreateProcess (Nil, pchar(edit1.text),Nil,Nil,false,NORMAL_PRIORITY_CLASS or CREATE_NO_WINDOW,nil,nil,  startupinfo,ProcInfo)then
    showmessage('si');
pero sige siendo lanzado visible
alguna solucion?

Re: ejecutar aplicacion oculta

Publicado: 01 Ago 2014, 14:09
por Pink
es raro. creo que solo funciona con algunos. la otra opción seria crear el proceso. obtener el handle de la ventana y usar ShowWindow.

Saludos

Re: ejecutar aplicacion oculta

Publicado: 02 Ago 2014, 05:45
por joselin
Pink escribió:la otra opción seria crear el proceso. obtener el handle de la ventana y usar ShowWindow.
es la mejor forma que encontre pero tengo un problema, al buscar el handle.
si creo una tool que ejecute y busque el handle y oculte la ventana
se me crea el problema que el pid de un proceso tiene varios handles
y siempre caigo en el primero (que puede ser que no sea el de la ventana principal) por lo tanto no se ocultaria ,y cada exe segun su lenguage de creacion es variable,
sigo investigando gracias pink

Re: ejecutar aplicacion oculta

Publicado: 02 Ago 2014, 16:49
por Pink
lo que se me ocurre es usar RegisterWindowMessage+RegisterShellHookWindow+ShowWindow.

Saludos

Re: ejecutar aplicacion oculta

Publicado: 02 Ago 2014, 16:56
por Pink
Aunque creo que igual se vera un parpadeo en la ejecución.

Re: ejecutar aplicacion oculta

Publicado: 04 Ago 2014, 07:09
por joselin
intente mediante el pid obtener el handle y despues buscar el handle parent de las ventanas del mismo proceso , como lei en delphiacces pero no funciona
con todos los ejecutables , a veces no se encuenta la ventana principal, asi que no es el camino(nunca crei que un proceso tubiera tantas ventanas ocultas)
asi que queda funcional tu idea del hook,
saludos

Re: ejecutar aplicacion oculta

Publicado: 04 Ago 2014, 15:28
por Pink
Si necesitas ayuda ya sabes ;)

Re: ejecutar aplicacion oculta

Publicado: 04 Ago 2014, 19:31
por Pink
Otra alternativa podria ser usando SetWinEventHook. es mas fácil :)