Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pseudalopex

Executavel

Recommended Posts

Estou usando esse comando para fechar um programa.

PostMessage(FindWindow('NomeDaJanela, nil), WM_CLOSE,0,0);

 

Tem alguma maneira de definir o nome do executavel (NomeDaJanela) com esse código abaixo?

 

 

ShellExecute(Handle, 'open',  'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos la.

Eu fiz um programa. Que executa outro. Uma espécie de laucher.

 

Estou usando o seguinte comando.

ShellExecute(Handle, 'OPEN', PChar('main.exe'), PChar('/connect /u201.36.36.201 /p5687'), nil, SW_SHOWNORMAL);

Quando o programa é executado ele nao maximiza mas, ele fica por cima de tudo. Não consigo minimizar ele, e se tento acionar o TaskBar ele fecha.

Estou tendo dificuldades para descobrir o nome da janela. Pois não aparece em lugar nenhum.

Nem no Winsight32.

 

Tenho dois lauchers aqui que funcionam da seguinte maneira. Eles abrem esse programa dentro de uma janela nova e definem um nome para ela.

Que a partir desse nome pode se restaurar, minimizar...

 

Eu nao preciso necessariamente mudar o nome da janela quando ele executar. Preciso saber como manipular ele depois de aberto. Mas nao estou conseguindo descobrir o Handle ou nome da janela. Porque nao aparece em nenhum lugar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim?

 

Eu tenho esse código aqui.

Var SUInfo: TStartupInfo;	ProcInfo: TProcessInformation;	CmdLine: String;Begin	CmdLine := '"C:\Arquivos de Programas\Aplicativo\Executavel.exe"';	FillChar( SUInfo, SizeOf( SUInfo ), #0 );	With SUInfo Do Begin		cb := SizeOf( SUInfo );		dwFlags := StartF_UseShowWindow;		wShowWindow := Sw_ShowNormal;	End;	If CreateProcess( Nil, PChar( CmdLine ), Nil, Nil, False,	Create_New_Console Or Normal_Priority_Class, Nil,	PChar( 'C:\Arquivos de Programas\Aplicativo\' ), SUInfo, ProcInfo ) Then Begin		Sleep( 5000 );		TerminateProcess( ProcInfo.hProcess, 0 );		CloseHandle( ProcInfo.hProcess );		CloseHandle( ProcInfo.hThread );	End;End;

Ele abre o executavel e depois de um tempo ele fecha. Mas nao to sabendo pegar o nome da janela.

Nao estou conseguindo obter o Handle do Main.exe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei isto na internet:

 

function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif}var  Buffer : Array[0..99] of char;begin  GetWindowText(Wnd,Buffer,100);  if StrLen(Buffer) <> 0 then	Form.ListBox1.Items.Add(StrPas(Buffer));  Result := True;end;procedure TForm1.Button1Click(Sender: TObject);begin  EnumWindows(@EnumWindowsProc,LongInt(Self));end;

Vai listar todas as janelas possíveis abertas no windows...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.