![]() |
Re: Variablen Umwandlung
Ich will per PostMessage einen string verschicken. Zu dem thema hab ich auch was hier im forum gefunden und derjenige meinte, dass das mit LongInt(PChar(string)) als lParam/wParam des PostMessage geht. Er versendet auch was aber ich muss das dann irgendwie wieder in den string zurückwandeln.
MfG - Ghost007 |
Re: Variablen Umwandlung
du weisst aber schon, dass der wert 'destination' die grenzen eines longints sprengt und du somit nur die halben informationen zur verfügung hast ... beim zurückverwandeln, wie auch immer, kann somit nicht mehr das richtige rauskommen.
daher die frage, was willst du damit bezwecken? |
Re: Variablen Umwandlung
Zitat:
MfG - Ghost007 |
Re: Variablen Umwandlung
Zitat:
|
Re: Variablen Umwandlung
Zitat:
d.h. der param ist dann ein pointer auf die addresse wo der string gespeichert ist? Wenn ja, dann geht das ja nur programm intern, oder? Wie bekomm ich dann den string von programm A nach programm B ? MfG - Ghost007 |
Re: Variablen Umwandlung
WM_COPYDATA
|
Re: Variablen Umwandlung
Zitat:
Zitat:
Zitat:
|
Re: Variablen Umwandlung
So,
ich hab mir ma das WM_COPYDATA angeschaut, und auch einen ![]()
Delphi-Quellcode:
tmp ist das handle wo die data hingeschickt werden soll. Jedoch bekomm ich bei dem LongInt(@Data) einen error "incompatible types interger and pointer" :(
procedure SendName(name:string);
var Data: TCopyDataStruct; p: PChar; begin p:=PChar(name); with Data do begin dwData:=0; cbData:=Length(p)+1; lpData:=p; end; SendMessage(tmp,WM_COPYDATA,nil,LongInt(@Data)); end; MfG - Ghost007 |
Re: Variablen Umwandlung
zum Beispiel so:
Delphi-Quellcode:
const
WM_MYSTRINGTRANSFER = WM_USER + 151; type TForm1 = class(TForm) private dwAtom : DWORD; procedure SendString(s: String); procedure ReceiveProcedure(var aMSG: TMessage); message WM_MYSTRINGTRANSFER; end; {...} procedure TForm1.SendString(s: String); begin dwAtom := GlobalAddAtom(PChar(s)); SendMessage(self.Handle, WM_MYSTRINGTRANSFER, 0, dwAtom); end; procedure TForm1.ReceiveProcedure(var aMSG: TMessage); var pFileName : PChar; dwLen : DWORD; begin dwLen := MAX_PATH + 1; pFileName := StrAlloc(dwLen); try GlobalGetAtomName(aMsg.lParam, pFileName, dwLen); showmessage(pFileName); GlobalDeleteAtom(aMsg.lParam); finally StrDispose(pFileName); end; end; |
Re: Variablen Umwandlung
Ok,
ich muss zugeben ziemlich cool :D Das funktionier 1a. Jedoch würd mich noch interessieren was bei meinem post #18 falsch war. MfG - Ghost007 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz