Na und wo ist das Problem dann einfach alles direkt am Anfang zu inkludieren?
Beiträge von PenGuin
-
-
Ich glaube er/sie möchte einfach, dass ein Programm, welches in den einzelnen au3 hinterlegt ist, ausgeführt wird.
-
Funktioniert !
Aber leider noch etwas störend.
Ja, bedauerlicherweise ließ sich das Sound Fenster nicht mit @SW_HIDE starten, auch nicht als DLL Call, auch das im Nachhinein unsichtbar machen ging nicht.
-
Ich hab momentan nur diese Lösung:
Spoiler anzeigen
[autoit]Func _SetAudioDevice($sChange, $iAudio = 0)
[/autoit]
; 0 = Playback
; 1 = Record
Local $iAudioCount, $sName, $sDefault, $ID = -1
Local $fDefault = False, $fConfigure = False
Run("control.exe mmsys.cpl")
WinWait("Sound")
If $iAudio = 1 Then
ControlCommand("Sound", "", "[CLASS:SysTabControl32; INSTANCE:1]", "TabRight")
Sleep(200)
EndIf
$iAudioCount = ControlListView("Sound", "", "[CLASS:SysListView32; INSTANCE:1; ID:1000]", "GetItemCount")
For $i = 0 To $iAudioCount - 1
$sName = ControlListView("Sound", "", "[CLASS:SysListView32; INSTANCE:1; ID:1000]", "GetText", $i, 1)
ControlListView("Sound", "", "[CLASS:SysListView32; INSTANCE:1; ID:1000]", "Select", $i)
$fConfigure = ControlCommand("Sound", "", "[CLASS:Button; INSTANCE:1; ID:1001]", "IsEnabled")
$fDefault = ControlCommand("Sound", "", "[CLASS:Button; INSTANCE:2; ID:1002]", "IsEnabled")
Switch $iAudio
Case 0
If ($sName = $sChange) And $fDefault And $fConfigure Then
$ID = $i
ExitLoop
EndIf
Case 1
If ($sName = $sChange) And $fDefault Then
$ID = $i
ExitLoop
EndIf
EndSwitch
Next
ControlListView("Sound", "", "[CLASS:SysListView32; INSTANCE:1; ID:1000]", "Select", $ID)
ControlClick("Sound", "", "[CLASS:Button; INSTANCE:2; ID:1002]")
WinClose("Sound")
If $ID <> -1 Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>_SetAudioDevice$sChange ist der Name des Audiogerätes, welches gesetzt werden soll.
-
Unnötige Verschwendung des Speichers auf der HDD des Servers
Naja sonst: Wenn die Codestruktur da wäre ein tolles Script.Ob ungarische Notation oder nicht, das sei jedem selbst überlassen. Ist halt in Autoit so, dass man nicht erkennt, was die Variable beinhaltet, damit muss man leben lernen.
Und nur wegen Nichtbenutzens jener Notation gleich das ganze Script als "schlecht" zu titulieren, halte ich persönlich doch schon für stark überzogen. -
@Sprenger, hab mich damals damit beschäftigt .wav Dateien zu erstellen und dort in Form einer Sinuskurve Töne hineinzuschreiben.
Hab das leider nicht ganz geschafft und hab Andy befragt, und das ist das Ergebnis gewesen (schon länger her):Spoiler anzeigen
[autoit];WAV-Header, 16 Bit, 1 Kanal, 44100 Hz
[/autoit] [autoit][/autoit] [autoit]
Global Const $pi = 4 * ATan(1) ;pi=3,1415926....
$wavheader = "0x52494646CCBA060057415645666D7420100000000100010044AC0000885801000200100064617461";A8BA0600"$data = _createwavedata(400, 600, 60)
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $data = ' & StringLen($data) & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console$size = Hex(StringLen($data) / 2,
[/autoit] [autoit][/autoit] [autoit]
$len = ""
For $i = 7 To 1 Step -2 ;size in little endian
$len &= StringMid($size, $i, 2)
Next$bin = BinaryToString($wavheader & $len & $data)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$wav = FileOpen("test1.wav", 18)
$bindata = FileWrite($wav, $bin)
;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $bindata = ' & $bindata & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
FileClose($wav)
ShellExecute("test1.wav") ;wavedatei abspielenFunc _createwavedata($freq1, $freq2, $seconds) ;von freq1 nach freq2 innerhalb seconds
[/autoit] [autoit][/autoit] [autoit]
$wavstring = ""
$f = $freq1
$b = 0
For $i = 1 To $seconds
$f = $freq1 + Abs($freq1 - $freq2) / $seconds * $i ;jede Sekunde wird die frequenz erhöht
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $f = ' & $f & " " & $i & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
For $t = 0 To 1 Step 1 / 44100 ;jede Sekunde eine frequenz$yt = Int(32000 * Sin(2 * $pi * $f * $t)) ;unsere altbekannte formel
[/autoit]
;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $yt = ' & $yt &" "&hex($yt,4)& @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
$lowHighbyte = StringRight(Hex($yt, 4), 2) & StringLeft(Hex($yt, 4), 2)
;MsgBox(262144,'Debug line ~' & @ScriptLineNumber,'Selection:' & @lf & '$lowHighbyte' & @lf & @lf & 'Return:' & @lf & $lowHighbyte) ;### Debug MSGBOX
$wavstring &= $lowHighbyte
Next
Next
Return $wavstring
EndFunc ;==>_createwavedata -
-
Ich denke du hast das schließen dieses Handles
[autoit]$ret = DllCall('Kernel32.dll', 'int', 'CreateToolhelp32Snapshot', 'dword', $TH32CS_SNAPTHREAD, 'dword', 0)
[/autoit]vergessen

