AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WindowMessage COPYDATA ohne Window empfangen
Thema durchsuchen
Ansicht
Themen-Optionen

WindowMessage COPYDATA ohne Window empfangen

Ein Thema von cheatzs · begonnen am 27. Mär 2004 · letzter Beitrag vom 27. Mär 2004
Antwort Antwort
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#1

WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 12:08
Hey Leute,
kennt jemmand eine Möglichkeit die Message WM_COPYDATA zu empfangen, ohne das man ein Fenster machen muss? (also nonVCL ohne Fenster)
Ich brauch das Fenster nämlich nicht und möchte nicht nur einseitig mit einem anderen Programm über SendMessage kommunizieren.

Vielen Dank schonmal für alle Vorschläge.

Bye
Thomas Low
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 12:11
Ohne Fenster geht das nicht. Erstens können nur Fenster Nachrichten empfangen, zweitens musst du bei der WM_COPYDATA ja ein Fensterhandle als Ziel angeben. Benutz doch einfach ein unsichtbares Fenster.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 12:12
Besorg dir einfach ein handle... gibts irgend einen befehl (weiß den jetzt leider ni mehr) womit du dir ein handle holen kannst
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#4

Re: WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 12:56
wenn er dir noch einfällt kannsten ja mal noch schreiben
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 13:03
das war "AllocateHwnd" aber ich lese grad in der hilfe das es auch als "Fenster erstellen" bezeichnet wird. Aber das Fenster sieht man dann halt ni. Die Funktion befindet sich in der Unit "classes". Also einfach mal den source angucken wie das handle von windows geholt wird
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#6

Re: WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 13:59
Also so wie ich das aus der Funktion lese bekommt die ihr Handle auch nur durch das Erstellen eines unsichtbaren Fensters.
Deshalb hab ich es jetzt mal so probiert: (nach Luckie's Tutorial)

Delphi-Quellcode:
function WndProc(wnd: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM):LRESULT; stdcall;
begin
  Result := 0;
  case uMsg of
    WM_CREATE:
      startcalculating;
    WM_COPYDATA:
      ShowMessage(String(ShortString(PCopyDataStruct(lp)^.lpData^)));
    WM_DESTROY:
      PostQuitMessage(0);
  else
    Result := DefWindowProc(wnd,uMsg,wp,lp);
  end;
end;

begin
  wc.hInstance := hInstance;
  RegisterClassEx(wc);
  CreateWindowEx(0, ClassName, AppName, WS_POPUP, 0, 0, 0, 0, 0, 0, hInstance, nil);
  while(GetMessage(msg,0,0,0)) do
  begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;
  ExitCode := msg.wParam;
end.
Das Problem ist er empfängt jetzt WM_COPYDATA nur 1 mal und zeigt die Nachricht in nem MessageDialog an. Dann kann ich es so oft senden wie ich will, es passiert nix mehr.

Hab ich irgendwas vergessen?
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#7

Re: WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 14:36
Habs selbst gefunden...mehr oder weniger zu mindest.
Es lag wahrscheinlich am Aufruf des MessageDialogs und daran das er ja erst nach einer bestimmten Zeit wieder geschlossen wird oder was weiß ich.

Auf jeden Fall wenn ich irgendwas anderes mache, z.B. etwas in ne Datei schreiben, sobald ich das WM_COPYDATA erhalten, dann geht es.

Trotzdem vielen Dank für eure Hilfe,
vielleicht brauch ich das Fenster ja doch noch irgendwann
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
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