.dll und windows nachrichtenschleife

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • .dll und windows nachrichtenschleife

    es scheint bekannt zu sein dass die tastatur-abfrage von gm nicht gerade die beste ist...

    ich dachte mir ich versuchs mal selber eine tastaturenabfrage funktion zu schreiben in einer .dll

    hab jmdn gefragt der sich damit auskennt:

    da mein programm eine desktopanwendung ist sind mir befehle wie readkey nicht möglich und ich muss in die nachrichtenschleife von windows eingreifen um wm_keypressed und sowas abfragen zu können.,,,,



    nur hier hört dann meine erfahrung auf... ist das überhaupt möglich? also stellt gm die benötigten werte der dll zur verfügung? was sind risiken? kann mir jmd helfen?



    ich will eine eigene dll schreiben wenn möglich, erst wenn ich keinen ausweg mehr sehe würde ich auch eine schon fertige .dll in erwägung ziehen wenn die denn mit gm funktioniert.



    also was ich brauche ist kein kurs um ne .dll zu schreiben sondern um erfolgreich in die nachrichtenschleife an windows einzugreifen
  • also ..

    zB auf meiner tastatur kan ich pfeil hoch und pfeil links nie gleichzeitig drücken,..

    drücken schon aber es passiert nur eins davon...

    auf adneren tastaturen kann man scheinbar "S" "1"(nicht numblock) und "A" nciht gleichzeitig drücken.

    man kann einfach je nach system oder tastatur bestimmte tasten nicht gleichzeitig drücken...

    das hat mir auch schonmal wer erzählt der game maker kennt dass das wohl an game maker liegt....



    bei gewöhnlichen ego shootern( nein ich programmieren keinen ego shooter) kann ich strafen (W + A zB) sprinten (STRG) und springen (leertaste) und schießen (mouse) auf einmal ohneprobleme... .miene tastatur kann schon mehrere tasten gleichzeitig drücken als die normalen billig-produkte....

    aber eben bei game maker hat man mit jeder tastatur probleme, aber NICHT mit gamepads.



    da gm schienbar nur 2 gamepds/joysticks unterstützt und mein spiel für 4 spieler sein soll (auch auf einem PC mit splitscreen) is die game maker tastaturabfrage also scheiße..

    durchschnittlich braucht man für mein spiel 2 tasten gleichzeitig pro spieler...

    oft können auch bei 4 spielern ruhig 5 oder 6 tasten gedrückt werden ohne probleme aber besitmmte kombinationen gehn einfach nicht... wie gesagt ist das unterschiedlich komischerweise je nach tastatur.



    was ich also machen müsste ist eine eigene tastaturabfrage-funktion zu programmieren, aber wie gesagt mus sich bei einer desktopanwendung in die "nachrichtenschleife von windows eingreifen" (zitat von jmdn den ich gefragt habe was ich tun müsste, da befehle wie readkey nicht gingen (benutze delphi klon -> lazarus) wobei dlls ja eigtl mi tjeder anderen sprache auch geschrieben werden könnten also falls es mit anderen sprachen einfacher ginge, nur her damit)), um an werte von wm_keypressed zu kommen da mir solche werte game maker wohl nicht übergibt mit seiner sturen beschneidung der programmierfreiheiten, da es ja für anfänger gemacht ist...

    hab mich dazu überreden lassen es zu benutzen, bin nicht zufrieden aber bis auf die tastenabfrage funzt doch alles... spiel ist auch schon in einem fortgeschrittenen stadium, es fehlen nahezu nur noch levels und ich will das nun auch in gm zu ende bringen, also brauch ich eine .dll mit einer tastenabfrage, am besten selber von mir geschrieben (mach sachen gern selber) und wenns ich ned schaff brauch ich ne vorgefertigte dll.



    so die tasten probleme sin nicht zu bestreiten, deswegen möchte ich wenn möglich gleich ne antwort hören die zur frage passt, ob das möglich sei und wie, da meine kenntnisse dafür nicht ausreichen.

    trotzdem genauere nachfragen werden natürlich beantwortet
  • anti0ogen blau schrieb:

    also ..

    zB auf meiner tastatur kan ich pfeil hoch und pfeil links nie gleichzeitig drücken,..

    Was hast du denn für eine Tastatur, bei mir geht das prima...

    anti0ogen blau schrieb:


    drücken schon aber es passiert nur eins davon...

    auf adneren tastaturen kann man scheinbar "S" "1"(nicht numblock) und "A" nciht gleichzeitig drücken.

    Naja such doch mal bei Google 3 tasten gleichzeitig, dann siehst du, dass das ein problem von nicht USB und Billig-Tastaturen ist.

    anti0ogen blau schrieb:



    man kann einfach je nach system oder tastatur bestimmte tasten nicht gleichzeitig drücken...

    das hat mir auch schonmal wer erzählt der game maker kennt dass das wohl an game maker liegt....

    Wenn man murks Programmiert ist das klar, bei mir kann ich mit meiner USB Tastatur 4 Tasten Gleichzeitig drücken und das ist im GM kein Problem.

    anti0ogen blau schrieb:



    bei gewöhnlichen ego shootern( nein ich programmieren keinen ego shooter) kann ich strafen (W + A zB) sprinten (STRG) und springen (leertaste) und schießen (mouse) auf einmal ohneprobleme... .miene tastatur kann schon mehrere tasten gleichzeitig drücken als die normalen billig-produkte....
    aber eben bei game maker hat man mit jeder tastatur probleme, aber NICHT mit gamepads.

    da gm schienbar nur 2 gamepds/joysticks unterstützt und mein spiel für 4 spieler sein soll (auch auf einem PC mit splitscreen) is die game maker tastaturabfrage also scheiße..
    durchschnittlich braucht man für mein spiel 2 tasten gleichzeitig pro spieler...
    oft können auch bei 4 spielern ruhig 5 oder 6 tasten gedrückt werden ohne probleme aber besitmmte kombinationen gehn einfach nicht... wie gesagt ist das unterschiedlich komischerweise je nach tastatur.

    was ich also machen müsste ist eine eigene tastaturabfrage-funktion zu programmieren, aber wie gesagt mus sich bei einer desktopanwendung in die "nachrichtenschleife von windows eingreifen" (zitat von jmdn den ich gefragt habe was ich tun müsste, da befehle wie readkey nicht gingen (benutze delphi klon -> lazarus) wobei dlls ja eigtl mi tjeder anderen sprache auch geschrieben werden könnten also falls es mit anderen sprachen einfacher ginge, nur her damit)), um an werte von wm_keypressed zu kommen da mir solche werte game maker wohl nicht übergibt mit seiner sturen beschneidung der programmierfreiheiten, da es ja für anfänger gemacht ist...

    hab mich dazu überreden lassen es zu benutzen, bin nicht zufrieden aber bis auf die tastenabfrage funzt doch alles... spiel ist auch schon in einem fortgeschrittenen stadium, es fehlen nahezu nur noch levels und ich will das nun auch in gm zu ende bringen, also brauch ich eine .dll mit einer tastenabfrage, am besten selber von mir geschrieben (mach sachen gern selber) und wenns ich ned schaff brauch ich ne vorgefertigte dll.
    ich denke es liegt nicht am GM oder es ist einfach schlecht programmiert.

    anti0ogen blau schrieb:


    so die tasten probleme sin nicht zu bestreiten, deswegen möchte ich wenn möglich gleich ne antwort hören die zur frage passt, ob das möglich sei und wie, da meine kenntnisse dafür nicht ausreichen.

    Ja und ich will ne Million im Monat aufm Konto -_-" Wenn du für die Antwort Bezahlst kannst du auch Forderungen stellen, sonst jedenfalls an mich NICHT

    anti0ogen blau schrieb:


    trotzdem genauere nachfragen werden natürlich beantwortet


    Ich denke nicht das das am GM liegt, bei dem Joystick input handling könnte das sein, Interessant währe es welche Version vom GM du benutzt, da bei mir mit GM 6.1 noch NIE solche sachen aufgetreten sind,
    Interessant ist für uns auch ob du einen KVM Switch benutzt, da diese Störend auf die Tastatur einwirken können(wie mein KVM, damit konnte ich nichtmal diablo 2 vernünftig zocken, und das ist nicht so Tastaturlastig)

    Aber sonst hab ich von dem Problem noch nie was gehört.(sonst gäb es wahrscheinlich schon DLLs dafür)

    MfG Genesis

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Genesis ()

  • also passd mal auf.. ich weiß genau wie das in foren so is... sobald ne bestimtme anzahl von antworten is sin die leute zu faul alles durchzulesen also ned widersprechen sondern antworten...

    keine der getesteten tastaturen waren usb tastaturen.

    fakt ist dass es nicht an meine programmierung liegen kann da die tastenabfrage NICHT ICH sondern gm geschrieben hat.



    warum sollten dann pfeil hoch und pfeil links bei mir nicht gehn aber W und A und sogar 1 bestens zusammen?

    fakt ist (nach ausgiebigem testen) dass es verschiedene fehler gibt je nach tastatur, also kann es freilich auf deiner funktionieren, vll hast du auch ne super tastatur? könnte ja sein, aber getestet wurde auf 4 verschiedenen PCs.

    einer der PCs steht in ungarn, also sag nich ich war nicht offen für einen test.



    ich sagte ja schon bestimmte tastenkombinationen gehen nicht, also kanns nochmals nciht an MEINER programmierung liegen.



    mir ist zu ohren gekommen dass game maker ne art hierarchie für die tasten gemacht hat, und deswegen werden manche tasten bevorzugt.

    ob das stimmt ist mir nicht bekannt aber ich habe schon wo anders ähnliche beschwerden gelesen, schließlich kenne ich google.



    also bitte... selbst wenn es adnere lösungswege gäbe... meine frage lautet doch ganz anders? ich hab extra im expertenforum gepostet...

    OB das mit der dll geht und ob mir jmd helfen kann...

    wenn du nicht helfen wilsld, dann schreib auch nicht.. die 2 antworte die ich bisher bekam waren nur müll für mich... die frage is doch einfach gestellt?

    ob gamemaker zulässd dass ich mit ner dll in die nachrichtenxchleife von windows eingreifen kann.

    wie ich das genau mache in die schleife einzugreifen kann ichd ann auch in seriösen foren fragen.

    nehmts nicht persönlich, aber eure antworten sin nur spam für mich
  • anti0ogen blau schrieb:

    also passd mal auf.. ich weiß genau wie das in foren so is... sobald ne bestimtme anzahl von antworten is sin die leute zu faul alles durchzulesen also ned widersprechen sondern antworten...


    Pass mal selber auf. Wer dir hier zu helfen versucht, tut dies aus eigenem Antrieb, in Aufopferung seiner Freizeit und ohne eine Gegenleistung zu erwarten. Oder anders formuliert: Hilfeleistung ist freiwillig, und niemand hier hat einen Anspruch darauf, dass ihm geholfen wird.

    Wenn du weiterhin so unfreundlich bist, wird dir wohl niemand mehr helfen.
  • freilich kann ich hilfe nicht erwarten.. aber was ihr tut ist spam.

    meien frage war sehr einfach formuliert.

    also PASST AUF dass ihr wenn ihr nix zu sagen habt einfahc mal die klappe haltet.

    meien frage bezieht sich auf eine .dll und ich habe keien lust darauf mich beleidigen zu lassen ich haette mist programmiert obwohl die tastenabfrage von game maker vorgefertigt ist und logischerweise keinen zusammenhang mit mir hat.

    der freche anspruch auf 1 million aufm konto von genesis is wohl "kenie gegenleistung" für die "hilfe" die er mir gab.



    wenn ihr freiwillig iohne gegenleistung helft dann tut das halt auch.

    das bedeutet: fragen gewissenahft durchlesen und passend beantworten ohne freche äußerungen und auch ohne miene post zu zitieren und als eigenen post auszugeben
  • anti0ogen blau schrieb:

    freilich kann ich hilfe nicht erwarten.. aber was ihr tut ist spam.


    Wo ist hier Spam...?

    Dann wollen wir mal schauen
    1. Beitrag:

    MewX fragt nach, was eingentlich das Problem mit der GM-Abfrage ist. Das ist eine durchaus valide Frage, weil das Problem anscheinend nicht überall / eher selten auftritt. Ich hab auch noch nie etwas davon gehört, dass speziell der GM Probleme bei Tastaturabfragen macht.

    2. Beitrag:

    Genesis erklärt dir, dass er dieses Problem auch nciht vom GM kennt und gibt dir Fingerzeige, was die eigentliche URsache sein könnte.

    3. Beitrag:

    Zurechtweisung durch einen Admin - sowas als Spam zu bezeichnen ist einfach ne Frechheit.

    Und was davon ist jetzt Spam?
    www.glowingorb.de
    „Wenn es im Universum noch irgendwo intelligente Lebewesen gibt, dann kennen sie vielleicht Schach, höchstwahrscheinlich jedoch GO

    (Schachweltmeister Emanuel Lasker)
  • alle eure eiträge haben nicht meine frage beantwrotet..

    du hast gesagt die ersten beiden fragen waren eine nachfrage....

    warum 2 mal dieselbe nachfrage???

    und auch wenn es nicht bei allen ist , fakt is DASS es probleme gibt.

    wenni hr das prob nicht kennt dann schreibt nicht hier rein.

    das ist keine diskussion sondern die bitte um hilfeleistung, statt dessen wird nur gespammt was das zeug hält...

    zB dn post.. was soll das? hat auch nix mit meiner frage zu tun.

    ich gab genug informationen
  • Zu dem Thema hats hier im Forum schonmal eine Diskussion gegeben, Windapple hat da eine sehr gute
    Antwort drauf gegeben:
    Spoiler anzeigen
    Man kann nichts einstellen. Ich habe das hier in meinen 6 Jahren gm-d.de Karriere schon bestimmt drei mal geschrieben, aber ich schreibe es gerne nochmals. Es ist eine Hardwaregeschichte. Eine Tastatur kann nur eine begrenzte Menge an Tastencodes gleichzeitig verarbeiten. Prinzipiell bräuchte der Tastaturcontroller doppelt so viele Pins wie Tasten auf der Tastatur sind, jede Taste hat Plus und Masse, und jede Taste wäre mit zwei Adern direkt am Controllerchip angeschlossen. Dadurch würde aber Chip und Tastatur sehr teuer in der Herstellung. Also bedient man sich eines Tricks und fasst bestimmte Tasten zu Gruppen zusammen. Sozusagen teilen sich diese Gruppen eine Leitung zum Controller, dadurch braucht man weniger Leitungen und auch der Chip ist günstiger realisierbar. Dadurch kann aber in einer Gruppe nur eine Taste betätigt werden, jede weiter Tastenbetätigung in der Gruppe kann nicht mehr registriert werden. Im normalen Bürobetrieb fällt das nicht auf, denn selten werden mehr als zwei Tasten gleichzeitig betätigt.

    Im Spielebereich kann man aber durchaus ne enorme Bauchlandung machen, je nachdem wie intelligent der Tastaturhersteller die Gruppen verteilt hat. So können beispielsweise alle für ein Spiel gängige Tasten (WASD, Leer, Ctrl, Alt, Shift, Leer, Pfeile) in getrennten Gruppen sein, d.h. jede der für ein Spiel meist gebräuchlichen Tasten ist von den anderen unabhängig registrierbar. Es kann aber auch sein, dass der Hersteller auf sowas überhaupt keine Rücksicht nahm und die Gruppenverteilung ungünstig vornahm, sodass man zwar beispielsweise mehrere Zahlentasten drücken kann, dafür aber nicht Leer oder Shift wenn man W und A drückt oder ähnliches. Das ist dann schlecht. Und ändern kannst du es nicht, es ist eine Hardwarerestriktion, du musst dir dazu eine andere Tastatur kaufen. "Gamer" Tastaturen sind meist dafür ausgelegt, das im Spielen gebräuchliche Kombinationen wirklich funktionieren.

    Für weitere und detailliertere mit technischem Hintergrund belegte Informationen siehe den Wikipedia Artikel über Tastaturen, Abschnitt Key Rollover .

    Edit: Damit keiner sagen kann, es ist durch die Suche nichts zu finden:
    Tastatur problem! März 2007
    kann es das windows nur 3 tasten verarbeiten kann?.... Juli 2007

    (Siehe hier)


    Kurz zusammengefasst (was eigentlich auch schon meine Vorredner gesagt haben):
    Es ist ein Hardware Problem sämtlicher Tastaturen, egal ob USB oder nicht.
    Mit Software hat das nichts zu tun.
    Gruß, Spellmaker
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • das nen ich mal eine gelungene antwort.. danke aber !

    das steht im widerspruch zu der tatsache, dass zB pfeil links und pfeil hoch bei mir in gm nicht rtealisierbar ist in rennspielen zB unumgänglich ist und funktioniert.



    wenn ich mich irre dann programmier ich die .dll eben umsonsd, aber genau das is der umfang meiner frage... es geht um .dll
  • Nun Anti0gen Blau, du kommst hier her und fragst um hilfe zu einer Dll. Nachdem 2 Antworten dich zum Selberdenken angeregt haben war dir das zu viel und du schreibst dass das ach so dumme antworten waren und sie erstmal genau deine Frage durchlesen sollten, und richtig antworten sollen. Da Wiedersprechen zwei Dinge:

    1. Deine Rechtschreibung ist so flach wie deine Ausdrucksweise
    2. Nur weil du ihre Antworten nicht verstehst sind sie nicht schlecht.

    Dann beleidigst du den Admin (ADMIN!). Erwartest du jetzt noch Hilfe von uns?
    Tastaturen sind unterschiedlich, deine Tastaur von Aldi kann evtl. im Gegensatz zu einer Tastatur von Logitech nicht 3 Tasten aufeinmal wahrnehmen.
    Und das Argument das du es auf 4 Rechnern getestet hast bringt nichts wenn all diese auch Billig Tastaturen hatten. Der Gamemaker ist definitv nicht die Ursache für dein Problem!



  • ihc hatte bereits erwähnt dass meine tastatur keine billigtastatur ist..

    meine frage war einfahc und pröäzise und wurde NICHT beantwoortet siondern alternativen wurden vorgeschlagen.

    nun beleidigst du mich? schon wieder einer mehr...

    ein admin ist auch ein mensch... das schützt ihn vor garnichts.



    ich habe shcon vorher selber gedacht nur die die geanwrotet haben haben nicht selber gedach tmit ausnahme von spellmaker..

    ausdrücke und rechtschrebung xDD lol....

    es geht hier nicht darum eine note 1 zu bekomemn auf den "aufsatz" sondern jmdn zu erklären was das problem is.
  • Hab mir jetzt das ganze sehr genau durchgelesen, und muss sagen was anti0ogen blau sagt stimmt. Angenommen man möchte ein Spiel machen , wo mehrere Leute an einer Tastatur sitzen.

    Gamemaker muss jetzt ständig mit durchschnittlich 2-3 tastaturbefehlen pro spieler kämpfen. Denn meistens macht man 2 actionen gleichzeitig, zB laufen und schießen !! Und ich selbst habe festgestellt, dass meist tatsturbefehle gleichzeitig mit anderen einfach nicht ausgeführt werden !!! aber wieder andere gehen zusammen ... das ist sehr seltsam.



    oft können auch bei 4 spielern ruhig 5 oder 6 tasten gedrückt werden ohne probleme aber besitmmte kombinationen gehn einfach nicht... wie gesagt ist das unterschiedlich komischerweise je nach tastatur


    also bei google mit 3 tastengleichziet gedrückt zusucehn , hat damit gar nix zutun ..hmpf.
    Und was jetzt kam war keine antwort sondern fand ich sehr UNHÖFLICH zusagen :


    ich denke es liegt nicht am GM oder es ist einfach schlecht programmiert.




    zudem waren ein paar nutzer vorher schon vorher extrem frech , er hat nur eine frage beantwortet gewollt , aber ein paar sagen gleich : naja bist wahrscheinlich zu schlecht junge

    ich finde so sollte man nicht rangehn , was anti0ogen blau sagt stimmte, ich habe es selsbt erlebt , manche tastaturbefehle gehn zusammen , manche nicht !

    ich kenn zum beispiel auch einige spiele bei denen können mehrer spieler an einer tastatur problem los spieln, bei manchen spielen macht das auch probleme, aber ok , wie haben die anderen das gelöst ??? wie haben sie es geschafft , mehrere spieler an einer tastaur spielen zu lasssen , ohne das macnhe befehle nicht ausgeführt werden ?

    kann man das in gamemaker intern lösen ?? oder brauch ich dann doch sowas wie ne dll, die ja wie wir wissen schneller ist als GM funktionen ,...

    also ne DLL die tastaturbefle schneller bearbeitet als GM !! bzw. meherer tatstureingaben verarbeiten kann ...

    dass das ein hardware problem sein kann, könnte sein, jedoch stehts im widerspruch zu anderen spielen wo es funktioniert..

    ich selbst hab keine ahnung , wie man das mit dll lösen könnte .
    aber vielleicht irgenwer der sich damit auskennt , hat also irgendwer einen vorschlag ???

    würde mich nämlich auch interessieren ;)
  • anti0ogen blau schrieb:

    es geht hier nicht darum eine note 1 zu bekomemn auf den "aufsatz" sondern jmdn zu erklären was das problem is.


    Und genau dazu braucht man eine angemessene Rechtschreibung. Wenn keiner lesen kann, was du möchtest, kann dir auch niemand helfen. Weiterhin solltest du mal überlegen, wer hier beleidigend wird. Ich hab hier zwar noch keine richtige Beleidigung gesehen, aber während von den anderen nur mehr oder weniger sachliche Hinweise kommen, schreist du nur rum, wir sollen aufpassen, und gefälligst deine Frage beantworten.

    Wenn du nicht sehr bald einen angemesseneren Ton an den Tag legst, hat dieser Thread keine Zukunft.
  • meine rechtschreibung ist uach mit tippfehlern einwandfrei lesbar.

    natürlcih muss ich euch ermahnen meine frage zu beantworten, der thread hat schon mehr views und antworten als manche anderer thread und meinem problem is zu 0% geholfen.



    dazu möcht ich anmerken fasd alle "infrage-stellungen" von genesis werden bereits durch den post VOR seinem durch mienen widerlegt.



    er hat offensichtlich nicht genau gelesen, was auch daran liegt dasx hier eindeutig gespammt wird und man keine lust mehr hat genau zu lesen im gegensatz zu andre, der offensichtlich mein anliegen verstanden hat
  • ...dann will ich das malein wenig anheizen.

    Da Gamemaker mehrere tastaurbefehle gleichzeitig ( abhängig von tastaur, betriebssystem und gamemakerversion ) nicht schafft , soll eine dll entwickelt werden , die schneller und effizienter an das Problem rangeht.

    Eine Dll die direkt auf deine tastaturbefehle zugriff hat und diese direkt weiter an windwos gibt. Soweit so gut. Wie muss man also eine Dll schreiben, damit man tastaurbefehle dirket annehmen kann ??? Bzw wie macht man das überhaupt ?

    Kann irgendwer helfen ?
  • man muss in die nachrichtenschleife von windows eingreifen um an werte von wm_keypressed und ähnlichen zu kommen...

    steht schon im ersten post von mir ;)

    meine fragen waren, ob das game maker zulässt und ob mir jmd helfen kann.

    keine der fragen wurde beantwortet, aber antworten hab ich tortzdem schon viele was meinen thread für viele menschen aus faulheit uninteressant macht und somit auf das problem ignorierend wirkt.

    wenn das kein spam ist weiß ich auch nicht mehr
  • Ob der Game Maker das zulässt ist so ziemlich egal, weil eine dll eigenständiger Programmcode
    ist und somit vom aufrufenden Programm unabhängig (bis auf die Parameter, die übergeben
    werden). Also dürfte das Ganze machbar sein.

    Gruß, Spellmaker.

    Edit: Unangemessenes entfernt, ich bitte um Entschuldigung ^^
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • @ anti0ogen blau: Kannst du 100%ig ausschließen, dass das Zusammenspiel von <Pfeil links> und <Pfeil rauf> durch deinen Code verhindert wird? Manchmal unterlaufen einem da kleine Denkfehler.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Benutzer online 1

    1 Besucher