Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 08:09

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

Discussion on Tratsch rund um Autoit / Autoit Talk | kleinere Fragen within the AutoIt forum part of the Coders Den category.

Reply
 
Old 07/17/2013, 20:16   #1516


 
Lawliet's Avatar
 
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
Alle Addys mit 90 überschreiben.
Nop = 90
Lawliet is offline  
Thanks
1 User
Old 07/18/2013, 01:21   #1517
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by butter123 View Post

bei einer eleganten umsetzung der gui abfrage stand ich aufm schlauch. bitte um korrektur, so ists zwar effizient und kurz, aber kann zu komplikationen führen, falls $nmsg auch ohne die buttons werte zwischen 1 und 20 annehmen kann.
sicherer wäre es direkt über die gespeicherten handles zu arbeiten.
bsp.:
Code:
Dim $array[9][2]=[['Troll'],['Knödel'],['1'],['2'],['3'],['4'],['5'],['6'],['7']]
GUICreate('Counter', 410, 180, Default, Default, 0x10C80000, 8)
For $x=0 To 2
	For $y=0 To 2
		GUICtrlCreateGroup($array[$y*3+$x][0], 10+$x*130, 2+$y*60, 132, 50)
		$array[$x*3+$y][1] = GUICtrlCreateButton(0, 15+$x*130, 18+$y*60, 122, 30)
	Next
Next
Do
	$msg = GUIGetMsg()
	For $i=0 To UBound($array)-1
		If $msg = $array[$i][1] Then GUICtrlSetData($msg, GUICtrlRead($msg)+1)
	Next
Until $msg=-3
Edit:
Quote:
Originally Posted by Lawliet! View Post
Alle Addys mit 90 überschreiben.
Nop = 90
NOP != 90...

NOP = 144 = 0x90

zu beachten ist hierbei natürlich, das die meisten befehle größer als 1 byte sind, was zur folge hat, das mehr nur ein NOP geschrieben werden muss (was olly dir aber auch anzeigt)
allgemein zeigt olly zu jeder änderung auch die binären daten der änderung mit an, welche direkt in autoit übernommen werden können.
lolkop is offline  
Old 07/18/2013, 20:12   #1518


 
K1ramoX's Avatar
 
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
Quote:
Originally Posted by SpieleHacksInfo View Post
_MemoryWrite($adresse, $handle , "NOP" , "byte[4]") ?
Code:
_MemoryWrite($adresse, $handle , "0x90909090" , "byte[4]")
so ;o
K1ramoX is offline  
Thanks
1 User
Old 07/22/2013, 18:14   #1519
 
elite*gold: 0
Join Date: Jul 2011
Posts: 32
Received Thanks: 3
Unhappy

Hallo undzwar wollte ich mir einen kleinen keylogger machen er speichert die tasten eingaben auf dem pc und sendet diese dann per email weiter leider hab ich iwo nen fehler (erst durchs debuggen gemerkt) er will 2 x endif haben die stellen der meldung werde ich markieren wer zeit hat bitte antworten
-removed by lawliet
12345manu is offline  
Old 07/22/2013, 19:20   #1520
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Quote:
Originally Posted by 12345manu View Post
Hallo undzwar wollte ich mir einen kleinen keylogger machen er speichert die tasten eingaben auf dem pc und sendet diese dann per email weiter leider hab ich iwo nen fehler (erst durchs debuggen gemerkt) er will 2 x endif haben die stellen der meldung werde ich markieren wer zeit hat bitte antworten

hallo Hansi,
sowas wird hier nicht unterstützt,
wobei du deine fehler auch einfach mit hilfe von google lösen könntest.
omer36 is offline  
Thanks
1 User
Old 07/25/2013, 01:03   #1521
 
