Tratsch rund um Autoit / Autoit Talk | kleinere Fragen

11/14/2012 19:13 -STORM-#646
Wenn du ab dem ersten Semikolon, neben dem links eine gerade Anzahl Anführungszeichen ist, den String löschst, dann spielen Anführungszeichen nach diesem Semikolon keine Rolle.
Du musst halt von links nach rechts durchsuchen, bis du dieses Semikolon gefunden hast, und die Anführungszeichen rechts davon gar nicht beachten.

Mit RegEx kann man das bestimmt auch irgendwie machen, aber damit hab ich mich nie wirklich beschäftigt.
11/14/2012 19:14 Achat#647
Quote:
Originally Posted by Lawliet! View Post
Du kannst es dir ja am Obfuscator von Shadow abschauen ;)
Quote:
Originally Posted by Shadow992
Code:
If $kommentar[$i]="" or $kommentar[$i]=" " Then
_ArrayDelete($kommentar,$i)
$grose=$grose-1
$i=$i-1
EndIf
if StringInStr(StringStripWS($kommentar[$i],8),";")= 1 Then
;~ _ReplaceStringInFile($file,$kommentar[$i],"",1,0)
_ArrayDelete($kommentar,$i)
$grose=$grose-1
$i=$i-1
Else
if StringInStr(StringStripWS($kommentar[$i],8),";~")= 1 Then
;~ _ReplaceStringInFile($file,$kommentar[$i],"",1,0)
_ArrayDelete($kommentar,$i)
$grose=$grose-1
$i=$i-1
endif
endif
C&P geht gar nicht.
Außerdem möchte ich das ja möglichst schnell und wenn möglich mit StringRegExp lösen.