Also einfach ans Ende:
[autoit]DllCall($hKernel, "bool", "CloseHandle", "hwnd", $ret[0])
[/autoit]€:
Ich hatte auch mal solch eine Funktion gemacht
Spoiler anzeigen
[autoit]Func _GetProcessThreads($iPID)
[/autoit]
Local $hThreadSnap, $aTID[1], $i = 0, $hThreadFirst, $hThreadNext, $iCount = 0, $iUBound
Local Const $szTe32Data = "dword dwSize;dword cntUsage;dword th32ThreadId;dword th32OwnerProcessID;long tpBasePri;long tpDeltaPri;dword dwFlags"
Local $szTE32 = DLLStructCreate($szTe32Data)
Local $hKernel = DllOpen("kernel32.dll")
$hThreadSnap = DllCall($hKernel, "ptr", "CreateToolhelp32Snapshot", "dword", 0x00000004, "dword", 0)
If @error Then
DllCall($hKernel, "bool", "CloseHandle", "hwnd", $hThreadSnap[0])
Return SetError(-1)
EndIf
DllStructSetData($szTE32, "dwSize", DllStructGetSize($szTE32))
$hThreadFirst = DllCall($hKernel, "bool", "Thread32First", "ptr", $hThreadSnap[0], "ptr", DLLStructGetPtr($szTE32))
If @error Then
DllCall($hKernel, "bool", "CloseHandle", "hwnd", $hThreadSnap[0])
Return SetError(-2)
EndIf
If $hThreadFirst[0] = True Then
Do
If DLLStructGetData($szTE32, "th32OwnerProcessID") = $iPID Then
If Not $i = 0 Then
$iUBound = UBound($aTID)
ReDim $aTID[$iUBound + 1]
EndIf
$aTID[$i] = DLLStructGetData($szTE32, "th32ThreadId")
$i += 1
ReDim $aTID[$i]
EndIf
$hThreadNext = DllCall($hKernel, "bool", "Thread32Next", "ptr", $hThreadSnap[0], "ptr", DLLStructGetPtr($szTE32))
Until $hThreadNext[0] = False
EndIf
DllCall($hKernel, "bool", "CloseHandle", "hwnd", $hThreadSnap[0])
DllClose($hKernel)
$szTE32 = 0
Return $aTID
EndFunc -
Wieso nicht einfach die URL anpingen via
[autoit]Ping
[/autoit]?
-
-
Und was ist mit Selection-Sort?

-
Hi,
danke für den Denkanstoß
. Da hätte ich eigentlich selber drauf kommen können aber eine alte Lebensweisheit sagt: "Auf die leichtesten Dinge kommt mann immer zum Schluss". Die länge von der 10 Px Kathete zu bekommen ist kein Problem aber wie komme ich an die der 4Px ? Mann könnte mit einer Schleife den Punkt immer weiter setzen und dann gucken ob sich Punkt und Gerade berühren aber das würde den Speed zu sehr mindern. Kennt wer ne andere Lösung ?Na legst du Y nicht irgendwie in dem Rendervorgang selbst fest?
Alternativ könnte man das mit Winkelfunktionen lösen, dazu bräuchtest du aber den Winkel... -
WM_NOTIFY?
WM_COMMAND?
HotKeySet?
_IsPressed? -
Vllt. StringToBinary und dann abspeichern?
-
Cool!
Und ich hatte gehofft.. (1. April :<)
-
Oh tut mir Leid, hab ich wohl überlesen...
Die Möglichkeit wäre es noch OutputDebugString zu nehmen und dass dann mit einem externen Programm auszulesen, damit wäre
immerhin dieses Problem behoben:ZitatDas wurde schon vorgeschlagen. Da aber AutoIt-Unterprozesse über ConsoleWrite kommunizieren geht das schelcht.
Ich weiß nur grad nicht, wie man das wieder auslesen kann außer mit entsprechenden Debuggern.
PS: Tjaja, Threads sind schon schön^^
-
Das liegt nicht an SeDebugPrivilege, sondern daran, dass sich die IDE mehr Rechte holt als deine kompilte .exe, wenn du sie via Doppelklick startest.
-
_StringBetween?
-
VMWare Workstation
ImpREC
OllyDbg
IDA Pro
ICQ/Skype/TS3
AutoIt
Visual C++ 2010
F-Secure
CCleaner
Wireshark
Cain & Abel
WinZIP
wPE / rPE -
Nur mal so zum mitschreiben, der Bot heißt nicht Autimus Prime sondern Optimus Prime.
Wenn dein Name also so ähnlich wie Autismus ist, dann bist du selber schuld
Ist aber nur Spaß gepaart mit Sarkasmus... kannst dich ja nennen wie du willst.

Er hat auch nicht versucht Optimus mit AutoIt zu kreuzen