elite*gold: 5
Join Date: Dec 2011
Posts: 3,930
Received Thanks: 1,918
Ich habe 2 Gui's wenn ich auf der 1. (die zu erst erscheint) einen Button klick mache soll sie gelöscht werden(Guictrldelete) und die andere Gui soll kommen aber sie kommt nicht, woran kann sowas liegen ?
Ruffу is offline  
Old 07/25/2013, 01:13   #1522
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
Quote:
Originally Posted by Bɒժ View Post
Ich habe 2 Gui's wenn ich auf der 1. (die zu erst erscheint) einen Button klick mache soll sie gelöscht werden(Guictrldelete) und die andere Gui soll kommen aber sie kommt nicht, woran kann sowas liegen ?
ohne source(-abschnitt) kann man wenig helfen..

PHP Code:
$Form1 GUICreate("Form1"12151192124)
$Button1 GUICtrlCreateButton("Button1"24167525)
GUISetState(@SW_SHOW)

$Form2 GUICreate("Form1"25025000)
GUISetState(@SW_HIDE$Form2)

While 
1
    
If GUIGetMsg() == $Button1 Then
        GUIDelete
($Form1)
        
GUISetState(@SW_SHOW$Form2)
    EndIf
WEnd 
omer36 is offline  
Thanks
1 User
Old 07/27/2013, 13:55   #1523


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Ich wollte gestern mit der Beep() Funktion mal versuchen ein kleines Lied zu machen.
Da man in Hz die Frequenz geben muss, hab ich danach gesucht. Und zwar Alle meine Entchen.

Als ich es abgespielt habe, hat man nichts gehört. Denn die Frequenzen sind alle unter 200. Und erst ab da hab ich einen Ton gehört.

Muss man da anders vorgehen, oder kann AutoIt einfach nicht so niedrige Frequenzen abspielen?
Requi is offline  
Old 07/27/2013, 15:35   #1524
 
-STORM-'s Avatar
 
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
Probier am besten erstmal aus, alles eine oder mehrere Oktaven höher zu setzen, um zu testen, ob es überhaupt funktioniert.
Das hat Google ausgespuckt:

Tipp: Die Frequenz verdoppelt sich pro Oktave, kannst also recht einfach umrechnen.

Wenn unter 200 Hz die Töne nicht hörbar sind, könnte das auch an deinen Ohren oder an den Lautsprechern liegen.
-STORM- is offline  
Old 07/27/2013, 16:35   #1525
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
hatte ich mal von irgendwo kopiert

omer36 is offline  
Old 07/27/2013, 17:25   #1526


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by -STORM- View Post
Probier am besten erstmal aus, alles eine oder mehrere Oktaven höher zu setzen, um zu testen, ob es überhaupt funktioniert.
Das hat Google ausgespuckt:

Tipp: Die Frequenz verdoppelt sich pro Oktave, kannst also recht einfach umrechnen.

Wenn unter 200 Hz die Töne nicht hörbar sind, könnte das auch an deinen Ohren oder an den Lautsprechern liegen.
Hatte mal was für Frequenzen aus Pianotasten.
Aber die waren ALLE unter 200.

Und an meinen Ohren liegt es nicht. Habe über TS gestreamt und keiner hats gehört.
Hab Lautsprecher angemacht auf volle Lautstärke. Nicht mal annähernd ein Ton.
Quote:
Originally Posted by omer36 View Post
hatte ich mal von irgendwo kopiert

autoit.de

Gestern auch schon gefunden
Echt geil gemacht.

Oder habt ihr zufällig eine UDF, wo man die Noten angeben kann? Wäre doch was feines, mit AutoIt was zu komponieren
Requi is offline  
Old 07/27/2013, 18:56   #1527
 
-STORM-'s Avatar
 
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
Der hörbare Frequenzbereich liegt bei Menschen zwischen minimal 20 Hz und maximal 20 kHz.
Viele hören halt erst etwas höhere bzw. tiefere Frequenzen, da ändert die Lautstärke dann auch nichts. Wenn aber im TS keiner was hören konnte, sollte das schonmal ausgeschlossen sein.
Quote:
Originally Posted by Requi View Post
Oder habt ihr zufällig eine UDF, wo man die Noten angeben kann? Wäre doch was feines, mit AutoIt was zu komponieren
Hier mal mein Ansatz:

