Hatte die Version von hier aus dem Forum.
Aber mit deiner Version geht´s jetzt.
Thx thx.
Beiträge von Manlius
-
-
Habe mir die neueste Version gedownloaded, aber den Befehl "InetGetInfo" gibt´s da nich...
-
Hey Leute,
ich habe in den Rapidshare downloader von McPoldy einen Fortschrittsbalken eingebaut. Bei der ersten Datei die gedownloaded wird, funkt auch alles super. Nur bei jeder darauffolgenden Datei, ist der Fortschrittsbalken schon voll und es steht dort, dass auch schon alles gedownloaded wäre.
Ich habe rausgefunden, dass das von der wert abhängt, der von @Inetgetbytesread zurückgegeben wird. Kann man irgendwie nach jeden Vorgang diesen Wert sozusagen "resetten"?
Hier das Script:Spoiler anzeigen
[autoit]#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>
#include<String.au3>
#include <Guiconstants.au3>Global $links[1]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Global $Vorher = 0
Global $Pause = 250; <-- siehe Infos 4.
[/autoit] [autoit][/autoit] [autoit]
; Lade Datein
$oFile = FileOpen(@ScriptDir & '\dateilinks.txt', 0)
While 1
$line = FileReadLine($oFile)
If @error = -1 Then ExitLoop
$str = StringStripWS($line, 3)
If $str <> '' Then _ArrayAdd($links, $str)
WEnd
FileClose($oFile)
$links[0] = UBound($links) - 1
If $links[0] = 0 Then Exit
; -->Call("_download")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Func _download()
For $i = 1 To $links[0]
$oIE = _IECreate("about:blank")
Sleep (5000)
; <-- siehe Infos 1.
_IENavigate($oIE, $links[$i])
$oForm = _IEFormGetObjByName($oIE, "ff")
_IEFormSubmit($oForm, 0)
; -->
; <-- siehe Infos 2.
_IELoadWait($oIE)
$durchlauf = 0
Do
$durchlauf = $durchlauf + 1
$oForm = _IEFormGetObjByName($oIE, "dlf")
If $oForm = 0 Then Sleep(5000)
If $durchlauf = 33 Then
ControlSend ("RapidShare","","[CLASS:Internet Explorer_Server; INSTANCE:1]","{F5}")
Sleep (4000)
ControlSend ("Windows Internet Explorer","","[CLASS:Static; INSTANCE:2]","{Enter}")
$durchlauf = 0
EndIf
Until $oForm <> 0
; <-- siehe Infos 3.
$str = StringSplit($oForm.action, '/')
; -->
$size = InetGetSize($oForm.action) ;Dateigröße ermitteln
InetGet($oForm.action, @ScriptDir & '\download\' & $str & $str[UBound($str) - 1], 1, 1)Global $iDownSize = 0
[/autoit] [autoit][/autoit] [autoit]
Global $prosize = 0
Global $loadedsize = 0
Global $trueloadedsize = 0
Global $finalsize = 0
Global $truefinalsize = 0$Form1 = GUICreate($str[UBound($str) - 1], 300, 80, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Progress1 = GUICtrlCreateProgress(5, 5, 290, 16)
GUICtrlSetData($Progress1, 0)
$Label1 = GUICtrlCreateLabel("Bitte warten...", 5, 25, 300, 20)
GUICtrlSetData($Label1, "Bitte warten...")
$button = GUICtrlCreateButton ("Download fertig machen, dann Ende",50,45,-1,-1)
GUISetState(@SW_SHOW)
_IEQuit($oIE)
Sleep(10000)
$ende = 0
While @InetGetActive
$msg = GUIGetMsg ()
If $msg = $button Then
$ende = 1
GUICtrlSetState ($button,$GUI_DISABLE)
EndIf
Sleep(300)
$iDownSize = @InetGetBytesRead
$prosize = Round(100 / $size * $iDownSize, 1)
$loadedsize = $iDownSize / 1000000
$trueloadedsize = Round($loadedsize, 3)
$finalsize = $size / 1000000
$truefinalsize = Round($finalsize, 3)
GUICtrlSetData($Progress1, $prosize)
GUICtrlSetData($Label1, $trueloadedsize & " von " & $truefinalsize & " Megabytes heruntergeladen. (" & $prosize & " %)")
WEnd
GUIDelete()
If $ende = 1 Then Exit
; -->
Next
EndFunc ;==>_download; <-- siehe Infos 5.
[/autoit] [autoit][/autoit] [autoit]; -->
[/autoit] [autoit][/autoit] [autoit]; <-- siehe Infos
[/autoit]Danke
LG
Manlius -
Ich will den Cursor in einem Programm bewegen, dass minimiert ist.
-
Hey Leute,
ich habe die X- und die Y-Koordinaten der Maus im Memory gefunden. Nun stellt sich die frage: Ist es iwie möglich, diese beiden Memoryadressen zu verändern? Also halt die value zu verändern? Weil wenn ich mit NomadMemory den Befehl _MemoryWrite schreibe, dann ändert sich bei diesen Werten absolut nichts. Andere Werte kann ich problemlos verändern.
DankeLG
Manlius -
Hey Leute,
ist es möglich, wenn man mit Inetget arbeitet, die Downloadgeschwindigkeit rauszufinden?Danke
LG
Manlius -
Jo genau so...
-
Hey,
[autoit]
es würde natürlich mit dem funktionieren:#include <GUIConstantsEx.au3>
[/autoit]
Guictrlsetstate (controlID,$GUI_DISABLE) -
[autoit]
$random = Random (1,10,1)
[/autoit]
MsgBox (32,"Zahl",$random) -
-
Aso ja die Parameter...Wenn ich es richtig verstehe müsste es dann so aussehen:
[autoit]$simul = SimulKey ("Unbenannt - Editor","Hallo Leute",1) ;1 für String
[/autoit]
funktionieren tut es trotzdem nichautoBert: Ich weiß nich, was du mit Func meinst. Der Befehl müsste doch auch so aufgerufen werden...
Ich will im mom einfach etwas in den Editor schreiben, auch wenn dieser nicht aktiv ist. Mehr will ich gerade noch gar nich damit erreichen... -
Hallo manilus,
das wichtigste in deinem Skript hast du leider vergessen, nämlich die func die du in Zeile 8 aufrufst:
[autoit]$simul = SimulKey ("Unbenannt - Editor]","Hallo Leute")
[/autoit]mfg (Auto)Bert
???
Die Funktion is doch da, oder nicht?!?!?!? -
Raupi ,
liegt wohl daran, dass er einige User auf seiner Ignore-Liste hat, dadurch kann er die Beiträge nicht lesen, noch nicht einmal die für ihn wichtigen,@manilus, was hast du den genau vor?
mfg (Auto)Bert
Ich hab einfach vor, Tastendrücken und Mausbewegungen an ein nicht aktives Fenster zu schicken...
Edit: also iwie geht das mit den tastendrücken nich...Das Script schreibt nichts:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Mouse.au3>
#include <Key.au3>Run ("Notepad.exe")
[/autoit]
WinWait ("Unbenannt - Editor")
Sleep (2000)
$simul = SimulKey ("Unbenannt - Editor]","Hallo Leute")
If $simul = 1 Then
MsgBox (32,"Erfolg","Erfolg")
Else
MsgBox (16,"Fehlgeschlagen","Die dll User32 konnte nicht geladen werden")
EndIf -
; #FUNCTION# ==================================================================================================================== ; Name...........: SimulKey ; Description ...: Simulate a Key-Send to a specified handle in the Background ; Author ........: Felix Lehmann alias eF_Hacks (elitepvpers) ; Modified.......: If you modify this Script, please enter your name here ; Remarks .......: None ; Related .......: - ; Parameters ....: $hwnd = Specified Window to Send to ; ...............: $key = Key or String to Send (If String $string have to be enabled [see $string]) ; ...............: $string = Set this to 1 If your "$key" is a string ; ...............: $state = Set this to 'up' or 'down' if u want a special event | Default is press the Key 1 Time ; ...............: $delay = The delay to hold the key down ; Return Values .: 1 = Done | -1 = Couldn't load user32.dll ; Link ..........; http://www.elitepvpers.de/forum/guild-wars/ ; =============================================================================================================================== Func SimulKey($hWnd, $key, $string = 0, $state = 'skip', $delay = 10) ;//Open DLL (user32) $user32 = DllOpen('user32.dll') If $user32 = -1 Then SetError(-1, 1, -1) EndIf ;//Handle Special Keys Switch StringLower($key) Case 'enter' $WM_ENTER = 0x0d $dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_ENTER, 'int', 0) $lParam = BitOR(BitShift($dCall[0], -16), 1) Case 'space' $WM_SPACE = 0x20 $dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_SPACE, 'int', 0) $lParam = BitOR(BitShift($dCall[0], -16), 1) Case 'tab' $WM_TAB = 0x09 $dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_TAB, 'int', 0) $lParam = BitOR(BitShift($dCall[0], -16), 1) ;//Handle Standard Keys Case Else ;//Stringmode 1 If $string = 1 Then $split = StringSplit($key, "") For $ctn = 1 To $split[0] $split[$ctn] = Asc(StringLower($split[$ctn])) Next For $ctn = 1 To $split[0] $dCall = DllCall($user32, 'int', "VkKeyScan", 'int', $split[$ctn]) $lParamAsc = DllCall($user32, 'int', "MapVirtualKey", 'int', $dCall[0], 'int', 0) $lParam = BitOR(BitShift($lParamAsc[0], -16), 1) $lUpParam = BitOR($lParam, 0xC0000000) DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYDOWN, 'int', $dCall[0], 'int', $lParam) Sleep($delay) DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYUP, 'int', $dCall[0], 'int', $lUpParam) Sleep(100) Next ;//Stringmode 0 ElseIf $string = 0 Then $key = Asc(StringLower($key)) $dCall = DllCall($user32, 'int', "VkKeyScan", 'int', $key) $lParamAsc = DllCall($user32, 'int', "MapVirtualKey", 'int', $dCall[0], 'int', 0) $lParam = BitOR(BitShift($lParamAsc[0], -16), 1) EndIf EndSwitch $lUpParam = BitOR($lParam, 0xC0000000) If $string = 0 Then Switch StringLower($state) Case 'skip' DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYDOWN, 'int', $dCall[0], 'int', $lParam) Sleep($delay) DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYUP, 'int', $dCall[0], 'int', $lUpParam) Case 'down' DllCall($user32, "int", "PostMessage", "hwnd", $hWnd, "int", $WM_KEYDOWN, "int", $dCall[0], "int", $lParam) Case 'up' DllCall($user32, "int", "PostMessage", "hwnd", $hWnd, "int", $WM_KEYUP, "int", $dCall[0], "int", $lParam) EndSwitch EndIf DllClose($user32) Return 1 EndFunc ;==>SimulKey
mhm...mir zeigt´s in beiden UDFs Fehler an:
Spoiler anzeigen
C:\Programme\AutoIt3\Include\Mouse.au3(34,30) : WARNING: $WM_LBUTTONUP: possibly used before declaration.
$btup = $WM_LBUTTONUP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programme\AutoIt3\Include\Mouse.au3(53,65) : WARNING: $hwnd: possibly used before declaration.
DllCall($user32, "int", "PostMessage", "hwnd", $hwnd,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programme\AutoIt3\Include\Mouse.au3(53,87) : WARNING: $WM_MOUSEMOVE: possibly used before declaration.
DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", $WM_MOUSEMOVE,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programme\AutoIt3\Include\Key.au3(62,93) : WARNING: $WM_KEYDOWN: possibly used before declaration.
DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYDOWN,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programme\AutoIt3\Include\Key.au3(64,91) : WARNING: $WM_KEYUP: possibly used before declaration.
DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYUP,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programme\AutoIt3\Include\Mouse.au3(34,30) : ERROR: $WM_LBUTTONUP: undeclared global variable.
$btup = $WM_LBUTTONUP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Programme\AutoIt3\Include\Mouse.au3(50,33) : ERROR: MakeLong(): undefined function.
$pos = MakeLong($xpos, $ypos)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ -
Hey Leute,
ich suche ein UDF, mit dem man eine Nichtaktives Fenster "steuern" kann. Weil ich komme mit ControlClick usw. nicht wirklich zurecht.
DankeLG
Manlius -
Hey Leute,
Ich habe eine GUI mit 5 Inputfeldern und 5 Comboboxen. Je eine der Comboboxen is für 1 Inputfeld "zuständig". Das heißt, wenn eine Combobox gecheckt wird, dass dann das Inputfeld Enabled und Disabled wird. Nun kann man in die Inputfelder Nachrichten reinschreiben, welche dann ausgegeben werden, wenn man auf den Start Button klickt. Diese nachrichten sollen jedoch zufällig ausgegeben werden. Das heißt das eine von den 5 (oder auch wenigern) ausgewählt wird. Das is klar das kann ich mit Random machen. Also das ganze sieht z.B. so aus:Inputfelder
Hi (Disabled) Checkbox 4
Hey (Enabled) Checkbox 1
Hallo (Disabled) Checkbox 4
Huhu (Disabled) Checkbox 4
Sers (Enabled) Checkbox 1Also hier müsste jetzt entweder Hey oder Sers ausgegeben werden.
Nun wie kann ich das nun machen, dass das Ganze immer funktioniert, ohne dass ich jede einzelne Möglichkeit in mein Scipt schreib?Hier is das Script:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]GUICreate ("Hallo",450,300,-1,-1)
[/autoit] [autoit][/autoit] [autoit]
GUISetBkColor (0xDF6E12)
GUISetState ()
$input1 = GUICtrlCreateInput ("Hi",20,40,200)
$input2 = GUICtrlCreateInput ("Hey",20,90,200)
$input3 = GUICtrlCreateInput ("Hallo",20,140,200)
$input4 = GUICtrlCreateInput ("Huhu",20,190,200)
$input5 = GUICtrlCreateInput ("Sers",20,240,200)
Global $pn[6]
$pn[1] = GUICtrlCreateCheckbox ("Nachricht 1 aktivieren",300,40,-1,-1)
$pn[2] = GUICtrlCreateCheckbox ("Nachricht 2 aktivieren",300,90,-1,-1)
$pn[3] = GUICtrlCreateCheckbox ("Nachricht 3 aktivieren",300,140,-1,-1)
$pn[4] = GUICtrlCreateCheckbox ("Nachricht 4 aktivieren",300,190,-1,-1)
$pn[5] = GUICtrlCreateCheckbox ("Nachricht 5 aktivieren",300,240,-1,-1)
$button = GUICtrlCreateButton ("Start",150,270,100,30)GUICtrlSetState ($input1,$GUI_DISABLE)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState ($input2,$GUI_DISABLE)
GUICtrlSetState ($input3,$GUI_DISABLE)
GUICtrlSetState ($input4,$GUI_DISABLE)
GUICtrlSetState ($input5,$GUI_DISABLE)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg ()
Select
Case $msg = $pn[1]
If GUICtrlRead ($pn[1]) = 4 Then
GUICtrlSetState ($input1,$GUI_DISABLE)
ElseIf GUICtrlRead ($pn[1]) = 1 Then
GUICtrlSetState ($input1,$GUI_ENABLE)
EndIf
Case $msg = $pn[2]
If GUICtrlRead ($pn[2]) = 4 Then
GUICtrlSetState ($input2,$GUI_DISABLE)
ElseIf GUICtrlRead ($pn[2]) = 1 Then
GUICtrlSetState ($input2,$GUI_ENABLE)
EndIf
Case $msg = $pn[3]
If GUICtrlRead ($pn[3]) = 4 Then
GUICtrlSetState ($input3,$GUI_DISABLE)
ElseIf GUICtrlRead ($pn[3]) = 1 Then
GUICtrlSetState ($input3,$GUI_ENABLE)
EndIf
Case $msg = $pn[4]
If GUICtrlRead ($pn[4]) = 4 Then
GUICtrlSetState ($input4,$GUI_DISABLE)
ElseIf GUICtrlRead ($pn[4]) = 1 Then
GUICtrlSetState ($input4,$GUI_ENABLE)
EndIf
Case $msg = $pn[5]
If GUICtrlRead ($pn[5]) = 4 Then
GUICtrlSetState ($input5,$GUI_DISABLE)
ElseIf GUICtrlRead ($pn[5]) = 1 Then
GUICtrlSetState ($input5,$GUI_ENABLE)
EndIf
Case $msg = $button
For $i = 1 to 5
If GUICtrlRead ($pn[$i]) = 1 Then
Call ("Sender")
EndIf
Next
Exit
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEndFunc Sender ()
[/autoit]
;Send ?!?!?!?!?!?
EndFunc -
Das selbe Problem hatte mal jemand mit Call of Duty:
Mit workingdir ging es.
Versuch mal:
[autoit]ShellExecute ( "X3.exe", "", "F:\X3-Reunion" )
[/autoit]Jawoll xD
Vielen Dank so geht es... -
was willst du denn ausführen das spiel oder was willst du genau machen?
Ja einfach das Spiel aber das funktioniert komischerweise nicht. Wenn ich genau den Pfad in "Ausführen" eingeb, den ich nach dem "ShellExecute" stehn hab, öffnet sich das Spiel...
-
[autoit]
Run("F:\X3-Reunion\X3.exe")
[/autoit]
evt?Ne geht auch nich...
-
Hey Leute,
hab ein Problem mit ShellExecute. Und zwar öffnet es bei mir nicht das Programm, dass geöffnet werden soll. Der Pfad stimmt 100 %ig hab ich bestimmt schon 10mal überprüft. Es kommt immer die Meldung mit einem schwarzen Ausrufezeichen auf gelben Grund mit "File not found". Wenn der Pfad nicht stimmen würde, müsste eine andere Meldung kommen... Das komische ist auch, dass ich andere Programme mit ShellExecute wunderbar öffnen kann.
Mit "Run" funktioniert es übrigens auch nicht.Spoiler anzeigen
[autoit]ShellExecute ("F:\X3-Reunion\X3")
[/autoit]Weiß jemand wo dran es liegt?!
Danke
LG
Manlius