Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

An alle C-Programmierer: Wie finde ich die Speicheradresse des Bildschirms und wie greife ich darauf zu?

3 Antworten

Bewertung
  • vor 1 Jahrzehnt
    Beste Antwort

    soweit ich das verstanden habe: garnicht.

    Die meisten betriebssysteme verbieten ein direktes schreiben in den speicher der angezeigt wird (mem exeption).

    Du kannst maximal eine API zum Betriebssystem "beauftragen" da was hinzuschreiben.

    bei windows wäre das GDI bzw. GDI+

    bei Unixoiden BS ist es der X-server

    Quelle(n): hab das Problem selbst
  • vor 1 Jahrzehnt

    Der Bildschirm selbst, hat keinen Speicher, nur der jeweilige Grafikserver, dessen Adressen sind in aller Regel in den Dokumentationen festgehalten. Ein direktes Schreiben an den Anzeigenbreich ist, wie mein Vorredner schon bemerkt hat, nicht möglich, da er unter Windows von der HAL (Hardware Abstraction Layer) und unter Linux vom Sicherheitssystem abgeblockt wird. Wenn du eine grafische Oberfläche benötigst, verwende tcl/tk oder ähnliche Toolkits, das geht immer noch am einfachsten.

  • vor 1 Jahrzehnt

    Poken ist out. Gibts nicht mehr, wie meine vorredner schon sagten. Windows liefert für jedes ausgabeobjekt einen Devicekontext. Dieser wird immer gleich angesprochen. Windows selbst und die verbundenen Treiber (Grafiktreiber, Druckertreiber ... ) sorgen dann dafür das die Zeichenbefehle über diesen Devicekontext an das physikalische Gerät weitergegeben wird. Das ist übrigens unabhänig davon ob du mit der alten API (MoveTo, LineTo et.) oder mit einer Klassenbibliothek arbeitest.

    Was du aber jederzeit machen kannst ist entweder den WM_PAINT (OnPaint bei klassen) abfängst und dort mit den API Befehlen zeichnen. Diese Nachricht liefert immer einen Devicekontext mit (u.U. versteckt in einer PaintStuct). Da kannst du dann nach herzenslust malen. Alle Zeichenbefehle beziehen sich dann auf dieses Fenster. Theoretisch kannst du auch das Fenster bestimmen und von aussen also aus einem externen Programm reinzeichnen. Bringt nur nicht viel, weil was du gezeichnet hast beim nächsten Paint wieder weg ist.

Haben Sie noch Fragen? Jetzt beantworten lassen.