Teilst du zwei aufeinander folgende Frequenzen der durcheinander, erhältst du einen konstanten Faktor, mit dem du eine Frequenz multiplizierst, um die der nächsten Note zu erhalten.
Dieser ist ~1,0593.

Mit C0 (16.35 Hz) als 0ter Note kommst du zur n-ten Note also mit:
n = 16,35 * 1,0593^n

Da das ganze exponentiell ist, sollte der Faktor möglichst genau sein. ich kann ohne zu testen nicht einschätzen, ab wann man Unterschiede hört.

Wir haben für jeden Oktave (einschließlich der Zwischennoten, diese haben denselben Abstand) die 12 Noten C (0), C#/Db (1), D (2), D#/Eb (3), E (4), F (5), F#/Gb (6), G (7), G#/Ab (8), A (9), A#/B (10), H (11).
Danach kommt halt wieder das C der nächsten Okatave.

Wir brauchen also eine Funktion _freq($n), die ausgehend von $n die Frequenz der n-ten Note ausgehend von C0 bestimmt und eine Funktion,
die den entsprechenden Notennamen und Oktaven das $n zuweist und die Note anschließend abspielt.
Praktisch sieht das dann so aus:

EDIT: Verbugt, siehe weiter unten!
Code:
_play("d#", 4, 200) ;// spielt für 200ms das D# der vierten Oktave

;// Spielt Note für $duration ms ab
Func _play($note, $oktave, $duration = 1000)
	$note = StringUpper($note) ;// alle Buchstaben des Strings zu großen Buchstaben machen, um Fehlern vorzubeugen
	
	;// ausgehend von Note und Oktave $n bestimmen (für n-te Note ausgehend von C0)
	Local $n
	Switch $note
		Case "C"
			$n = 0
		Case "C#" Or "DB"
			$n = 1
		Case "D"
			$n = 2
		Case "D#" Or "EB"
			$n = 3
		Case "E"
			$n = 4
		Case "F"
			$n = 5
		Case "F#" Or "GB"
			$n = 6
		Case "G"
			$n = 7
		Case "G#" Or "AB"
			$n = 8
		Case "A"
			$n = 9
		Case "A#" Or "B"
			$n = 10
		Case "H"
			$n = 11
	EndSwitch	
	$n += $oktave *12 ;// Oktave auf $n anrechnen
	
	$freq = _freq($n) ;// Frequenz der Note bestimmen
	Beep($freq, $duration) ;// Note abspielen
EndFunc

Func _freq($n) ;// gibt Frequenz der n-ten Note (ausgehend von C0) zurück
	Return 16.35 * 1.0593^$n
EndFunc
Aus irgendeinem Grund funktioniert Beep bei mir gar nicht, und zwar bei keiner Frequenz. Kann daher leider den Code nicht testen. Gehe der Sache gerade noch auf den Grund.
Funktioniert er denn bei euch, oder habe ich mich irgendwo verzettelt?

Edit: Beep funktioniert immer noch nicht, aber habe gerade mal ein paar Noten nachgerechnet. Je höher die Note, desto stärker weicht die berechnete Frequenz ab, was am ungenauen Faktor liegt. Falls ihr das praktisch nutzen wollt, müsst ihr wohl ne Quelle suchen, die die Frequenzen mit mehr Nachkommastellen angeben, und den Faktor daraus berechnen.

Edit2: Da der Faktor x pro Oktave etwa eine Verdoppelung ausmacht, muss gelten:
x^12 = 2
<=> x = log12(2)
<=> x ~ 1,0863598306747482290994874084818
Hier verzapft der Windows Taschenrechner aber Bockmist, da dieses x mit 12 potenziert etwa 2,7 ergibt. Mit einer so hohen Basis funktioniert der Algorithmus, der den Logarithmus annähern/berechnen soll wohl nicht vernünftig. Ich muss mal schauen, ob ich einen besseren Rechner dafür finde, aber da war der ursprüngliche Faktor noch deutlich genauer:
1.0593^12 ~ 1,996

