AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Daten zwischen 2 Prozessen austauschen?? Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Daten zwischen 2 Prozessen austauschen?? Wie?

Ein Thema von thomasdrewermann · begonnen am 6. Sep 2002 · letzter Beitrag vom 30. Sep 2002
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#21
  Alt 19. Sep 2002, 14:29
Es ist ein Teil der Schulschutz-software die ich und theomega entwickeln.
Diese Teil, sperrt alle anwendungen. Der Lehrer kann dann eine Anwendung freigeben. Das Basis-Prg auf dem Client sendet diese Anwedung dann an die anwendung, die du testetes.

Ich hoffe du konntest was mit der Beschreibung anfangen
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#22
  Alt 29. Sep 2002, 15:51
Kann mir jemand noch ein Code zur Verwendung von WM_COPYDATA basteln?

Wäre echt nett, da die Register Window Message Methode nicht sehr zuverlässig ist

MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#23
  Alt 29. Sep 2002, 17:52
Moin Thomas,

bist Du mal so gut, mir zu erklären, was an RegisterWindowMessage unzuverlässig ist?

Um zu verhindern, dass Du einen String angibst, der eventuell schon von einem anderen verwendet wird, lässt Du Dir am Besten von der IDE einen GUID String generieren (Strg-Shift-G). Der sollte, zumindest gemäss der Theorie, weltweit eindeutig sein.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#24
  Alt 29. Sep 2002, 19:34
Mal kommt die Message an mal passiert gar nichts


Was kann ich damit verhindern?
Zitat:
Um zu verhindern, dass Du einen String angibst, der eventuell schon von einem anderen verwendet wird, lässt Du Dir am Besten von der IDE einen GUID String generieren (Strg-Shift-G). Der sollte, zumindest gemäss der Theorie, weltweit eindeutig sein.
Was ist ein IDE/GUID String?


MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#25
  Alt 29. Sep 2002, 19:43
GUID heißt Global Unique IDentifier. Das ist eine ID, die weltweit nur einmal vorkommen soll. In der IDE von Delphi gibt es eine Option, so einen zu erzeugen. Eben besagtes Strg+Alt+G.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#26
  Alt 29. Sep 2002, 19:45
Und welchen Fehler kann ich jetzt damit verhindern?
Oder was bringt mich das Weiter?
Was kann ich mit so einer ID machen?
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#27
  Alt 29. Sep 2002, 20:20
Moin Thomas,

Du hattest die Zuverlässigkeit von Messages angezweifelt, die Du mit RegisterWindowMessage erzeugst.
Das würde stimmen, wenn der String der übergeben wird nicht eindeutig ist. Nimmst Du an dieser Stelle aber einen GUID String, so sollte dieser eindeutig sein.

Wenn die Message mal ankommt, und mal nicht, würde mich mal interessieren, wie Du das Ganze implementiert hast.
Da die Message ja nur einmal registriert werden muss, platzierst Du den Aufruf von RegisterWindowMessage am Besten im initialization Abschnitt des Hauptformulares.

Ich schau aber auch noch mal nach, wo ich eine Demo für WM_COPYDATA habe.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#28
  Alt 29. Sep 2002, 20:46
Die Window Message wird doch beim Sender erzeugt, oder?

Wenn ja, dann hab ich die tatsächlich öfter erzeugt

MFG
Thomas
Sport ist mord...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#29
  Alt 30. Sep 2002, 01:38
Moin Thomas,

wie oft Du RegisterWindowMessage in einem Programm aufrufst spielt keine Rolle. Wenn jedesmal der gleiche String übergeben wird, erhältst Du auch jedes mal den gleichen Rückgabewert. Deshalb ist es auch wichtig einen eindeutigen String anzugeben.
Aufrufen musst Du das bei allen beteiligten Programmen (müssen nicht nur zwei sein). Damit auch alle die gleiche Message erhalten muss auch bei allen beteiligten Programmen exakt der gleiche String übergeben werden.

Um allen Programmen die die entsprechende Message behandeln können gleichzeitig die Message zu schicken könntest Du

SendMessage(HWND_BROADCAST,.....)

verwenden. Es wird also kein spezielles Handle angegeben, sondern eben, als Ersatz, HWND_BROADCAST.
Da sich dieser Aufruf allerdings auf alle Fenster bezieht sollte man ihn sparsam einsetzen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#30
  Alt 30. Sep 2002, 02:04
Zitat von Christian Seehase:
Es wird also kein spezielles Handle angegeben, sondern eben, als Ersatz, HWND_BROADCAST.
Da sich dieser Aufruf allerdings auf alle Fenster bezieht sollte man ihn sparsam einsetzen.
Und wenn man dann doch eine doppelte MessageID erwischt hat, könnte das hier zu Problemen führen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 21:27 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