Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Text (Pfadangabe) per Windows Message verschicken (https://www.delphipraxis.net/133736-text-pfadangabe-per-windows-message-verschicken.html)

lbccaleb 17. Mai 2009 13:42

Re: Text (Pfadangabe) per Windows Message verschicken
 
Ich bin echt mit meinem Latein am ende :(

Habs so gemacht wie du gesagt hast aber geht nicht :(

Delphi-Quellcode:
function GetAllocFileName(wParam: WPARAM): PChar; //wparam ist nicht 0
var
  DataPtr: Pointer;
  begin;
    Result := '';
    DataPtr := GlobalLock(wParam); //aber hier gibts nen "nil" ich vermute das hier irgendwo mein Fehler steckt
// hier gibts laut getlasterror ein ungültiges handle :(
    If DataPtr <> nil Then Begin
      Try
        Result := PChar(DataPtr); // oder sonstwas
        MessageBox(0, 'get - pointer nil', 'fehler', MB_OK or MB_ICONWARNING);
      Finally
        GlobalUnlock(wParam);
      End;
    End Else {Fehler}
      MessageBox(0, 'get - dataptr leer', 'fehler', MB_OK or MB_ICONWARNING);
  end;
Erstmal danke für deine Hilfe, fällt dir noch was ein was falsch sein könnte?? *grummel*

mfg Caleb

Luckie 17. Mai 2009 14:09

Re: Text (Pfadangabe) per Windows Message verschicken
 
Was spricht eigentlich gegen WM_COPYDATA? Warum der Umstand?

SirThornberry 17. Mai 2009 14:24

Re: Text (Pfadangabe) per Windows Message verschicken
 
@Luckie: Das habe ich mich auch gefragt. wm_copydata ist die einfachste Variante (da dabei automatisch dafür gesorgt wird das die Daten im anderen Prozess gelesen werden können). Aber weil das nicht auf Anhieb funktioniert hat, wird eine kompliziertere Lösung gesucht bei der letzendlich genau an der gleichen Stelle der Fehler zu beseitigen ist + das was wm_copydata für einen von allein macht.
Anstelle hier einen riesen Umweg zu gehen wäre es aus meiner sicht Ratsamer zu schauen was und warum wm_copydata angeblich nicht funktioniert.

lbccaleb 17. Mai 2009 14:31

Re: Text (Pfadangabe) per Windows Message verschicken
 
Hallo,

das ist richtig, es ist die einfachste Lösung, und ja sie Funktioniert auch, aber ich möchte ganz gerne den anderen Weg geklärt haben ;)
In späteren Programmen möchte ich dann auf diesen weg weiter arbeiten, und wenn ich den Fehler finde, sollte die Funktionen auch gehen!

Bloß weil es im mom ein wenig schwierig ist (insbesondere weil ich nicht so rcht weiß wo der Fehler liegt) muss es Ihn aber geben, und ich währe halt zufrieden wenn ich diese Lösung benutzen könnte! Wenn alles nichts hilft, dann muss ich wohl auf WM_COPYDATA umsteigen, was ich aber eigentlich nicht vorgehabt habe, da ich dort KEINE eigene Messages nutzen kann.

Luckie 17. Mai 2009 15:05

Re: Text (Pfadangabe) per Windows Message verschicken
 
Eigene nachrichten brauchst du doch aich nicht. Die Datenstruktur für WM_COPYDATA bietet dir ein frei verwendbares Integer-Feld. Dieses kannst du nutzen, um die enthaltenen daten zu unterscheiden:

http://msdn.microsoft.com/en-us/library/ms649010(VS.85).aspx
-> dwData
Specifies data to be passed to the receiving application.

Delphi-Quellcode:
case dwData of
0: ; // mach dies mit den Daten
1: ; // mach jenes mit den Daten
end;

lbccaleb 17. Mai 2009 16:08

Re: Text (Pfadangabe) per Windows Message verschicken
 
Hallo, ich habe iene möglichkeit gefunden wie ich es mit WM_COPYDATA machen kann, aber wie oben beschrieben war das nicht mein Hauptziel! Sondern es mit eigenen Messages hinzubekommen! Trotzdem danke :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz