[autoit]
$ret = DllCall($hDLL, "wstr", "ImageShackPost", "WSTR", $File, "WSTR", "default")
[/autoit]gibt den link zurück
$ret = DllCall($hDLL, "wstr", "ImageShackPost", "WSTR", $File, "WSTR", "default")
[/autoit]gibt den link zurück
Wie Prog@ndy schon angesprochen hat, versucht MS zunehmend Direct2D zu pushen. Sicherlich führt da in Zukunft kein Weg vorbei.
"Eigene Engine schreiben".....feine Sache, ganz ehrlich, spar dir die Zeit!
Was macht eine Engine aus? Man versucht, mit "einfachen" Befehlen relativ komplexe Anforderungen auszuführen. Je einfacher, desto besser! Analog zu Hochsprachen/Assembler.
"Nur mal so" eine Engine schreiben ohne ein konkretes "Problem" ist schwierig. Wenn du ein grösseres Projekt in 3D planst, bekommt man natürlich bei OpenGl/D3D bei Problemen in den gängigen Foren das meiste Feedback!
Übrigens ein toller Einblick bietet die DEMO-Szene. Da agieren absolute Grafikspezialisten, die auch in der Lage sind die Vor/Nachteile einer "Sprache"/Engine abzuwägen und zu beurteilen. OpenCl ist sicher mehr als einen Blick wert!
An C++ führt m.E. sowieso kein Weg vorbei. Assembler hat nur noch beim optimieren eine Daseinsberechtigung. Lernen würde ich das nur im Zusammenhang mit Debuggen von C++
Hmmm, WAS ist bei GDI+ langsam? Das gesamte Windows setzt auf GDI(+), ich finde daher, Oberflächen/Fensterfunktionen usw sind schnell genug!
Je nach Treiber/Grafikkarte werden 2D-Funktionen aus dem GDI auch beschleunigt, kommt ganz darauf an, was man machen möchte!
DirectX setzt bei 2D generell auf die Leistungsfähigkeit der Graka, viel hilft viel. Wenn allerdings z.B. ein Netbook bestimmte Funktionen nicht in Hardware anbietet, werden diese per Software emuliert...dann bekommt der Begriff "langsam" ganz neue Dimensionen. Im 2D-Bereich wird idR eher weniger durch die Graka beschleunigt.
Einige GDI-API-Funktionen (wie z.B. SetPixel() ) sind nicht das schnellste, aber wer setzt das ein? Ok, für z.B. ein "Apfelmännchen" mag das angehen einzelne Pixel zu setzen, aber bei Spielen wird z.B. mit Sprites gearbeitet, und da "setzt" kaum jemand einzelne Pixel zu einem Bild zusammen! Auch beim Apfelmännchen ist es WESENTLICH schneller, die Pixel direkt im Backbuffer zu setzen und diesen dann komplett in die GUI zu "blitten".
Das was in AutoIt WIRKLICH Zeit kostet sind die Berechnungen bzw lange und rechenintensive "inner Loops". Der "Tunnelflug" im Assembler-Tut ist da ein schönes Beispiel. Die Darstellung, das heisst das eigentliche Projezieren in die GUI erledigt ein (immer gleich schnelles) Bitblt(). Wo man Zeit spart? In der Berechnung! Und die kann man ohne Probleme in eine C++ DLL auslagern. Die eigentliche Grafikdarstellung ist in GDI bei weitem schnell genug! (siehe UEZ´s Beispiele)
Weiterhin hilft es, ALLES was an Grafiken erscheinen soll, im direkten Zugriff (d.h. im Speicher) zu haben. Dann reicht meist entweder ein schnelles blitten oder ein MemMove().
Im 3D-Bereich ist GDI aber aufgrund des Bustransfers aus dem Hauptspeicher zur Graka einem "echten" D3D oder OpenGl hoffnungslos unterlegen.
Kapieren tu ich das ehrlich gesagt nicht^^. Mit einer WLAN-Verbindung wäre mir das klar gewesen, aber wenn du sowieso ein Kabel aus dem Keller in den 1. Stock ziehst, wieso stellst du dann nicht direkt den Router nach oben?
Zitatder AC hängt doch wenn ich es richtig mitbekommen habe über lan am router.
wohl eher nicht, denn
Zitatdass er mit der selben SSID sendet wie der Router im Keller
ansonsten hätte sich die Frage nicht gestellt....oder meintest du das Problem von nuts?
ZitatEdit: Also muss ich den Clienten am anderen Pc starten und im clientscript den Pc namen
des ClientPcs eingeben und bei mir den server starten??
Was ist an meiner verlinkten Anleitung schwer zu verstehen?
ZitatSollte die Client/Serververbindung auf dem eigenen Rechner funktionieren, dann kann man anfangen im internen Netz zu testen. Ich gehe davon aus, daß eine funktionierende Netzwerkverbindung besteht, d.h. jeder der Rechner kann den anderen im Netz "sehen" und Daten austauschen.
[autoit]
Dazu die kompilierte SERVER.EXE auf einem anderen Rechner im internen Netzwerk starten, ggf Firewall deaktivieren.
Im Rahmen des Serverfensters erscheint eine IP-Adresse, z.B. 192.168.100.105.
Diese Adresse nun im CLIENT-Script (auf dem lokalen Rechner) in Zeile 18 eintragen:Local $szIPADDRESS = "192.168.100.105"
[/autoit]und Script starten.
Sollte eine Fehlermeldung erscheinen....die Türzarge einige Male heftig mit dem Kopf, ihr wisst schon...das macht wach!
Falls keine Fehlermeldung erscheint, sondern der im Client eingegebene Text im Serverfenster erscheint, gehts weiter, Test im Internet.
ZitatKann man das so machen?
So sollte man es machen
Dem Client ist es wurscht, ob er direkt mit dem Router oder mit dem Accesspoint kommuniziert. Idealerweise ist es so, dass du, wenn du mit deinem Laptop vom 2. Stock in den Keller gehst, irgendwo auf der Treppe zwischen Router und Accesspoint auf den Router switchest. Ansonsten wäre der "Vorteil" des Accesspoints fragwürdig.
Ich sehe das ähnlich wie BugFix. Sämtliche Rückversicherer weltweit wären sofort pleite, sollte es in Mitteleuropa zu einem ernsten Reaktorunfall/Endlagerstörfall kommen.
Mal von den betroffenen Staatshaushalten ganz zu schweigen! Als Problem kommt weiterhin dazu, dass es mittlerweile viel zu viel "virtuelles" Geld gibt, dem keine Ware oder Dienstleistung gegenübersteht (Stichwort Börse). Versuch mal im
Ernstfall Geld zu bekommen, welches nur in Form von Bits und Bytes existiert, und du hast den vergangenen Bankencrash nachvollzogen (und den nächsten schon erklärt). Zur Zeit wird kein Cent in Rücklagen/Rückstellungen "investiert"! Wozu auch? Kohle die einem nicht selbst gehört wird immer am einfachsten und schnellsten ausgegeben. Schon lange, wenn man sich für die Ausgaben nicht rechtfertigen muss.
Hätte die Bundes-Angie vor 2 Jahren mal 50000 Bänker und Opelaner nach Hause geschickt, anstatt MultiMilliarden in deren Hintern zu blasen, würde ich dir recht geben. Es wäre ein Signal gewesen, das es so nicht weitergehen KANN! Das Signal wäre angekommen, da kann man sicher sein, leider wurde die Chance verpasst. Die Industrie bekommt Rückendeckung aus Berlin, wozu Rücklagen bilden wenn sich Papa Staat selbst mit 1,7 Billionen verschuldet?
/EDIT/ Was kostet(e) eigentlich insgesamt das Stopfen eines einzigen Bohrlochs vor der Küste der USA incl aller folgenden Ansprüche? Das ist ein Pups gegenüber einem Störfall in einem Endlager...
Zitatrechtzeitig erkannt werden das der Schotter weg ist und der Zug entgleist. Dadurch kann dann ein Leck in den Containern entstehen
naja, sooo schlimm ist es auch nicht^^. Die Castoren sind schon recht stabil, Testszenario u.a.
Zitat von Wikipedia
- Abwurf eines maßstabsgetreuen Behälters von einem Bundeswehrhubschrauber aus 800 m Höhe,
direkter Anprall eines Personenzuges mit 130 km/h an die Längsseite eines Behälters,
Beschuss eines Behälters mit einer 1000 kg schweren Nachbildung einer Flugzeugturbinenwelle mit 292 m/s (1050 km/h).
Ein ehemaliger Studienkollege arbeitete bei der Bundesanstalt für Materialforschung und -prüfung. Die haben mal eine Diesellok mit 160km/h in einen Castor rasen lassen. Der Behälter wurde zwar etwas verbogen, allerdings trat kein Leck auf und auch keine Strahlung aus! Die Funktion der Lok war danach wesentlich mehr eingeschränkt...
Was allerdings niemanden zu stören scheint, was passiert, wenn durch Meteoriteneinschlag/Erdbeben/Vulkanausbruch uvm wirklich mal eine Endlagerstätte "durchgerührt" wird? Kommts dann auf das "bisschen" Strahlung nicht mehr an? Ich stell mir das gerade vor, die "oberen 10000" überleben im Bunker und bekommen dann gesagt, dass es "leider" ein Endlager erwischt hat und für die nächsten 50000 Jahre mit radioaktivem Niederschlag zu rechnen ist. Dumm gelaufen!
ZitatKultur und Bildung wird gestrichen - Endlagerung muß bezahlt werden.
Nicht nur das! Jeder kleine Pupser ist für den Mist den er baut verantwortlich und wird zu Rechenschaft gezogen. Ab einem gewissen "Status" in der Gesellschaft ist man plötzlich NICHT mehr verantwortlich und schon garnicht mit seinem Privatvermögen haftbar. Wenn jeder der "Entscheidungsträger" in der Politik ab morgen mit seinem Privatvermögen für seine Handlungen haftbar gemacht werden würde, jede Wette, ab Bürgermeister aufwärts gäbe es ab übermorgen reichlichst freie Arbeitsstellen. Von den 622 Jungs und Mädels im Bundestag wären nur noch die Handvoll in ihrem Job, die auch jetzt schon die Arbeit machen...übrigens völlig unabhängig von Parteibüchern, die wären damit nämlich plötzlich ebenfalls völlig nutzlos!
ZitatOb, fals man Winräder/Turbinen etc. massenhaft anlegt, genug Strom da ist, bezweifle ich noch stark.
um das nochmal klarzustellen, es ist NICHT das Problem, reichlich regenerativ Energie zu erzeugen, sondern diese Energie (in welcher Form auch immer) in Überschusszeiten für eine spätere Verwendung zu speichern!
Ein Wasserwerk hat einen Puffer, damit die Spitzenlast um viertel nach acht am Abend nach der Tagesschau, wenn alle vor dem Film nochmal schnell auf die Toilette gehen, aufgefangen werden kann. Für "Strom" gibt es diesen Puffer nicht!
"Strom" zu speichern ist m.E. unwirtschaftlich, die Primärenergie zu speichern kostet nur ca. 1/3!
Um 1 Kilowattstunde Strom zu erzeugen, braucht man idR 2,6-3mal soviel Primärenergie aus Kohle/Gas! Warum heizen dann die Norweger sogar mit Strom? Weil die ihren Strom mit Wasserkraft erzeugen. Damit kann man sowohl die Grundlast, als auch Spitzenlasten abdecken. Einer Talsperre ist es völlig schnurz, ob man 20x am Tag Wasser reinpumpt/rauslässt, eine Batterie legt nach 20 Ladezyklen am Tag schnell die Ohren an^^
Was übrigens in einem Kraftwerk passiert, wenn man PLÖTZLICH die Last (den Energie"verbrauch") abschaltet, d.h. ALLE schalten ihre Stromverbraucher aus, kann man sich deutlich machen wenn man sich vorstellt, man radelt einen sehr steilen Berg hinauf und mittendrin reisst die Kette (fährt mit dem Auto hoch und tritt mittendrin die Kupplung). Alle Turbinen (Auto=Motor) drehen hoch (Fahradfahrer tritt ins Leere) und es kann zu einem Totalschaden kommen! DAHER haben die (Grundlast)-Kraftwerksbetreiber Bauchschmerzen bei einem "Energiespartag" oder wenn wie im letzten Winter die Stromleitungen zerstört werden!
Aber warum Atomkraftgegner mit zigtausend Leuten einen Castor bremsen aber NICHTS dagegen tun, wenn in Mainz ein niegelnagelneues Kohlekraftwerk gebaut wird, dass die grösste Dreckschleuder in der Geschichte darstellt, bleibt mir ehrlich gesagt schleierhaft! Vielleicht haben die eingesehen, dass man sich nach einer anstrengenden Demonstration am besten an der XBOX entspannen kann....ohne Strom wär das echt blöd^^
[ gelöst ] Clien sendet an Server nicht übers Inet
Falls es dann noch Fragen gibt, MELDEN!
ZitatFür diese "Wärmeenergie" gibt es dann durchaus auch Speichermöglichkeiten, um die Stromversorgung über Nacht abdecken zu können.
Ja, aber das sind z.B. (Pump)-Speicherkraftwerke. Tagsüber wird bei Energieüberschuss Wasser in höher gelegene Wasserspeicher (Stauseen) gepumpt, um die potentielle Energie es bei kurzfristigem Bedarf wieder per Turbine verwerten zu können. Dafür fehlen in Deutschland die Vorraussetzungen. Wir sind kein "Wasserkraftland" wie z.B. Norwegen, die 98% ihres Strombedarfs aus Wasserkraft decken können....Lokal mag es bei uns noch den ein- oder anderen Platz für einige "kleine" Stauseen geben, aber um 20 Atomkraftwerke zu ersetzen, müsste man ein Projekt in der Größe von Itaipu stemmen, viel Spass dabei^^
Generell ist die Energiepolitik in diesem Lande etwas seltsam! Alles fährt auf "regenerative" Energien ab, aber keiner scheint zu wissen, dass man die erzeugte Energie in Form von Strom im Netz nicht speichern kann. Hat sich mal jemand gefragt, warum bei großen Windkraftanlagen manchmal die Hälfte der Windräder steht, während die anderen lustig rotieren? Die "stehenden" Anlagen sind nicht etwa kaputt, nein, sie MÜSSEN abgeschaltet werden, weil die Grundlastkraftwerke in der Umgebung schon genug Strom liefern. Und nachts? Wer braucht nachts Strom, wenn mal gerade ein bissl Wind weht?
Solaranlagen sind klasse, leider wird genau dann, wenn bei uns (im Sommer) die meiste Sonne scheint, die wenigste Energie gebraucht. Wenn ich im Winter einen kalten Hintern habe, DANN brauche ich Energie, und nicht im Sommer! Große Wärmespeicher/Wärmepumpen sind die Lösung, fragt mal beim Bauamt nach, was die zu einer Genehmigung eines 150m³ "Heisswassertanks" im Garten sagen....
Für das Ein/Mehrfamilienhaus führt m.E. kein Weg am Passivhaus vorbei, das ist klar, aber woher bekommt die Industrie/Eisenbahn/Straßenbahn KONTINUIERLICH 24/7 ihren Strom, wenn nicht von einem Grundlastkraftwerk?
Zur Zeit sind wir Stromimporteur! D.h. wenn wir Energieüberschuss haben, dann werden Anlagen (Windkraftbeispiel) heruntergefahren, und wenn Energiemangel herrscht, dann wird fleissig TEURER Strom aus dem Ausland dazugekauft....u.a. die Franzosen lachen sich kaputt, dort werden jetzt schon neue Atomkraftwerke gebaut/geplant, die WIR mit unseren Stromkosten bezahlen! Die verdienen sich dumm und dämlich daran, dass wir hier Strom "regenerativ" erzeugen!
Natürlich ist jedes Atomkraftwerk, das vom Netz genommen wird, eine gute Sache! Aber ehrlich gesagt, ist mir ein 35 Jahre altes AKW in Biblis, das ja nun noch einige Jahre laufen soll, 100x lieber, als ein neu gebautes AKW irgendwo anders auf der Welt!
Hi,
gegebenenfalls funktioniert folgendes:
Aktiviere das Fenster in dem der Text steht, drück CRTL+C für copy, starte einen Editor und füge das kopierte per CTRL+V dort ein. Das funktioniert bei einigen "seltsamen" Fenstern, bei denen man sonst nicht an den Inhalt kommt.
Wenn es klappt, einfach per AutoIt-SEND() die entsprechenden Befehle generieren und den Inhalt der Zwischenablage abfragen...
Hi,
@progandy, und die anderen "Objekt"-Spezialisten.
Würde sich die Umsetzung der Aufgabe in AutoIt-Object für einen "quasi-Anfänger" mit Interessse an dieser Technik lohnen oder ist die Latte zu hoch gelegt?
Anders gefragt, wäre die Problemstellung ein gutes Beispiel für die Verwendung von Objekten, oder würdet ihr eher in diesem Fall die "klassische" Funktionen (obwohl OO ja eigentlich nichts anderes ist) - Methode wählen?
Wenn man nicht weiss, was eine "Hex-Zahl" ist, kann man auch AutoIt die "Erkennung" überlassen. Siehe
[autoit]DEC und HEX
[/autoit]$hex = StringSplit("7z 50 6c 61 6g 73 6d 8i 61 53 77 6f 9l 72 64 9h", " ", 3) ;ziffern in array
$a = "" ;ausgabestring
For $i = 0 To UBound($hex) - 1 ;alle "Blöcke" durchlaufen
$h = Dec($hex[$i]) ;HEX-"block" in zahl umwandeln, ergibt 0 bei "ungültigem Hex-string"
If $h <> 0 Then $a &= Chr($h) ;nur wenn gültige hexadezimalzahl, dann ascii-code ausgeben
Next
MsgBox(262144, "", $a)
Spoiler nur öffnen, nachdem du selbst ein wenig probiert hast^^
Hi,
vervielfältige doch einfach den String
$_Struct = "byte[2];ushort;int"
for $i=1 to 199
$_Struct &= "byte[2];ushort;int"
next
geht natürlich auch eleganter, aber das Prinzip sollte klar werden
Hi,
ggf gibt es für Java ähnlich wie für C++ Bibliotheken für die Verwendung von SSE-Befehlen. Da man so 4 Pixel auf einmal testen kann, beschleunigt sich die Suche erheblich (ca. Faktor 3).
Aber gerade beim Testen sollte man aufpassen! Mitnichten wird "immer" von oben links nach unten rechts durchsucht! Je nachdem, wie die Bitmaps geladen werden(bzw abgespeichert sind, d.h. Bottom-up oder Top-down) wird z.B. zu Testzwecken bei einer 1000x1000 Bitmap ein Pixel an der Position 5,5 gesucht und der Programmierer ist todtraurig, wenn sein Programm vermeintlich "langsam" ist. In Wirklichkeit wurden aber (da bottom-up) 1000x995 Pixel durchsucht....
Im umgekehrten Fall gilt das natürlich auch. Man sucht ein Pixel an Positiom 995,1000 und freut sich, dass der Algorithmus sauschnell ist, aber tatsächlich wurden statt 995000 Pixel nur 5000 Pixel durchsucht.
Wer die "langsamen" API-Funktionen Getpixel/Setpixel verwendet, muss sich keine Gedanken machen, da dort "automatisch" umgerechnet wird. Unter anderem deswegen sind richtig schnelle Suchfunktionen nur mit entsprechenden Compileroptionen machbar. Oder man verwendet z.B. in AutoIt einen integrierten Assembler *husthust* und beschleunigt die PixelSuche um mehrere Faktoren....
Verwendung von AutoIt-Variablen im Assemblercode
Hi,
was ich noch garnicht vorgestellt hatte ist "mixed Code", indem man AutoItvariablen bzw auch Funktionen direkt in den Assemblercode einsetzt!
Solange einem die Geschwindigkeit von _AssembleIt() reicht, braucht man sich so nicht mal um die Übergabeparameter bzw den Stack Gedanken zu machen!
Der Aufruf des Assemblers gestaltet sich dann einfach so:
$ret=_AssembleIt("RückgabeTyp","Funktionsname_in_dem_der_Assemblercode_steht")
[/autoit]Wie man AutoIt-Variablen im Assemblercode verwendet sieht man hier:
#include <AssembleIt.au3>
#include <GDIPlus.au3>
Global $Scan, $iWidth, $iHeight ;in der assemblerfunc verwendete Variablen deklarieren
Global $ASM_VAR_pointer1, $ASM_VAR_pointer2 ;Variable, der ein Registerinhalt zugewiesen wird
Func _graustufen()
_("use32") ;sollte immer eingesetzt werden!
_("mov esi," & $Scan) ;Startadresse Bitmapdaten (Pixel)
_("mov ecx," & $iWidth * $iHeight) ;anzahl Pixel
_("mov edi,21845") ;konstante, *21845/2^16 ist ungefähr 1/3
_("_schleife:") ;so lange, bis ecx=0
_("mov edx,[esi]") ;pixel laden AARRGGBB (RR+GG+BB)/3 =farbe graustufe
_("mov al,dl") ;lowbyte (BB) vom Pixel nach lowbyte al
_("movzx bx,dh") ;highbyte (GG) vom Pixel nach lowbyte von bx (bh ist 0)
_("shr edx,8") ;RR ins dh schieben
_("add ax,bx") ;BB + GG
_("movzx bx,dh") ;highbyte (RR) vom Pixel nach lowbyte von bx (bh ist 0)
_("add ax,bx") ;und dazuzählen dx=RR+GG+BB
_("imul edi") ;*21845 *21845/2^16 ist ungefähr 1/3
_("shr eax,16") ;/2^16 in al steht nun der farbcode (grauton) für RR, GG und BB
_("movzx dx,al") ;grauton nach dl, in dh steht 0
_("shl edx,16") ;grauton nach RR, in AA steht 0!
_("mov dh,al") ;grauton nach GG
_("mov dl,al") ;grauton nach BB In edx steht nun 00alalal=grauton
_("mov [esi],edx") ;pixel schreiben
_("add esi,4") ;3x4
_("sub ecx,1") ;3 pixel pro schleifendurchgang
_("ja _schleife") ;so lange, bis ecx=0
;wesentlich schneller als _("loop _schleife") ;so lange, bis ecx=0
_("mov [" & $ASM_VAR_pointer1 & "],esi") ;Register in Variable schreiben
_("mov [" & $ASM_VAR_pointer2 & "],edx") ;Register in Variable schreiben
_("ret ")
EndFunc ;==>_graustufen
_GDIPlus_Startup()
$file = FileOpenDialog("24 oder 32 Bpp auswählen", @ScriptDir, "Bilder (*.jpg;*.bmp)", 1 + 2)
If @error Then Exit
$hBitmap = _GDIPlus_BitmapCreateFromFile($file)
Local $iWidth, $iHeight, $hBitmapData, $Scan, $Stride, $tPixelData, $pPixelStruct
$iWidth = _GDIPlus_ImageGetWidth($hBitmap)
$iHeight = _GDIPlus_ImageGetHeight($hBitmap)
$hBitmapData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $iWidth, $iHeight, BitOR($GDIP_ILMREAD, $GDIP_ILMWRITE), $GDIP_PXF32RGB)
$Scan = DllStructGetData($hBitmapData, "Scan0") ;Startadresse der Bitmapdaten
;****************struct für die AutoItVariable erstellen und pointer zuweisen************
$ASM_VAR_Struct = DllStructCreate("int Variable1;int Variable2")
$ASM_VAR_pointer1 = DllStructGetPtr($ASM_VAR_Struct, "Variable1")
$ASM_VAR_pointer2 = DllStructGetPtr($ASM_VAR_Struct, "Variable2")
;****************************************************************************************
$ret = _AssembleIt("ptr", "_graustufen")
MsgBox(0, "Inhalt Register", "Register ESI = " & DllStructGetData($ASM_VAR_Struct,"Variable1"))
MsgBox(0, "Inhalt Register", "Register EBX = " & hex(DllStructGetData($ASM_VAR_Struct,"Variable2")))
_GDIPlus_BitmapUnlockBits($hBitmap, $hBitmapData)
_GDIPlus_ImageSaveToFile($hBitmap, @ScriptDir & "\graustufen.bmp")
ShellExecute(@ScriptDir & "\graustufen.bmp")
FasmExit($Fasm) ;FASM aus dem Speicher entfernen
Leider unterstützt AutoIt keine Pointer auf die Variablen, somit muss man, wenn man Registerinhalte in eine AutoIt-Variable schreiben möchte, den Umweg über eine DllStruct() nehmen.
Das ist eine SEHR feine Methode, um Registerinhalte während der Laufzeit auszulesen. Ich hatte ja schon die Möglichkeit angesprochen, per Callback() AutoItfunktionen aus dem Assembler heraus aufzurufen!
So kann man mittels Debug-Messageboxen oder auch Consolewrites die Funktion des Assemblercodes tracen/debuggen.
Wer mag, kann natürlich auch Registerinhalte während der Laufzeit auf diese Art ändern^^
Hi,
viele habe ich noch nicht gefunden^^, z.B.
$a = 'WCHAR lfFaceName [32];'
[/autoit].Bei den Scripten, bei denen ich AlignComment angewendet hatte (und das waren nicht wenige) hatte ich keine Fehler im Code bemerkt.
Daher habe ich auch ehrlich gesagt kein grosses Problem damit. Aber eigentlich müsste die Kommentartrennung das doch jeder der gängigen Parser in den Editoren machen! Oder benutzen die eine "Universal-RegEx" und ändern nur das Trennzeichen?
In der Suche z.B. auf https://autoit.de/www.regxlib.com finden sich einige....allerdings auch nicht funktionierende....