Wobei man betonen sollte, daß das "Problem" mit einer einzigen Zeile zu erschlagen wäre....so man denn fit in regulären Ausdrücken ist....
Einer meiner alten Profs pflegte zu sagen: "Das lernen wir dann im 12. Semester!" (Übersetzt: "Braucht kein Mensch wirklich!"));)
Beiträge von Andy
-
-
Anfängerkompatibel^^
[autoit]$zahl = "000031240534453" ;dateiname ist sowieso ein string
[/autoit][autoit][/autoit][autoit]for $i=1 to stringlen($zahl) ;jede einzelne Ziffer vom Stringanfang bis zum Ende
[/autoit][autoit][/autoit][autoit]
if stringmid($Zahl,$i,1)<>"0" then exitloop ;wenn diese Ziffer KEINE 0 ist, dann schleife beenden
next ;so lange, bis Ende des strings erreicht$zahl_ohne_fuehrende_nullen=stringtrimleft($zahl,$i-1) ;alle führenden Nullen streichen
[/autoit][autoit][/autoit][autoit]
$letzte_5_gestrichen= stringtrimright($zahl_ohne_fuehrende_nullen,5) ;die letzten 5 Ziffern streichen;Cursor auf die Variable setzen und dann in ScIte Shift+Strg+d drücken zeigt eine Messagebox
[/autoit]
MsgBox(262144,'Debug line ~' & @ScriptLineNumber,'Selection:' & @lf & '$letzte_5_gestrichen' & @lf & @lf & 'Return:' & @lf & $letzte_5_gestrichen) ;### Debug MSGBOX -
In der aktuellen c´t sind mehrseitige Artikel zu diesem Thema. Im Prinzip geht es zwar um dem Empfang bei den (auch ein Bericht) TV´s, aber das Grundprinzip (wer sendet was wie verschlüsselt und welche Gräte brauche ich) bleibt gleich. Es werden auch die "inoffiziellen" Möglichkeiten beschrieben. Bei Kabel Deutschland steht in der Liste ein PC mit DVB-C-Karte:
- incl. CI, Alphacrypt light (für K09/D09 Karten nur mit Firmware 1.16 nutzbar) und SKY-Karte als Empfangsweg für SKY
- Private speisen kein HD ins Kabel, daher entfällt das komplett
- für ÖR eine DVB-C-Karte mit TV-Anwendung mit H.264-Dekodierung, wird unverschlüsselt übertragen, da reicht eine "alte" DVB-C karte, lediglich die TV-Anwendung MUSS H.264 dekodieren können. -
Irgendwann in grauer Vorzeit, muss so 1985 gewesen sein als ich mein Abi machte, habe ich in Basic auf einem Taschenrechner PC-1401 programmiert. Da dieses Ding auch in Maschinencode programmierbar war, habe ich auf späteren Rechnern immer die Kombination Basic/Maschinensprache/Assembler verwendet. Aus GW-Basic wurde Turbobasic, mehrere Anläufe um VisualBasic zu lernen sind gescheitert. Sämtliche Ingenieursmäßigen Berechnungen waren simpelst in Basic machbar, brauchte man etwas SEHR schnelles, dann Assembler. Dann gabs ca. 20 Jahre andere Prioritäten und als ich als Abonnent der c´t irgendwann auf einer der Heft-CD´s sah, was man mit AutoIt machen konnte, hats mich wieder gepackt. Irgendetwas Basicähnliches sollte es sein, simpel, einfach und mit einer TOP-Community. Da bleibt nicht viel auf dem Markt....außer dieses Forum hier!

