Sind HWND immer unique?



  • Mechanics schrieb:

    Handles sind prozessübergreifend. Du kannst dir aus Prozess A ein Handle von einem Fenster in Prozess B holen. Da kann keine PID drinstecken.

    Die APIs, die mit dem HWND arbeiten, müssen letztlich mit anderen Prozessen kommunizieren können. Rohe Pointer sind dafür recht ungeeignet. Wenn ein Fenster eine WM_xxx an ein anderes Fenster schickt, läuft unter Umständen im Hintergrund eine Interprozess-Kommunikation ab.

    Windows nutzt für sein Fenstersystem ein Konzept aus "Windowstations" und "Desktops". Das gab es zur Zeit der ersten Windows-Versionen auch noch nicht, wie auch Multiprocessing für Windows unbekannt war.

    Windows ist historisch gewachsen, wurde immer weiter aufgerüstet. Perfektes Systemdesign war nie das Ziel, sondern Geld machen mit einem Produkt, das den Kunden gerade so zufrieden stellt.
    🙂



  • WinFreak not Winfried schrieb:

    Perfektes Systemdesign war nie das Ziel [...]

    Google mal nach "Dave Cutler"... 😉



  • dot schrieb:

    WinFreak not Winfried schrieb:

    Perfektes Systemdesign war nie das Ziel [...]

    Google mal nach "Dave Cutler"... 😉

    Ich kenne das Buch "Showstopper".
    Würde ich jedem Windows-Fan empfehlen:
    https://www.amazon.com/Showstopper-Breakneck-Windows-Generation-Microsoft/dp/0759285780



  • WinFreak not Winfried schrieb:

    ... sondern Geld machen mit einem Produkt, das den Kunden gerade so zufrieden stellt.

    Gerade so zufrieden ... na ja. Ein Marktanteil von über 90 Prozent bei Desk- und Laptops spricht nicht für "gerade so zufrieden". Der Plan, Geld zu machen, ist also ziemlich gut aufgegangen, würde ich sagen.

    Und 9999 von 10000 Kunden kommen mit sowas wie HWND niemals in Berührung, es kann ihnen also völlig latte sein, wie die Dinger zusammengemixt werden.

    Dass andere Betriebssysteme viel viel toller sind als Windows, versteht sich von selber. Aber die waren eben, als der Internet-Hype losging, nur für Nerds benutzbar. Computer kaufen und lossurfen ging damit nicht, mit Windows schon. Oder sie waren damals schon teuer und elitär.



  • Printe schrieb:

    WinFreak not Winfried schrieb:

    ... sondern Geld machen mit einem Produkt, das den Kunden gerade so zufrieden stellt.

    Gerade so zufrieden ... na ja. Ein Marktanteil von über 90 Prozent bei Desk- und Laptops spricht nicht für "gerade so zufrieden". Der Plan, Geld zu machen, ist also ziemlich gut aufgegangen, würde ich sagen.

    Und 9999 von 10000 Kunden kommen mit sowas wie HWND niemals in Berührung, es kann ihnen also völlig latte sein, wie die Dinger zusammengemixt werden.

    Dass andere Betriebssysteme viel viel toller sind als Windows, versteht sich von selber. Aber die waren eben, als der Internet-Hype losging, nur für Nerds benutzbar. Computer kaufen und lossurfen ging damit nicht, mit Windows schon. Oder sie waren damals schon teuer und elitär.

    Microsoft machte Knebelverträge mit Computerhändlern. Den Kunden wurde Windows einfach untergejubelt. Sogar heute noch ist Windows auf neuen PCs gleich mit drauf. Wenn du einen PC ohne Windows haben willst, guckt der Händler erstmal doof. Viele bieten das nicht einmal an.

    Aus dem Grund habe ich mir auch geschworen, für MS-Software niemals Geld auszugeben. Außer Windows benutze ich eh nichts davon.

    Internet konnte Windows erst sehr spät. Unter Win3.1 musste man noch das benutzen: ftp://ftp.fh-niederrhein.de/pub/oldstuff/win31/winsock/trumpet/twsk20b.zip

    Technologisch gesehen war Microsoft schon immer der Nachzügler. Grafische Benutzeroberfläche ist von Apple abgekupfert, Internet von Unix, C# von Java, usw.



  • Auweia...was für ein Gesülze. Der böse Microsoft-Konzern...blabla. Der Threadstarter hatte nur wissen wollen wie "einzigartig" HWND's sind.

    Da ist es völlig egal ob Handle Zeiger auf Typen (struct) sind oder void oder...oder nicht. Die Programmierschnittstelle mit dem Betriebssystem (Windows) ist funktionsorientiert (user32.dll, gdi32.dll, kernel32.dll, opengl32.dll,...).
    Ressourcen werden über Funktionen manipuliert, damit Windows weiß welche Ressource (Windows-Objekt) gemeint ist, existieren Handles (Identifikatoren). GDI-Objekte und deren Handle sind z.B. privat für den Prozess. Kernel-Objekte sind spezifisch für den Prozess. User-Objekte unterstützen nur ein Handle per Objekt. Und es ist dabei völlig egal, wie das Handle in C++ umgesetzt ist. Ergo...ja, User-Objekte sind immer "unique". Kernel-Objekte (Prozessrelaitv) können unterschiedlich sein, obwohl die auf die gleiche Ressource verweisen (z. B. Datei).

    🙄



  • FrankTheFox schrieb:

    Kernel-Objekte sind spezifisch für den Prozess.

    Falsch.

    FrankTheFox schrieb:

    Und es ist dabei völlig egal, wie das Handle in C++ umgesetzt ist.

    Dir vielleicht.

    FrankTheFox schrieb:

    Kernel-Objekte (Prozessrelaitv) können unterschiedlich sein, obwohl die auf die gleiche Ressource verweisen (z. B. Datei).

    Was soll "prozessrelaitv" heissen? Und wieso schreibst du dauernd Kernel-Objekte wenn du die Handles meinst? Denn die Objekte sind sicher nicht unterschiedliche, das Objekt ist das Objekt und das ist immer das selbe.

    Dafür wie du dich hier als "Aufklärer" aufspielst schreibst du überraschend* viel Unfug. Im Endeffekt bist du genau so ein "ich bin wichtig" Quatschlaberant wie WinFreak.

    *: Ja, OK, ist gelogen. Überraschend ist es leider überhaupt nicht.



  • hustbaer schrieb:

    *: Ja, OK, ist gelogen. Überraschend ist es leider überhaupt nicht.

    Na, Butter bei die Fische, wieso ist das nicht überraschend?

    🙂



  • . o O ( jetzt geht er auch noch auf die Fische los 👎 ) blubb



  • WinFreak tha real fREAK! schrieb:

    Internet konnte Windows erst sehr spät. Unter Win3.1 musste man noch das benutzen:

    Ja, und Linux brachte das schon immer von Haus aus mit, weiß ich. Dafür war ne Linux-Inbetriebnahme bis in die Nuller Jahre hinein was für Experten, das änderte sich erst mit Ubuntu. Und ein paar Tücken hat es bis heute.

    Technologisch gesehen war Microsoft schon immer der Nachzügler. Grafische Benutzeroberfläche ist von Apple abgekupfert, Internet von Unix, ...

    Bei Benutzeroberflächen haben quasi alle von Apple abgekupfert, weil die die ersten waren. Mit Internet und Unix dasselbe - das Internet ist auf Unix-Systemen entstanden.
    Dafür waren Windows-Oberflächen wenigstens einheitlich. Wenn ich mir da alte X-GUIs angucke - grausig, jeder kochte sein eigenes Süppchen.

    Und Microsoft hats geschafft, dass jeder, der einen PC einschalten konnte, auch damit ins Internet kam. Ob das für die Sicherheit immer so toll war, steht auf nem anderen Blatt. Aber weltweite Kommunikation ist auch ein Wert an sich, und dass das für wirklich jeden zugänglich wurde (und nicht nur für die, die Zugang zu einem Großrechner hatten oder mit Linux umgehen konnten), das ist ein Verdienst von Microsoft.



  • FrankTheFox schrieb:

    hustbaer schrieb:

    *: Ja, OK, ist gelogen. Überraschend ist es leider überhaupt nicht.

    Na, Butter bei die Fische, wieso ist das nicht überraschend?

    Weil die Quatsch-Quote in Beiträgen die mit "ich klär euch jetzt mal auf" (sinngemäss) anfangen leider auch relativ hoch ist. Daher nicht überraschend wenn man wieder mal einen solchen liest.

    An dieser Stelle muss man auch fast den Dunning-Kruger Effekt erwähnen.



  • Och ne...Dunning-Kruger Effekt... 😃

    Ok, das mit den Kernel-Objekten stimmte so nicht. Nicht die Objekte sind Prozess-spezifisch sondern eher die Handle.

    Um auch weiterhin korrekt zu bleiben...

    Kernel Objekte
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms724485(v=vs.85).aspx

    User Objekte
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms725486(v=vs.85).aspx
    **
    GDI Objekte**
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms724291(v=vs.85).aspx

    🙂

    Und überall liest man wie böse und untalentiert Microsoft ist. Das mag ja auch so sein, aber ändert nix an nix



  • FrankTheFox schrieb:

    Och ne...Dunning-Kruger Effekt... 😃

    Ja, genau der. Was ist daran lustig?
    Mag jetzt sein dass das nicht auf dich zutrifft und du einfach nur schlampig bei der Formulierung warst. Allegmein ist das aber sehr wahr und auch sehr schön in Foren beobachtbar.

    FrankTheFox schrieb:

    Ok, das mit den Kernel-Objekten stimmte so nicht. Nicht die Objekte sind Prozess-spezifisch sondern eher die Handle.

    Um auch weiterhin korrekt zu bleiben...

    Kernel Objekte
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms724485(v=vs.85).aspx

    Ja. Jain 🙂
    Man kann Handles vererben. Wobei dann der Kind-Prozess natürlich seine eigene "Kopie" des Handles hat (das Handle im Parent-Prozess wird z.B. nicht ungültig nur weil der Kind-Prozess es schliesst), allerdings ist der Wert der beiden Handles identisch (und sie verweisen natürlich auch auf das selbe Objekt)

    FrankTheFox schrieb:

    Und überall liest man wie böse und untalentiert Microsoft ist. Das mag ja auch so sein, aber ändert nix an nix

    Ich würde sagen es kommt drauf an wo und was man liest.



  • hustbaer schrieb:

    Allegmein ist das aber sehr wahr und auch sehr schön in Foren beobachtbar.

    [offtopic]Ich kann das auch sehr schön an unseren Managern beobachten. [/offtopic]



  • Stimmt, das ist mein Problem. Denke drei Schritte zu weit, und meine Formulierung ist dann eben...schlampig. Passiert mir eben häufig. Sieht man auch an manchen Fragen die ich hier im Forum stelle.

    Am Effekt ist nix lustig, ich fand nur das es nicht unbedingt auf mich zutrifft.



  • Printe schrieb:

    Wenn ich mir da alte X-GUIs angucke - grausig, jeder kochte sein eigenes Süppchen.

    Ich finde Motif und den MWM ganz schick. Das läuft auf meiner alten SUN-Kiste. Die ist jetzt etwa 25 Jahre alt und immer noch ziemlich schnell. Hat ja auch 4 CPUs. Davon konnten die PC-User zu der Zeit nur träumen.

    Printe schrieb:

    Und Microsoft hats geschafft, dass jeder, der einen PC einschalten konnte, auch damit ins Internet kam. Ob das für die Sicherheit immer so toll war, steht auf nem anderen Blatt. Aber weltweite Kommunikation ist auch ein Wert an sich, und dass das für wirklich jeden zugänglich wurde (und nicht nur für die, die Zugang zu einem Großrechner hatten oder mit Linux umgehen konnten), das ist ein Verdienst von Microsoft.

    Ja, dass heute jede Hausfrau einen Computer bedienen kann, ist zweifellos MS zu verdanken. Die Massencomputerisierung ist aber nicht nur ein Segen. Du hast heute viel mehr Idioten im Netz, Viren, Skript-Kiddies, Kriminelle, Nazis, Fake-News, usw.

    Das Internet ist wie ein Dschungel geworden. Anfangs noch glaubte man, die Menschheit würde einen gewaltigen Sprung nach vorn machen, wenn jedem durch Internet das Wissen der Welt zu Füßen liegt. Aber diese Hoffnung wurde enttäuscht. Heute saust so viel Bullshit und verschwörungstheoretischer Mist durch Netz, dass wirklich wertvolles Wissen dadurch verdeckt wird.

    Naja, es kann nur bessere werden. 🙂


  • Mod

    Der Thread hat nichts mehr mit dem zu tun was der OP anfragte.
    Ich schließe jetzt, es wurde genug geschwafelt.


Anmelden zum Antworten