Estaba haciendo esta prueba, pero me tengo que ir... si alguien quiere continuarla...
Código Delphi
[-]
program AppConsole;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows,
Messages;
var
Dummy: string;
begin
SendMessage(StrToIntDef(ParamStr(1), 0), WM_SETTEXT, 0, Integer(PChar(ParamStr(2))));
WriteLn(ParamStr(2));
ReadLn(Dummy);
end.
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
MyDesk: HDESK;
ProcessInfo: TProcessInformation;
StartupInfo: TStartupInfo;
begin
MyDesk := CreateDesktop('Delphi.com.ar', nil, nil, DF_ALLOWOTHERACCOUNTHOOK,
DESKTOP_CREATEWINDOW or DESKTOP_SWITCHDESKTOP,
nil);
if MyDesk <> 0 then
try
SwitchDesktop(MyDesk);
ZeroMemory(@StartupInfo, SizeOf(TStartupInfo));
StartupInfo.cb := SizeOf(TStartupInfo);
StartupInfo.lpDesktop := PChar('Delphi.com.ar');
CreateProcess(nil, PChar('AppConsole.exe' + IntToStr(Handle) + ' ' + Edit1.Text),
nil, nil, True, CREATE_DEFAULT_ERROR_MODE or CREATE_SEPARATE_WOW_VDM,
nil, nil, StartupInfo, ProcessInfo);
try
Sleep(5000);
finally
CloseHandle(ProcessInfo.hProcess);
end;
finally
CloseDesktop(MyDesk);
end;
end;
end.
Saludos!