Rechnung in DLLcall

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Jak0bW
Posts: 6
Joined: 01 Mar 2017, 09:56

Rechnung in DLLcall

01 Mar 2017, 10:10

Hey!
Ich brauche Hilfe bei folgendem Problem.

DllCall("mouse_event", "UInt", 0x01, "UInt", [Px/Px - Mx2] - [Mx2/Px - Mx2], "UInt", Py/1.5 - My2/1.5 + 1)

Da wo jetzt eckige Klammern sind, brauche ich, damit die Berechnung der Koordinaten aufgeht, eigentlich
normale Klammern. Gibt es eine Möglichkeit, dass umzusetzen?
Rechnungen an sich sind hier ja möglich, jedoch eben nicht mit Klammern :/
just me
Posts: 9458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Rechnung in DLLcall

01 Mar 2017, 10:20

Ist schon erstaunlich, wie oft in der letzten Zeit der DllCall("mouse_event",...) in den Foren auftaucht. :roll:

Rechnen kannst Du jedenfalls, auch mit Klammern, aber nicht mit eckigen.
Jak0bW
Posts: 6
Joined: 01 Mar 2017, 09:56

Re: Rechnung in DLLcall

01 Mar 2017, 10:27

wofür dass wohl ist? ;)
aber zu deiner Antwort, leider nein!
sobald ich innerhalb der beiden Kommata Klammern verwende, benutzt er einfach die x-Achse nicht mehr.
deshalb denke ich dass man hier irgendwie anders vorgehen muss.
Jak0bW
Posts: 6
Joined: 01 Mar 2017, 09:56

Re: Rechnung in DLLcall

01 Mar 2017, 10:30

Nein! geht leider nicht. Sobald ich Klammern verwende funktioniert die x-Achse nicht mehr :(

gibt es ne andere möglichkeit die rechnungen zu "gruppieren"?
just me
Posts: 9458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Rechnung in DLLcall

01 Mar 2017, 10:31

Code: Select all

 Px/Px - Mx2
Bist Du sicher?
Jak0bW
Posts: 6
Joined: 01 Mar 2017, 09:56

Re: Rechnung in DLLcall

01 Mar 2017, 10:34

just me wrote:

Code: Select all

 Px/Px - Mx2
Bist Du sicher?
es müssre halt sooo sein für die x-Koordinate:
(Px/Px-Mx2)-(Mx2/Px-Mx2)

und das geht halt nicht.
wenn ich das mache, funktioniert nur noch die y-Achse D:

die eine Rechnung funktioniert auch so, aber ich brauche halt beide und die klammern,
weil das Ergebnis sonst wegen * vor - Rechnung...
just me
Posts: 9458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Rechnung in DLLcall

01 Mar 2017, 10:38

Meinst Du vielleicht:

Code: Select all

(Px / (Px - Mx2))
Jak0bW
Posts: 6
Joined: 01 Mar 2017, 09:56

Re: Rechnung in DLLcall

01 Mar 2017, 10:49

just me wrote:Meinst Du vielleicht:

Code: Select all

(Px / (Px - Mx2))
Nein
ich meine

Code: Select all

(Px/Px-Mx2)-(Mx2/Px-Mx2)
:D

Px is die x Koordinate des punktes zu dem ich moven will, Mx2 die aktuelle position der maus.

im großen ganzen will ich eigentlich Px - Mx2 rechnen um die differenz zu bekommen, also die zahl an pixeln die gemovt werden muss.
das funktionier auch wenn man einfach nur Px - Mx nimmt, jedoch will ich die bewegung gegen ende beschleunigen. Deshhalb
teile ich die beiden Positionen durch die differenz, sprich: Je dichter schon dran, desto höher der multiplikator für die Geschwindigkeit.
just me
Posts: 9458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Rechnung in DLLcall

01 Mar 2017, 10:51

Eine Weisheit aus meiner lange zurückliegenden Schulzeit: Punktrechnung geht vor Strichrechnung. Solange Px nicht Null ist, ist Px/Px immer 1.
Jak0bW
Posts: 6
Joined: 01 Mar 2017, 09:56

Re: Rechnung in DLLcall

01 Mar 2017, 11:04

sorry xD
ist mit grad auch aufgefallen.
wass ich eigenlich brauche ist das:

(Px /(Px - Mx2)) - (Mx /(Px - Mx2))

hattest recht!!

funktiniert aber trotzdem nicht :( naja wenns nicht anders geht muss ich mir was einfallen lassen dass alles von ner anderen seite aus zu lösen..
danke dir aber, hab jetzt gesehen, dass klammern an sich gehen, aber eben nicht wenn ich sie wie gezeigt verwende.
User avatar
LuckyJoe
Posts: 341
Joined: 02 Oct 2013, 09:52

Re: Rechnung in DLLcall

01 Mar 2017, 11:57

Dumme Frage (kenne mich mit DLLcall gar nicht aus), aber kannst du die Rechnung nicht vorher mit anderen Variablen auflösen und diese dann verwenden? Also statt

Code: Select all

(Px /(Px - Mx2)) - (Mx /(Px - Mx2))
nimmst du vorher:

Code: Select all

R1 = Px - Mx2
R2 = Px / R1
R3 = Mx / R1
R4 = R2 - R3
und verwendest dann nur R4. Analog der 2. Teil deines Aufrufs.

Viel Erfolg!
Lucky Joe
Herzliche Grüße aus dem Rheinland
Lucky Joe
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Rechnung in DLLcall

02 Mar 2017, 07:08

Bevor DllCall aufgerufen wird, wird - wie bei jeder anderen Funktion auch - erstmal die Parameter in Werte aufgelöst.
DllCall hat mit dem Resultat der Rechnung also nichts am Hut, ausser das es sie weiterverwendet. Es macht auch keinen Unterschied ob du es vorher in einer Variable speicherst. Der einzige entscheidende Vorteil wäre es, dass man dann das Ergebnis der Berechnung per Msgbox direkt ausgeben könnte. Ich würde alle Werte nochmal überprüfen.
Recommends AHK Studio

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 54 guests