das Problem hatte ich auch mal ;D
[gelöst] AutoIt Hilfedatei klappt nicht richtig
Beiträge von Developer30
-
-
Ich hab Windows 7 (x64 Professional) und Ubuntu 11 (x64) auf meiner Festplatte.
Windows 95, 98, XP sind bei mir als VirtualPC drauf, die benutz ich aber eher seltener.
Manchmal schmeiß ich auch nochmal die alte Kiste an, auf der MS-Dos 6 ist. Da ist so ein lustiges Pinnball spiel drauf. -
For, Do und While Schleifen kannst du mit
[autoit]ExitLoop
[/autoit]wieder beenden
-
so. ich hab mal die Sounds für eine kleine Tonleiter erstellt. ;D
-
also am sinnvollsten wäre es, insgesamt nur einzelne Töne zu benutzen (vlt noch okatviert). aber wenn man akkorde benutzt, schränkt man den user mehr oder weniger ein.
-
die paar Sounds könnte ich aufnehmen.
Deine Samples sind übrigens nicht einzelne Töne sondern Akkorde. Stellt sich die Frage, ob ich nur Dur-, Moll- oder Stufenakkorde aufzeichnen soll? -
hallo Stevenx,
für dein 2. Script, nicht schlecht ;D.
Ich persönlich würde dir empfehlen, dich mit der Bass UDF mal auseinander zu setzen. In Sachen Audio ist das echt das beste, was es in AutoIt gibt.Wenn du es dennoch mit SoundPlay lösen möchtest, würde ich an deiner Stelle die Audio Dateien zuerst reinladen und dann abspielen, damit nicht für jeden Ton geladen werden muss.
Ungefähr so:
Spoiler anzeigen
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_icon=Icon.ico
#AutoIt3Wrapper_outfile=TSPS-Start.exe
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#cs ----------------------------------------------------------------------------
Program Name: The Simple Piano Simulator
Program Version: 1.0
Author: The StevenX Media Company; Stefan Blagojevic; [email='office@StevenX.at.tf'][/email]#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <sound.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("The Simple Piano Simulator", 625, 443, 192, 124)
$Pic1 = GUICtrlCreatePic( @ScriptDir & "\Default.jpg", 8, 0, 593, 377, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
$Label1 = GUICtrlCreateLabel("Press a key", 296, 400, 59, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###Global $Paused
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("1", "TogglePause")
HotKeySet( "2", "TogglePause2")
HotKeySet( "3", "TogglePause3")
HotKeySet( "4", "TogglePause4")
HotKeySet( "5", "TogglePause5")
HotKeySet( "6", "TogglePause6")
HotKeySet( "7", "TogglePause7")
HotKeySet( "8", "TogglePause8")
HotKeySet( "9", "TogglePause9")
HotKeySet( "0", "TogglePause10")
HotKeySet( "ß", "TogglePause11")
HotKeySet( "{ESC}", "Aussteigen")Global $sound[10]
[/autoit] [autoit][/autoit] [autoit]for $x=0 to 9
[/autoit] [autoit][/autoit] [autoit]
$sound[$x] = _SoundOpen(@ScriptDir & '\Keys\'&$x+1&'.mp3')
NextFunc TogglePause2()
[/autoit] [autoit][/autoit] [autoit]
_SoundPlay($sound[1])
EndFunc
Func TogglePause3()
_SoundPlay($sound[2])
EndFunc
Func TogglePause4()
_SoundPlay($sound[3])
EndFunc
Func TogglePause5()
_SoundPlay($sound[4])
EndFunc
Func TogglePause6()
_SoundPlay($sound[5])
EndFunc
Func TogglePause7()
_SoundPlay($sound[6])
EndFunc
Func TogglePause8()
_SoundPlay($sound[7])
EndFunc
Func TogglePause9()
_SoundPlay($sound[8])
EndFunc
Func TogglePause10()
_SoundPlay($sound[9])
EndFunc
Func TogglePause11()
_SoundPlay($sound[0])
EndFunc
Func TogglePause()
_SoundPlay($sound[0])
EndFuncFunc Aussteigen()
[/autoit] [autoit][/autoit] [autoit]
for $x=0 to 9
_SoundClose($sound[$x])
Next
Exit
EndFuncWhile 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Aussteigen()
EndSwitch
WEndmfG
Developer30 -
das würde bei uns 1/3 ausmachen
ich will keine Diskussion über Schulen anzetteln, aber das stimmt nicht. Laut Antispeed hätte dann die Schule, auf der ich auch bin, nur 300 Schüler. Und auf der Schule bei uns rauchen auch bestimmt über 50 Schüler. Schätzungsweise hat meine Schule 700 bis 800 Schüler und keine 300!
Die Geburtstagsgrüße hab ich ja schon gesendet
Edit: 100 Schüler wären demzufolge 1/7
-
Alles gute
erfreu die Autoit community ein weiteres Jahr mit qualitativen Beiträgen ;D@Mattthias:
Fang auch nicht an zu rauchen
ist rauchen nicht ab 18? wenn schon von legalen Sachen die Rede ist^^
-
herzlichen Glückwunsch auch von mir ;D
-
mein Desktop
-
Klasse , das haut mich jetzt um
auf jeden Fall ein 1000%iges THUMBS UP! -
Nein, ich möchte es als doch als 32 Bit Anwendung haben und dann traten in der 32 Bit Version diese Probleme auf. 64 Bit läuft einwandfrei.
oh, sry.. ja ich hab mich verlesen...
-
Das Problem tritt auch nur in der 32 Bit Version meines Programms auf.
dann compilier es doch einfach als x86 (32bit). 32bit Programme sind unter 64bit ja (so gut wie immer) kompatibel.
ShellExecute ("Notizzettel")
hat diese Datei keine Dateiendung?
ich glaube, du kannst dir die Batch-Dateien sparen und nur mit Shellexecute arbeiten. Ich weiß ja nicht was "Notizzettel auf dem Desktop erzeugen" genau macht, aber wenns um Dateien anlegen geht, kannst du z.B. auch FileWrite, FileOpen etc.. verwenden.
mfG
Developer30 -
ok. so wie ich das sehe liegt es eindeutig an ($w-$d)/2
[autoit]_GDIPlus_GraphicsFillEllipse($buffer,$x[$o],($w-$d)/2,$d,$d,$brush[$o])
[/autoit]
ich hab den Wert einfach mal durch 10 ersetzt, dann hatte es geklappt.
Ersetzte das $w durch ein $h dann funktionierts. --> ($h-$d)/2 -
Hallo DFPWare,
ich habe deine Lade 3 mal überarbeitet:Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]Global $w, $h, $angle, $r, $startangle, $brush[16], $brushWeiss, $graphic, $bitmap, $buffer
[/autoit] [autoit][/autoit] [autoit]OnAutoItExitRegister("Lade_shutdown")
[/autoit] [autoit][/autoit] [autoit]
$gui = GUICreate("GUI",100,100)
Lade_startup($gui,100,100)
GUISetState()
AdlibRegister("Lade_bewege",15)
Do
$msg = GUIGetMsg()
Until $msg = -3Func Lade_bewege()
[/autoit] [autoit][/autoit] [autoit]
$startangle += 2
$angle = Mod($angle + 3, 360)
$r = 1 + Floor($angle / 24)
_GDIPlus_GraphicsFillRect($buffer, 0, 0, $w, $h, $brushWeiss)
_GDIPlus_GraphicsFillPie($buffer, 0, 0, $w, $h, $startangle, $angle, $brush[$r])
_GDIPlus_GraphicsDrawImageRect($graphic, $bitmap, 0, 0, $w, $h)
EndFuncFunc Lade_startup($hWnd,$width,$height)
[/autoit] [autoit][/autoit] [autoit]
$w = $width
$h = $height
$angle = 1
$r = 1
$startangle = 0
_GDIPlus_Startup()
$brushWeiss = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
For $i = 0 To 14
$brush[$i + 1] = _GDIPlus_BrushCreateSolid("0x" & Hex(0xFF - $i * 0x11, 2) & "66CCFF")
Next
$graphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$bitmap = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
$buffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
_GDIPlus_GraphicsSetSmoothingMode($buffer, 2)
EndFuncFunc Lade_shutdown()
[/autoit]
For $i = 1 To 15
_GDIPlus_BrushDispose($brush[$i])
Next
_GDIPlus_BrushDispose($brushWeiss)
_GDIPlus_GraphicsDispose($graphic)
_GDIPlus_GraphicsDispose($buffer)
_GDIPlus_BitmapDispose($bitmap)
_GDIPlus_Shutdown()
EndFuncDu kannst auch mal folgendes nachlesen http://www.autoitscript.com/autoit3/udfs/UDF_Standards.htm, da siehst du wie man die Variabelnamen besser strukturieren kann. ansonsten tolle UDF
mfG
Developer30Edit: ich hab ganz vergessen noch was zu meiner änderung zu sagen: Also, du siehst, ich habe nur die Globals alle mal nach oben verfrachtet. Das ganze kannst du auch mit Lade 2 mal machen, dann sind alle Warnings und Errors weg, nur dass dein Fenster weiß bleibt (soweit ich das getestet hab)
Edit 2: hier Lade 2:
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]Global $w, $h, $d, $x[16], $brush[16], $brushWeiss, $graphic, $bitmap, $buffer
[/autoit] [autoit][/autoit] [autoit]OnAutoItExitRegister("_Lade_Shutdown")
[/autoit] [autoit][/autoit] [autoit]
$gui = GUICreate("",400,50)
_Lade_Startup($gui,400,50,20)
GUISetState()
AdlibRegister("_Lade_Bewege",10)
Do
$msg = GUIGetMsg()
_Lade_Zeichne()
Until $msg = -3Func _Lade_Startup($hWnd,$width,$height,$durchmesser)
[/autoit] [autoit][/autoit] [autoit]
$w = $width
$h = $height
$d = $durchmesser
For $i=1 To 15 Step 1
$x[$i] = 10-(($i-1)*10)
Next
_GDIPlus_Startup()
$brushWeiss = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
For $j = 0 To 14 Step 1
$brush[$j+1] = _GDIPlus_BrushCreateSolid("0x" & Hex(0xFF - $j * 0x11, 2) & "60CCFF")
Next
$graphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$bitmap = _GDIPlus_BitmapCreateFromGraphics($w, $h, $graphic)
$buffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
EndFuncFunc _Lade_Shutdown()
[/autoit] [autoit][/autoit] [autoit]
For $m = 1 To 15 Step 1
_GDIPlus_BrushDispose($brush[$m])
Next
_GDIPlus_BrushDispose($brushWeiss)
_GDIPlus_GraphicsDispose($graphic)
_GDIPlus_GraphicsDispose($buffer)
_GDIPlus_BitmapDispose($bitmap)
_GDIPlus_Shutdown()
EndFuncFunc _Lade_Bewege()
[/autoit] [autoit][/autoit] [autoit]
For $n = 1 To 15 Step 1
If $x[$n] < $w Then $x[$n] += 2
If $x[$n] >= $w Then $x[$n] = 0
Next
EndFuncFunc _Lade_Zeichne()
[/autoit]
_GDIPlus_GraphicsFillRect($buffer, 0, 0, $w, $h, $brushWeiss)
For $o = 1 To 15 Step 1
_GDIPlus_GraphicsFillEllipse($buffer,$x[$o],($w-$d)/2,$d,$d,$brush[$o])
Next
_GDIPlus_GraphicsFillRect($buffer,0,0,20,$h,$brushWeiss)
_GDIPlus_GraphicsFillRect($buffer,$w-40,0,20,$h,$brushWeiss)
_GDIPlus_GraphicsDrawImageRect($graphic, $bitmap, 0, 0, $w, $h)
EndFunc -
danke für die links. das hat mir weitergeholfen
-
-
Hi @ all,
ich habe noch nur kleine Grundkenntnisse von C++ und ich fände es mal interessant zu wissen, wie man in C++ eine eigene DLL-Datei erstellen kann die man dann (so wie z.B. bei der Bass.dll) mit AutoIt (DllCall) ansteuern kann. So könnte man beispielsweise zeitintensivere Rechnungen in C++ verpacken und die dann in AutoIt benutzen (will das mal Just4Fun ausprobieren :D).
Nun ja, wie geht das in C++, einen DllCall abzufangen und eine Rückgabe zu geben? Ich hoffe das ist nicht allzu kompliziert...mfG
Developer30 -
-
xplorer öffnen -> Rechtsklick auf Laufwerk -> Eigenschaften -> Tools -> Defragmentieren
EDIT: Tust du das nicht, können Daten bei der Verkleinerung der Partitionen verloren gehen.
Aber wie gesagt, wenn zur Hand, dann nimm eine separate Festplatte ...
oh ok, danke für den hinweis. ich defragmentier dann lieber mal. ich hab auch schon Systemreperaturdatenträger angelegt.
Wenn ich eine separate Festplätte hätte, würde ich diese auch benutzen, aber auf meiner jetzigen Festplatte ist noch sowieso noch viel Platz von daher versuch ichs auf meiner jetztigen Festplatte. -
da steht, dass man vor einer Partitionierung eine Defragmentierung durchnehmen soll. Ist das zwingend notwendig, wenn ja, wie mache ich das?