Ver Mensaje Individual
  #8  
Antiguo 17-11-2009
Avatar de matabyte
matabyte matabyte is offline
Miembro
 
Registrado: ene 2008
Ubicación: Kyoto, Japon
Posts: 177
Reputación: 17
matabyte Va por buen camino
Buenas compañeros, subo este post ya que estoy programando una aplicación, y si bien he usado el código de román para evitar que se abran varias veces la aplicación, lo que no he conseguido hacer es enviar un mensaje junto al mutex que contenga el "paramstr" de la aplicación que se cierra a la aplicación que está funcionando.

Estoy usando Delphi 2010.

Con este código envía
Código Delphi [-]
    
var st1,txt:string;
begin
  if ParamCount>0 then
   begin
     txt:=ParamStr(0)
   end;

//Esta línea funciona
  txt:='Esta línea funciona y se recibe, el paramstr no';
  SendMessage(HWND_BROADCAST, mActivar, 0, LongWord(pchar(st1)));
end;

No se porque al escribir en la variable "txt" el texto se manda correctamente, y al intentar mandar el "paramstr" no llega nada. He pensado que era del unicode, pero he escrito cadenas en japonés y funciona

El procedimiento que me lee los datos es tal que así:

Código Delphi [-]
function AppWndProc(Handle: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LongInt; stdcall;
var
  FgThreadId  : DWORD; { Hilo de la app. que tenga el foco }
  AppThreadId : DWORD; { Hilo de nuestra aplicaci        }
  txtchar;
  st,st2:string;
  fichero_uso,listo:boolean;
  b:integer;

begin
  if Msg = mActivar then
  begin
         txt := Pchar(LParam);
         st:=txt;
         if fileexists(st) then....   
  end;
end;

Como digo, llega la cadena escrita a mano, pero nada del paramstr, sabeis alguna manera?? Gracias.
Responder Con Cita