Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Eigene Anwendung bei Mehrfachstart beenden (https://www.delphipraxis.net/166958-eigene-anwendung-bei-mehrfachstart-beenden.html)

DeddyH 7. Mär 2012 14:58

AW: Eigene Anwendung bei Mehrfachstart beenden
 
Lesen bildet:
Zitat:

An application sends the WM_COPYDATA message to pass data to another application.

#define WM_COPYDATA 0x004A

Parameters

wParam

A handle to the window passing the data.
lParam

A pointer to a COPYDATASTRUCT structure that contains the data to be passed.

Und wie diese Struktur aussieht, habe ich eben schon verlinkt.

MiKaEr 7. Mär 2012 15:01

AW: Eigene Anwendung bei Mehrfachstart beenden
 
das habe ich bereits gelesen aber ich verstehe es einfach nicht, deswegen wandle ich meinen string doch in ein integer-konstrukt um.

ich bekomme es ja scheinbar gesendet, aber ich kann es nicht empfangen.

Luckie 7. Mär 2012 15:03

AW: Eigene Anwendung bei Mehrfachstart beenden
 
Klick doch einfach mal auf die Links die dir gegeben werden. Dann siehst du, dass du einen Record füllen musst und als Parameter an WM_COPYDATA übergeben musst.

Zitat:

Zitat von MiKaEr (Beitrag 1155115)
das habe ich bereits gelesen aber ich verstehe es einfach nicht, deswegen wandle ich meinen string doch in ein integer-konstrukt um.

Und du meinst, Windows weiß, dass du es nicht verstehst und ändert für dein Programm die Implementation von WM_COPYDATA? :roll:

DeddyH 7. Mär 2012 15:04

AW: Eigene Anwendung bei Mehrfachstart beenden
 
Hier im Forum suchenWM_COPYDATA Da wird doch wohl mindestens ein Beispiel zu finden sein.

MiKaEr 7. Mär 2012 15:06

AW: Eigene Anwendung bei Mehrfachstart beenden
 
auf seite zwei steht doch was ich abgeändert habe:

Zitat:

Zitat von MiKaEr (Beitrag 1155110)
das mit dem "letzten feld", verstehe ich übrhaupt nicht.

ich sende meinen "string" nun im ascii-format:

Delphi-Quellcode:
     iNew := 0;

     for i := 0 to Length(ParamStr(2)) - 1 do
      iNew := iNew + Ord(ParamStr(2)[i]);

     SendMessage(hExisting, WM_COPYDATA, iNew, 0);
und egal was ich mache, folgendes trifft, warum auch immer, nie ein:

Delphi-Quellcode:
 if Msg.message = WM_COPYDATA then
   showmessage(inttostr(Msg.wParam));


DeddyH 7. Mär 2012 15:08

AW: Eigene Anwendung bei Mehrfachstart beenden
 
:wall: WM_COPYDATA erwartet als 2. Parameter zwingend einen Zeiger auf die nun schon mehrfach angesprochene Struktur (ein Record). Wenn Du etwas anderes reinpackst, darfst Du Dich nicht wundern, dass es nicht funktioniert.

Sir Rufo 7. Mär 2012 15:09

AW: Eigene Anwendung bei Mehrfachstart beenden
 
Zitat:

Zitat von MiKaEr (Beitrag 1155115)
das habe ich bereits gelesen aber ich verstehe es einfach nicht, deswegen wandle ich meinen string doch in ein integer-konstrukt um.

ich bekomme es ja scheinbar gesendet, aber ich kann es nicht empfangen.

Ja, aber was sendest du denn da?

Vereinfachen wir das mal mit dem Wort
Code:
SUB (keine ASCII-Werte, sondern A=1, Z=26)

S = 19
U = 21
B = 2

19 + 21 + 2 = 42
Du sendest also den Wert 42 an das Programm ;)

Luckie 7. Mär 2012 15:09

AW: Eigene Anwendung bei Mehrfachstart beenden
 
Noch mal. WM_COPYDATA erwartet dort einen Zeiger auf eine Struktur und nichts anderes. Und wenn du nicht das übergibst, was Windows erwartet, dann funktioniert es eben nicht.

MiKaEr 7. Mär 2012 15:19

AW: Eigene Anwendung bei Mehrfachstart beenden
 
eigentlich war das alles nur als übung gedacht und somit um "weiterzukommen".

stattdessen muss man sich in diesem forum von den, so nennen sie sich wahrscheinlich selbst, "großen" anhören

Zitat:

Lesen bildet
oder
Zitat:

:wall:
unter einem forum mit "netten leuten" die auch für scheinbar "dumme anfänger" nette antworten haben, stelle ich mir was anderes vor!

DeddyH 7. Mär 2012 15:20

AW: Eigene Anwendung bei Mehrfachstart beenden
 
Nun hatte ich gerade eine Demo erstellt, aber wenn jemand lieber brüllt anstatt ein Minimum an Eigeninitiative zu zeigen, spare ich mir das Posten. Gute Nacht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr.
Seite 2 von 3     12 3      

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