MfG
11/14/2012 19:36 Lawliet#648
Ich rede auch nicht von Copy und Past ;)
11/14/2012 19:59 Achat#649
Quote:
Originally Posted by Lawliet! View Post
Ich rede auch nicht von Copy und Past ;)
Code:
$sFile = FileOpenDialog('Source', @ScriptDir, '(*.au3)')
If @error Then Exit
$iPIDObfuscator = Run('C:\Program Files (x86)\AutoIt3\SciTE\Obfuscator\Obfuscator.exe "' & $sFile & '" "/striponly"', '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $sRead = ''
While 1
	$sRead &= StdoutRead($iPIDObfuscator)
	If @error Then ExitLoop
WEnd
MsgBox(0, 0, 'Comments stripped.' & @CRLF & $sRead)
:p

MfG
11/14/2012 20:23 -STORM-#650
Code:
;// gibt String ohne Comment zurück
Func _CutComment($string)
	Local $a1 = 0 ;// Count für "
	Local $a2 = 0 ;// Count für '
	
	;// String in Zeichen teilen
	Local $chars = StringSplit($string, "") 
	
	;//jedes Zeichen einzeln prüfen (von links nach rechts)
	For $i = 1 To $chars[0]
		
		;// falls Anführungszeichen gefunden
		;// entsprechenden Count (a1 bzw. a2) erhöhen falls anderer Anführungszeichen-Count gerade
		;// Not Mod(x,2) == True falls x gerade
		If $chars[$i] = '"' And Not Mod($a2,2) Then $a1 += 1
		If $chars[$i] = "'" And Not Mod($a1,2) Then $a2 += 1

		;// falls Semikolon gefunden und beide Counts gerade => String abschneiden
		If $chars[$i] = ";//" And Not Mod($a1,2) And Not Mod($a2,2) Then
			$string = StringLeft($string, $i-1)
			ExitLoop
		EndIf
	Next

	Return $string
EndFunc
Nicht ausführlich getestet, aber sollte eigentlich funktionieren.
Ich hoffe, die Idee wird deutlich:
String von links nach rechts durchsuchen, Anführungszeichen einzeln zählen, und falls die Anzahl gerade ist am Semikolon abschneiden.
11/14/2012 21:58 Kiinasu#651
ich hab auch ne kleine frage:
ich habe ein programm, das eine proxy einstellt, dann über $IE = _IECreate("google.com")
eine website aufruft. nur ist das problem, manche proxys machen probleme. da versucht er ewigkeiten zu verbinden/laden und es passiert nichts. nach einer weile, bekomme ich random array errors. deswegen wollte ich wissen, obs ne möglichkeit gibt, das wenn zb nach 1min die seite nichtmal angefangen hat wirklich zu laden, er einfach weiter macht. also ne art timeout.

hab schon einiges probiert, kam aber nicht zu zufriedenstellenden lösungen
11/14/2012 22:00 Achat#652
Quote:
Originally Posted by Kiinasu View Post
ich hab auch ne kleine frage:
ich habe ein programm, das eine proxy einstellt, dann über $IE = _IECreate("google.com")
eine website aufruft. nur ist das problem, manche proxys machen probleme. da versucht er ewigkeiten zu verbinden/laden und es passiert nichts. nach einer weile, bekomme ich random array errors. deswegen wollte ich wissen, obs ne möglichkeit gibt, das wenn zb nach 1min die seite nichtmal angefangen hat wirklich zu laden, er einfach weiter macht. also ne art timeout
Bei [Only registered and activated users can see links. Click Here To Register...] das Warten ausschalten, mehr dazu in der Funktionsbeschreibung (F1 drücken)

dann [Only registered and activated users can see links. Click Here To Register...]
und bei @error Fehlermeldung/exitloop/etc...

MfG
11/14/2012 22:19 mono0#653
Wie bekomm ichs hin, dass, während man eine Maustaste gedrückt hält, genau diese gespammt wird?

Das da unten ist profisorischer 2-min Code, nicht schlagen bitte.

11/14/2012 22:36 Achat#654
Auch ein 2min-Code :p

Code:
#include <Misc.au3>

Global $hUser32DLL = DllOpen('user32.dll')

While 1
	While _IsPressed(01, $hUser32DLL)
		MouseClick('left')
	WEnd
	Sleep(10)
WEnd
MfG
11/15/2012 12:43 mono0#655
Quote:
Originally Posted by Achat View Post
Auch ein 2min-Code :p

Code:
#include <Misc.au3>

Global $hUser32DLL = DllOpen('user32.dll')

While 1
	While _IsPressed(01, $hUser32DLL)
		MouseClick('left')
	WEnd
	Sleep(10)
WEnd
MfG
Hast dus bei dir ausprobiert? Bei mir gehts nicht :(

Ich hab auch schon probiert, statt MouseClick, direkt den Befehl aus der User32.dll zu verwenden, hat auch nix gebracht...
11/15/2012 13:25 Achat#656
Quote:
Originally Posted by mono0 View Post
Hast dus bei dir ausprobiert? Bei mir gehts nicht :(

Ich hab auch schon probiert, statt MouseClick, direkt den Befehl aus der User32.dll zu verwenden, hat auch nix gebracht...
Code:
#RequireAdmin
#include <Misc.au3>

Global $hUser32DLL = DllOpen('user32.dll')
Global $iClicks = 100

While 1
	If _IsPressed('01', $hUser32DLL) Then
		MouseClick('left', Default, Default, $iClicks, 0)
	EndIf
WEnd
Funktioniert.

MfG
11/15/2012 21:24 mono0#657
Quote:
Originally Posted by Achat View Post
Code:
#RequireAdmin
#include <Misc.au3>

Global $hUser32DLL = DllOpen('user32.dll')
Global $iClicks = 100

While 1
	If _IsPressed('01', $hUser32DLL) Then
		MouseClick('left', Default, Default, $iClicks, 0)
	EndIf
WEnd
Funktioniert.

MfG
Das ist aber nicht genau das, was ich wollte. Ich will, dass die Klicks solange gespammt werden, solange die Maustaste gedrückt bleibt. Also so wie eine Taste auf der Tastatur zB..

Hast du da eine Lösung dafür? :)
Und trotzdem danke!
11/16/2012 09:08 butter123#658
kannst du wenigstens ein paar stichworte sagen, damit man weiß ob man dir helfen kann?

wenn es was größeres ist, mach doch einen neuen thread auf, dann kann die ganze community helfen^^
11/16/2012 09:19 Lumi#659
Quote:
Originally Posted by Gregzor View Post
Hallo =) Also ich hätte da eine größere Frage kann es schwer erklären Bräuchte Hilfe Bitte Melden unter SKYPE: gregstars1 ._.
PLS MELDET EUCH !!!!
MFG
Gregzor
Bitte schildere uns deine Probleme. Für sowas ist die Community auch da.
Wenn es schwer zu erklären ist, dann müsste es auch in Skype schwer zu erklären sein..
Ich verstehe den Unterschied nicht. :P
11/16/2012 13:35 Achat#660
Quote:
Originally Posted by Lumi' View Post
Bitte schildere uns deine Probleme. Für sowas ist die Community auch da.
Wenn es schwer zu erklären ist, dann müsste es auch in Skype schwer zu erklären sein..
Ich verstehe den Unterschied nicht. :P
In skype kann dir auch nur einer helfen, hier im Forum können dir theoretisch über 4 Millionen User helfen.
Wenn mehr Leute an einer Problemlösung arbeiten, dann wird das Problem schneller gelöst. Poste doch dein Problem einfach hier ;)

MfG