Edit3: Der Faktor von F#1 zu G1 scheint ziemlich genau zu sein. 49/46,25 ergibt 1,0594594594594594594594594594595, was mit 12 potenziert 1,999917660227733269528248434203, also deutlich näher an 2 liegt.
Irgendwie ist der Faktor offenbar periodisch, also:
x = 1,0[594] ; mit dem eingeklammerten als Periode
Das liegt zwar nah am Logarithmus von 2 zur Basis 12, aber macht die Funktion trotzdem kaum genauer. Offenbar war die Verdopplung pro Oktave für höhere Töne schon ungenau.

Edit4: Damn! Der Fehler lag gar nicht in der Genauigkeit, die mit dem Faktor 49/46,25 schon ziemlich gut ist. Stattdessen funktioniert der Switch mit Or nicht, sodass beispielsweise Case "G#" Or "AB" immer zutrifft. Hab das mal gefixt, hier die funktionierende Version:
Code:
_play("d#", 4, 200) ;// spielt für 200ms das D# der vierten Oktave

;// Spielt Note für $duration ms ab
Func _play($note, $oktave, $duration = 1000)
	$note = StringUpper($note) ;// alle Buchstaben des Strings zu großen Buchstaben machen, um Fehlern vorzubeugen

	;// ausgehend von Note und Oktave $n bestimmen (für n-te Note ausgehend von C0)
	Local $n
	Switch $note
		Case "C"
			$n = 0
		Case "C#"
			$n = 1
		Case "DB"
			$n = 1
		Case "D"
			$n = 2
		Case "D#"
			$n = 3
		Case "EB"
			$n = 3
		Case "E"
			$n = 4
		Case "F"
			$n = 5
		Case "F#"
			$n = 6
		Case "GB"
			$n = 6
		Case "G"
			$n = 7
		Case "G#"
			$n = 8
		Case "AB"
			$n = 8
		Case "A"
			$n = 9
		Case "A#"
			$n = 10
		Case "B"
			$n = 10
		Case "H"
			$n = 11
	EndSwitch
	$n += $oktave *12 ;// Oktave auf $n anrechnen

	$freq = _freq($n) ;// Frequenz der Note bestimmen
	Beep($freq, $duration) ;// Note abspielen
EndFunc

Func _freq($n) ;// gibt Frequenz der n-ten Note (ausgehend von C0) zurück
	Local $x = 49/46.25
	Return 16.35 * $x^$n
EndFunc
Damit ist das ganze wirklich ziemlich genau. Selbst in der achten Oktave, also bei Frequenzen >4kHz beträgt die Abweichung nur etwa 2-3 Hz, was wohl niemand hören wird.
-STORM- is offline  
Old 07/27/2013, 20:18   #1528


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Beep geht auf Notebooks nicht angeblich.

Hammer, was du da aufgestellt hast.
Requi is offline  
Old 07/27/2013, 20:25   #1529
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
wie kann ich am besten ein anklickbares menü über ein fenster zeichnen (fenster modus also kein vollbild)
YatoDev is offline  
Old 07/27/2013, 20:26   #1530
 
-STORM-'s Avatar
 
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
Ne, sitze am Desktop. Beep kam nur nicht durch, weil ich im Surround System ne Funktion aktiviert hatte, die Stereo zu 5.1 simulieren soll.
Dadurch wurde wohl der Kanal, auf dem Beep lag, unterdrückt.
-STORM- is offline  
Reply


Similar Threads Similar Threads
[Sammelthread]Fragen zu Autoit wie man Hacks herstellt(Autoit) + Antworten
11/16/2011 - Metin2 - 0 Replies
Hallo Liebe Community, Ich habe diesen Thread aufgemacht weil manche leute mit Autoit nicht mehr weiterkommen wie man Hack herstellt ,ich habe mit schon ein Multihack mit Autoit herstellt das war einfach .Da viele User nicht weiterkommen werden habe ich mich entschieden ein Thread aufzumachen mit Fragen und ich den dann Antworten kann und helfen kann! ------------------------------------------------- --------------------------- Mein Multihack:...



All times are GMT +1. The time now is 08:10.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.