Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#6

Re: Suche einen Fehlerfinder!

  Alt 29. Apr 2009, 16:16
Hallo,

ändere bitte mal den
Delphi-Quellcode:
TStringRecord=record
  var1:string;
end;
in
Delphi-Quellcode:
TStringRecord=record
  var1:string[255];
end;
und natürlich alles, was dann damit zusammenhängt.
Meine mich schwach daran erinnern zu können, bei Strings ohne Längenangabe in Records immer Probleme gehabt zu haben.

Einfacher werden die Änderungen vermutlich, wenn Du CDString in einen String änderst und auf var1 verzichtest.
Delphi-Quellcode:
function _SendData(vData, ReceiverTitle:string):boolean;
type
  // TStringRecord=record
  // var1:string[255];
  // end;
  TlParamRecord=record
    none,
    count:word;
    Pointer:Cardinal;
  end;
var
  // CDString:TStringRecord;
  CDString:String;
  vs_cds:TlParamRecord;
  pCDString,
  pStruct:Cardinal;
  strLen:integer;
  hwndRec:HWND;
const
  MHAdditionalIdentifier='_CAL987qwerty2468';
  WM_COPYDATA_MH=$4A;
begin
Result:=true;
if(Length(ReceiverTitle)=0)
  then Result:=false
  else begin
  ReceiverTitle:=ReceiverTitle+MHAdditionalIdentifier;
  strLen:=Length(vData);
  // SetLength(CDString.var1, strLen);
  SetLength(CDString, strLen);
  // CDString.var1:=vData;
  CDString:=vData;
  pCDString:=integer(@CDString);
  vs_cds.count:=strLen+1;
  vs_cds.Pointer:=pCDString;
  pStruct:=integer(@vs_cds);
  hwndRec:=FindWindow('AutoIt v3 GUI', PAnsiChar(ReceiverTitle));
  if(hwndRec=0)
    then Result:=false
  else if(SendMessage(hWndRec, 74, 0, pStruct)=0)
    then Result:=false;
  end;
end;
  Mit Zitat antworten Zitat