AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Verständnisprobleme mit SendMessage und VirtualAllocEx
Thema durchsuchen
Ansicht
Themen-Optionen

Verständnisprobleme mit SendMessage und VirtualAllocEx

Ein Thema von zero_x · begonnen am 10. Mai 2009 · letzter Beitrag vom 10. Mai 2009
Antwort Antwort
zero_x

Registriert seit: 12. Jun 2008
30 Beiträge
 
#1

Verständnisprobleme mit SendMessage und VirtualAllocEx

  Alt 10. Mai 2009, 15:30
Hallo Leute,

ich habe ein Verständnisproblem mit der SendMessage- und VirtualAllocEx-Funktion. Mein Vorhaben ist die Reihenfolge der Buttons in der Taskbar zu verändern und die Texte der Buttons auszulesen. Dazu habe ich hier ein Codebeispiel gefunden, wie man das umsetzen kann: http://www.delphipraxis.net/internal...=713216#713216 . Hier zu habe ich einige Fragen:
  • Warum wurde in dem Beispiel zweimal Speicher allokiert und wieder freigegeben?
  • Warum wurde im zweiten Codeausschnitt die SendMessage-Funktion(46. Zeile) verwendet bzw. warum funktioniert es ohne SendMessage nicht? Wenn man sich im Debugger die Werte anschaut, bleibt alles gleich. Warum?
  • In diesem Beispiel ist ein Typ "TExtraData" deklariert. Woher weiß man, wie der Typ aufgebaut ist?
  • Warum ist ist Buffer $1000 groß?
  • Wie kann man weitere Informationen(z.B. Text oder das Icon) über der Toolbar-Buttons herausfinden?

zero_x
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Verständnisprobleme mit SendMessage und VirtualAllocEx

  Alt 10. Mai 2009, 15:39
Eigentlich nur eine Frage pro Thread, damit die Suchfunktion auch nutzbar bleibt.
Zitat:
Wie kann man weitere Informationen(z.B. Text oder das Icon) über der Toolbar-Buttons herausfinden?
Dafür bitte einen neuen Thread.

Zitat:
Warum ist ist Buffer $1000 groß?
$1000(hex)= 4096 Bit = 4 Byte.
Zitat:
Pointer to the TBBUTTON structure that receives the button information.
Es wird ein Pointer abgespeichert, und dieser ist ein 32Bit integer. Daher nur 4Byte.

Zitat:
Warum wurde in dem Beispiel zweimal Speicher allokiert und wieder freigegeben?
Einmal wird Speicher für das Abspeichern der Koordinaten der Maus beim Klicken im fremden Prozess gebraucht und mit SendMessage wird geklickt. Wenn dort ein Button ist, dann kommt ein Handle zurück. Wenn auf einen Button geklickt wird, wird der alte Speicher frei gemacht und dann neuer Speicher für o.g. angefordert.
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  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 03:18 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