AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

WMCopyData absichern

Ein Thema von Glados · begonnen am 11. Nov 2017 · letzter Beitrag vom 12. Nov 2017
Antwort Antwort
Glados

Registriert seit: 10. Jul 2017
546 Beiträge
 
#1

WMCopyData absichern

  Alt 11. Nov 2017, 20:12
Zuerst sei folgender Beitrag erwähnt: https://stackoverflow.com/questions/...16703#35516703

Im initialization-Abschnitt wird das hier geschrieben dwMyCopyDataID := RegisterWindowMessage('MyCopyDataID');
In WmCopyData wird dann geprüft if Msg.CopyDataStruct.dwData = dwMyCopyDataID then

Aber was übergebe ich zuvor dwData, damit das alles auch funktioniert? Entweder sind mein Englischkenntnisse zu schlecht oder in oben genannten Beitrag steht es nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.469 Beiträge
 
Delphi XE3 Professional
 
#2

AW: WMCopyData absichern

  Alt 11. Nov 2017, 20:26
Zitat:
Aber was übergebe ich zuvor dwData, damit das alles auch funktioniert?
Das Selbe?

Eigentlich wird hier MSDN-Library durchsuchenRegisterWindowMessage missbraucht.

Man nutzt das eigentlich, um sich eine "global" ein eindeutige MessageID zu besorgen.
Windows nimmt den überbebenen Bezeichner, ist er noch nicht bekannt, wird dafür eine ID generiert,
und ist er schon bekannt, dann bekommt man die vorher erstellte ID.

Normaler Weise wird diese ID dann für SendMessage zwischen zwei Programmen verwendet,
aber WM_COPYDATA gibt es nur als eine MessageID, also verwenden die diese ID hier nun als Kennung innerhalb der kopierten Daten.

Statt RegisterWindowMessage kannst du hier auch einen hardgecodeten Identifikator verwenden oder eine ID aus einer anderen Quelle nutzen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (11. Nov 2017 um 20:46 Uhr)
  Mit Zitat antworten Zitat
Glados

Registriert seit: 10. Jul 2017
546 Beiträge
 
#3

AW: WMCopyData absichern

  Alt 11. Nov 2017, 20:58
Zitat:
Statt RegisterWindowMessage kannst du hier auch einen hardgecodeten Identifikator verwenden oder eine ID aus einer anderen Quelle nutzen.
Ich habe bereits eine vom inno-Setup generierte Zeichenkette als String vorliegen. Dann werde ich die mit SameText vergleichen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
33.469 Beiträge
 
Delphi XE3 Professional
 
#4

AW: WMCopyData absichern

  Alt 11. Nov 2017, 23:12
Ist auch was.
Es geht ja nur darum zu "authentifizieren" von wo die WM_COPYDATA-Message kommt, denn leider bekommt man beim SendMessage/PostMessage vom Windows nicht mitgeteilt von wem diese Message kommt und es kann dir ja praktisch fast jedes Programm soeine Message schicken.

Alternativ gibt es auch andere Möglichkeiten der IPC, außer den Messages.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Glados

Registriert seit: 10. Jul 2017
546 Beiträge
 
#5

AW: WMCopyData absichern

  Alt 12. Nov 2017, 00:18
Mit dem Cardinal-Wert den ich als Konstante festgelegt habe, sollte es eigentlich reichen.
Für diese kleine Angelegenheit reicht WMCopyData vollkommen. Es geht nur darum Daten an die laufende Anwendung zu schicken, wenn man zum Beispiel die Anwendung mit Parametern noch einmal über die Kommandozeile o.ä. startet. Ist die Anwendung (Empfänger) bereits aktiv, werden die Parameter weitergegeben und die zweite Instanz (Sender, über Kommandozeile) sofort beendet.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:

Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2017 by Daniel R. Wolf