-
Die Frage ist, warum es unbedingt mehrdimensionale Arrays sein müssen.
In den allermeisten Fällen kommt man besser ohne klar. Von der Lesbarkeit des Codes mal ganz zu schweigen. Such mal Fehler in einem Script, welches 5-dimensionale Arrays verwendet.
Daher wird es auch kein TuT geben, einfach weil es unnötig ist. Wer kapiert hat, was ein 2-dimensionales Array ist und wie man es benutzt, der hat auch mit n-dimensionalen Arrays keine Probleme.Vielleicht wäre es sinnvoll, dein Problem zu nennnen und so auf den Erfahrungsschatz der User hier zurückzugreifen anstatt nach einem Tut zu einem Thema zu fragen, mit dem man sich in den allermeisten Fällen sowieso nur Ärger ins Script holt.
-
[ offen ] ListView: fixe Spaltenbreite
[ offen ] Fragen zu GUICtrlListViewDort gibts mehrere Lösungsmöglichkeiten
-
Zitat
aber was passiert wenn der RAM voll ist?
entweder bekommst du von AutoIt eine dementsprechende Fehlermeldung und das Programm endet dann, oder du reservierst das RAM dynamisch. Beim Überschreiten einer bestimmten, vorher festgelegten Speichergrenze wird der Rest auf freien Festplattenplatz ausgelagert. Das sog. "swappen" merkst du dann am Gerödel der Festplatte. Da die Geschwindigkeit der Platte im Vergleich zum RAM extremst langsam ist, dauert das Gerödel dann auch länger an^^. Im Prinzip ist es kein Problem, eine z.B. 3 Gigabyte große Datei mit 640k Ram zu bearbeiten, du musst dann halt nur "Häppchen" von 200k Größe bearbeiten (entschlüsseln) und diese "Häppchen" dann als entschlüsselte Datei wieder hintereinanderschreiben.
-
Zitat
dann verdoppelt sich die größe .. (also das verzeichnis was ich hab hat zb 100mb dann hat mein output auf einmal 200mb)
fleissig Funktionen verwenden und nicht mal die Beispiele in der Hilfe anschauen^^...ich verweise mal auf
[autoit]_Crypt_EncryptData()
[/autoit]jedes Zeichen im binärfile wird in eine hex-Darstellung gebracht, dann wird das Ergebnis logischerweise doppelt so groß.
Zitatdiese überprüft den container ob es sich hierbei um eine datei handelt die auch mit meinem programm erstellt worden ist
Da du ja deine Datei konstruieren kannst wie du lustig bist, könntest du als "Header" die 5 Buchstaben "EbRSV" für "EncryptedByReakersSoftwareViva" davorsetzen. Genauso wie MZ bei Exefiles und BM bei Bitmapsdateien als erste Buchstaben stehen....dann musst du zum Prüfen nur die ersten 5 Byte checken -
[autoit]
#include <Array.au3>
[/autoit][autoit][/autoit][autoit]
#include <Constants.au3>
#include <GDIConstants.au3>HotKeySet("{ESC}","End")
[/autoit][autoit][/autoit][autoit]While Sleep(100)
[/autoit][autoit][/autoit][autoit]
$Struct = DllStructCreate("long;long")
DllStructSetData($Struct, 1, MouseGetPos(0))
DllStructSetData($Struct, 2, MouseGetPos(1))
$StructData = DllStructGetData(DllStructCreate("uint64", DllStructGetPtr($Struct)), 1)$hScreen = DllCall("User32.dll", "handle", "MonitorFromPoint", "uint64", $StructData, "dword", 0)
[/autoit][autoit][/autoit][autoit]
; $hscreen = DllCall("User32.dll", "handle", "MonitorFromPoint", "long", MouseGetPos(0), "long", MouseGetPos(1), "dword", 0)
;_arraydisplay($hscreen)
$tagmonitorinfo=dllstructcreate("dword cbSize;long[4];long[4];dword dwFlags")
DllStructSetData($tagmonitorinfo,1,DllStructGetSize($tagMonitorinfo))
$test = DllCall("User32.dll", "boolean", "GetMonitorInfo", "hwnd", $hScreen[0],"ptr",DllStructGetPtr($tagMonitorinfo))
;_arraydisplay($test)
;~ consolewrite(DllStructGetData($tagMonitorinfo,1,1)&@crlf) ;cbSitze
;~ for $i=1 to 4 ;rcMonitor
;~ consolewrite(DllStructGetData($tagMonitorinfo,2,$i)&@crlf)
;~ next
;~ for $i=1 to 4 ;rcWork
;~ consolewrite(DllStructGetData($tagMonitorinfo,3,$i)&@crlf)
;~ next
;~ consolewrite(DllStructGetData($tagMonitorinfo,4,1)&@crlf) ;dwFlags sollte die nummer des zzt aktiven monitors seinToolTip($hScreen[0]&" "&DllStructGetData($tagMonitorinfo,4,1))
[/autoit][autoit][/autoit][autoit]
WEndFunc End()
[/autoit]
Exit
EndFunc ;==>End/edit/ dwflags sind die Attribute des zzt aktiven Monitors, s. meinen Link einen Post drüber
-
-
Hi,
Antworten erstellen funktioniert bei mir, aber im Editor fehlt die Leiste mit den Buttons der Schriftattribute, Tags, Links usw. Ist das bei euch auch so? -
Hallo,
zum Thema Regexp und Anfänger:
Ja, man sollte die Mächtigkeit von Regexp erwähnen, aber gerade ein Anfänger hat m.E. schon genug andere Probleme :), da sollte man ihn nicht noch damit "erschlagen". Einfachste Stringbefehle erfüllen meistens die Aufgabe genauso, und haben den Vorteil, auch später noch "lesbar" und auch nachvollziehbar zu sein.ZitatBitte nicht nur den Code, für eine Erklärung zum nachvollziehen wäre ich sehr dankbar.
wzbw, ein Tutorial zum Thema gibts hier https://autoit.de/index.php?page…9356#post149356
@topic
ZitatIch erstelle ein Array aus einer Exceltabelle
das einfachste wäre, direkt hier anzusetzen. Und zwar nicht die gesamte Tabelle einzulesen, sondern nur die Spalte mit "Name, Vorname". Denn ich wäre sehr gespannt auf den Regex, der folgende Namen richtig filtert:[spoiler]
[autoit]$aArray[0] = 'chef'
[/autoit]
$aArray[1] = 'Nachname, Vorname'
$aArray[2] = 0098300
$aArray[3] = 'test'
$aArray[4] = 'Mueller, Manfred'
$aArray[5] = '23000'
$aArray[6] = 'Abteilung Finanz, Personal'
$aArray[7] = 'Abteilung Produktion, Kontrolle'
$aArray[8] = ''
$aArray[9] = 'Meyer, Klaus Dieter'
$aArray[10] = 'Müller-Lüdenscheid,Klaus Dieter' ;kein leerzeichen nach dem Komma
$aArray[11] = 'Dr. Klöbner, Hans Herman'
$aArray[12] = 'Abtielung Produktion, Kontrolle' ;Buchstabendreher[spoiler]
-
Glücklichen Herzwunsch natürlich auch von mir!
-
@lukiono,
wie wärs denn mal mit einer genauen Beschreibung deiner Aufgabe incl. Umgebungsbedingungen? Ich kann mir nicht vorstellen, daß deine Chefin in dein Buro kommt, "Ich hätte gerne OCR!" sagt, und dann wieder verschwindet....Auch Scanner kann man per AutoIt ansteuern, bzw die gemachten Scans bearbeiten. Möglich ist vieles. Mit AutoIt machbar ist auch vieles. Und es ist nicht gesagt, "Dass es lange gehen würde"?
-
Hi,
[autoit]
die Zeilen mit den "Zufallszahlen" kann man folgendermassen zusammenfassen:;~ $Random = Random(1, 2, 1)
[/autoit]
;~ If $Random = 1 Then
;~ $ParticlesWay[$i][1] = -Random(1, 100, 1) / 50
;~ Else
;~ $ParticlesWay[$i][1] = Random(1, 100, 1) / 50
;~ EndIf
$ParticlesWay[$i][1] = (1-2*Random(0, 1, 1))*Random(1, 100, 1) / 50 ;erste Klammer erzeugt +1 oder -1Zitatalso die erste explosion kommt und nach na halben sekunde explodieren die und daraus kommen dan noch mehr partikel
dann noch Schwerkraft dazu und statt rechteckiger Begrenzung einen Kreis und das Feuerwerk wäre halb geschafft^^
-
Ich vermute du meinst den "Stereomix"
Bei Lautstärke, Optionen, Eigenschaften im Mixer dein INPUT anwählen, dort "Stereomix" anhaken und bei den erweiterten Eigenschaften den "Ton aus"-Haken beim Stereomix entfernen.
Das führt dazu, daß z.B. die abgespielte Musik in das Signal des Mikrofons gemixt wird. Dein Gegenüber hört nun deine Stimme und gleichzeitig die Musik. Allerdings ist die Übertragungsqualität (je nach Codec) vom "Telefon" doch sehr bescheiden, aber um jemanden während des Telefonats eine Sounddatei vorzuspielen ist das OK. -
Zitat von Jonathan
Was geht in deinem Leben? das haste doch 100%ig alles Extra auf dienen Desktop verschoben
...hehe, mein(e) Desktop(s) sehen genauso "chaotisch" aus, das ist aber nur auf den ersten Blick so, da ich die ca 20-30 Programme bzw Dateien, die ich so gut wie jeden Tag verwende, natürlich auf den Desktop lege. Genau DAZU ist der Desktop nämlich da, um schnellst möglich mit einem Tastendruck bzw mit einem Mausklick auf Daten zugreifen zu können. Wenn ich mir schöne Bilder (ohne Icons^^) angucken möchte, dann häng ich mir ein Poster auf oder starte ne Diashow......aber so setzt jeder andere Prioritäten
Was mir aber sofort auffällt, man erkennt eigentlich am Desktop schon auf Anhieb, wer seinen Rechner zum "ernsthaften" Arbeiten benutzt, gehts euch auch so? -
es wäre wesentlich schwerer, wenn nicht
Gast1
Gast2
Gast3
direkt untereinander stehen würden, sondern diese Reihenfolge zufällig wäre!
Ansonsten muss man sich nur die 3 Bestellungen anschauen um diese den Gästen zuzuordnen -
Seeehr cremig!
[autoit]
Habe als alter Towerdefenser folgende Zeile geändert, um den Schwierigkeitsgrad etwas hochzusetzenGlobal $turmnorm[3][3]=[[2,3,800],[4,2,500],[5,1,200]] ;range,power,load
[/autoit] -
Wieso gerade dll-injektion? Es gibt haufenweise Möglichkeiten, eine ausführbare Datei abzuändern. In jedem Fall wird dazu entweder die ausführbare Datei gepatcht, oder nachträglich (im laufenden Programm), im Speicher eine oder mehrere Sprungadressen "umgebogen". Auf was bzw wohin die Sprungadressen zeigen, ist schnurz. Also müsste man "nur" Prüfsummen ermitteln, die den Dateiinhalt bzw den Speicherinhalt testen und gut wärs, sämtliche Virenscanner auf dem Markt wären obsolet (stellt euch vor, ein Milliardenmarkt wäre plötzlich völlig überflüssig!).....WENN nicht M$ in seiner grandiosen Architektur eines Betriebssystems erlauben würde, auch SYSTEMDATEIEN beliebig abzuändern. Und genau darin liegt das Problem.
Die eigentliche Datei kann absolut und völlig "sauber" sein, aber nahezu jedes Programm greift auf Funktionen des Windows-API zu, die wiederum irgendwo in irgendeiner Datei (z.B. DLL) tief vergraben in irgendeinem Systemordner liegen. Und da diese Dateien (habe ich schon die grandiose Architektur dieses Betriebssystems erwähnt?) auf einfachstem Wege änderbar/austauschbar sind, ist jede Diskussion bezüglich "Sicherheit" auf aktuellen Computern hinfällig.....
Wer sich für diese Materie im Zusammenhang mit AutoIt interessiert, dem empfehle ich eine Suche nach "Subrogation" im engl. Forum.