Beiträge von Andy
-
-
Zitat von autoiter
wenn du dir deinen Beitrag nochmal langsam durchliest, merkst du sicher, dass er ziemlich schräg ist und eigentlich gar keinen Sinn macht. Aber ich denke, deinen Punkt habe ich schon verstanden: Nur Änderungen umsetzen, wenn sie einen wirklichen Nutzen haben.
Naja, ich bin mal gespannt was passiert wenn du im Arbeitsleben angekommen bist und jemand von dir Änderungen verlangt, die KEINEN wirklichen Nutzen haben, und deren Auswirkungen du garnicht abschätzen kannst, dafür aber die Verantwortung übernehmen sollst! Mit dem Hinweis, dass du dies bitteschön neben deiner eigentlichen Arbeit auch noch machst.
Dass du das dann auch "schräg" findest, darauf würde ich jetzt sogar wetten.
-
Ich habe beruflich sehr viel mit Optimierungen und Verbesseungen in der Ablauforganisation und Produktion zu tun. Da gibt´s eine einfache Regel, die auch von jedem verstanden werden kann:" Wenn´s nix bringt, lass es!"
Hier aufs Forum übertragen heisst das nichts anderes, als dass jeder für sich entscheiden muss, ob es eine OBJEKTIV MESSBARE Verbesserung gibt, wenn ein wie auch immer Punktesystem eingeführt wird!
Jetzt sagen die meisten Befürworter:" Ja aber es ist auch keine Verschlechterung!"
Und genau DARUM gehts, wenn das Punktesystem uns Forianern keine Vorteile bringt, dann sollte man es nicht einführen, nur weil einige davon keine Nachteile haben
-
Mir stellt sich immer noch die Frage nach der Sinnhaftigkeit eines wie auch immer genannten Punktevergabesystems, wenn ich diese Punkte nicht in eine Suche miteinbeziehen kann.
Schlimmer noch empfinde ich die "beste Antwort", katastrophaler Weise noch bestimmt vom FRAGENDEN, das ist idR. im gesamten Thread derjenige, der am allerwenigsten Ahnung vom Thema hat!
Es wird offensichtlich davon ausgegangen, dass der Fragende die "objektiv" beste Antwort bewertet, was mal definitiv nicht so ist! Mit der "besten Antwort" wird suggeriert, dass diese Antwort die beste/einfachste Lösung für das Problem beschreibt, Wenn es gleichwertige oder "bessere" Antworten im Thread gibt (aus der Sicht des Antwortenden), wie hoch ist die Wahrscheinlichkeit, dass dieser bei den nächsten Fragen eine Antwort geben wird, wenn SEINE Lösungen IMMER übergangen werden (mimimimimi...) ?Mit dem jetzigen System "Gleicher unter Gleichen" kann ich gut leben, wenn aber meine Antworten permanent "nicht gewürdigt" werden, dann hör ich eben auf zu antworten
( mimimimimi...^^ ) -
Dynamisches reservieren wurde von Make Grafik wie hier beschrieben ( <- da steht ein link!) schon probiert. Leider erfolglos!
[autoit]
Den RAM in der DLL zu reservieren und von dort aus zu verwenden/benutzen ist ja nicht das Problem, sondern diesen Speicherbereich ANDEREN Programmen zur Verfügung zu stellen.
Das geht auch, über den auch oben von mir schon demonstrierten Einsatz von_WinAPI_ReadProcessMemory()
[/autoit]
Aber wenn man das macht, braucht man das ganze DLL-Gedöns nicht^^ -
Ich habe mich noch nie von "Likes" oder ähnlichem dazu hinreißen lassen, einen Thread nicht komplett zu lesen wenn mich das Thema interessiert und gute Antworten bzw. eine produktive und interessante Diskussion stattfindet.
Genausowenig konnten mich bis jetzt "Likes" dazu animieren, nicht innerhalb von 5 Sekunden einen Thread wegzuklicken, wenn ich sehe, dass für mich keine passenden Antworten vorhanden sind.
Wenn "Likes" ein Teil des Google-Index würden, wäre diese Suchmaschine in 4 Wochen nicht mehr existent!
Die Aussagekraft von "Likes" geht imho gegen null. Das ist äquivalent zu Hotelbewertungen und "Sternchen" bei bsw. ebay-Verkäufern ( und Amazon, wenn man will).
Wenn ich eine Tendenz suche, bleibt mir sowieso nichts anderes übrig, als Bewertungen/Beiträge zu lesen und anhand des Schreibstils zu erraten, ob da jemand ehrlich seine Meinung sagt und/oder zudem noch Ahnung hat!Der Umkehrschluß wäre für mich, genau dieses System aufzugeben und "Likes" hinterherzurennen. Viele "Likes" entsprechen viel Zustimmung! D.h., im Prinzip blende ich die weniger gelikten Beiträge aus und renne der Masse hinterher.
"Um ein tadelloses Mitglied einer Schafherde sein zu können, muß man vor allem ein Schaf sein." Albert Einstein -
jetzt wollen wir Anwendungen sehen

-
Zitat
Nur noch eine Frage diesbezüglich: Steht das "K" für 1000 oder 1024?
Na, wenn ich 1000 Bytes reserviere, dann steht das k wohl für 1000
ZitatWelche größe (bit) bzw. welcher Type ist die von dir angelegte Integer Variable?
Wenn man sowohl 64bit als auch 32Bit-Scripte schreibt, welche mit DLLCALL() oder Structs usw. arbeitet, sollte man die in der Hilfe zu DllCall() beschriebenen Datentypen nutzen, welche ihre Größe automatisch an die Bitness anpassen
Zitat von AutoIt Hilfe
INT_PTR, LONG_PTR, LRESULT, LPARAM
an integer big enough to hold a pointer when running on x86 or x64 versions
of AutoIt.UINT_PTR, ULONG_PTR, DWORD_PTR, WPARAM
an unsigned integer big enough to hold a pointer when running on x86 or x64
versions of AutoIt.
Ansonsten ist ein INT 32 Bit breit. Im AutoItscript ist das egal, wichtig wirds bei der Übertragung der Daten an eine 64-Bit-Dll bzw. ein 64-Bit-Assemblerprog im Speicher. (AssembleIt und Assembleit2 arbeiten btw. nur mit der 32-Bit-Version, man kann zwar 64Bit-Programme erstellen, muss aber wie im n-Body-Thread gezeigt, per Zwischenschritt mit 32-Bit-Assembleit im 32Bit-Modus von AutoIt den 64Bit-Code assemblieren, und danach in den 64-Bit-Modus von AutoIt umschalten um den 64-Bitcode auch nutzen zu können) -
64-Bit dll
Spoiler anzeigen
Code
Alles anzeigenformat PE64 GUI 4.0 DLL entry DllMain include 'win64a.inc' ;-------------------------------------------------------------------- section '.text' code readable executable proc GetPointer64 mov rax,_mem ret endp proc DllMain hinstDLL, fdwReason, lpvReserved mov eax, TRUE ret endp ;-------------------------------------------------------------------- section '.idata' import data readable writeable library\ kernel, 'KERNEL32.DLL',\ user, 'USER32.DLL' ;-------------------------------------------------------------------- section '.data' data readable writeable shareable _mem db 10000 dup 0 ;10kbyte Speicher reservieren ;-------------------------------------------------------------------- section '.edata' export data readable export 'sharedmem64.dll',\ GetPointer64, 'GetPointer64' ;-------------------------------------------------------------------- data fixups end dataund Script dazu^^
Spoiler anzeigen
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_Usex64=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****;#AutoIt3Wrapper_UseUpx=n
[/autoit] [autoit][/autoit] [autoit]
;#AutoIt3Wrapper_usex64=n$x = Random(1, @DesktopWidth - 500) ;zufällige Position der GUI
[/autoit] [autoit][/autoit] [autoit]
$y = Random(1, @DesktopHeight - 150)$gui = GUICreate("Shared Mem Test, bitte Programm mehrfach starten!", 500, 150, $x, $y);GUI erstellen
[/autoit] [autoit][/autoit] [autoit]
$label = GUICtrlCreateLabel("", 20, 20, 100, 30) ;Label
$button = GUICtrlCreateButton("Reset/Sync", 20, 100);Button
GUISetState() ;GUI aktivieren$dll = DllOpen("sharedmem64.dll") ;dll laden
[/autoit] [autoit][/autoit] [autoit]
$ptr = DllCall($dll, "UINT_PTR", "GetPointer64") ;den Pointer zum shared memory zurückgeben$struct = DllStructCreate("char[500];int", $ptr[0]);Struct an dieser Speicherposition erstellen, string und reset-flag
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($struct, 1, "AutoIt") ;Daten schreiben
$i = 0 ;zähler, welcher in allen GUI´s GLEICHZEITIG resettet wird$t = TimerInit()
[/autoit] [autoit][/autoit] [autoit][/autoit]
While 1 ;endlosschleife
$msg = GUIGetMsg() ;event?
If $msg = -3 Then ExitLoop ;wenn GUI geschlossen, dann ende
If $msg = $button Then ;wenn button, dann resetten
DllStructSetData($struct, 2, 1) ;reset-flag setzen
EndIf
If TimerDiff($t) > 100 Then ;alle 100 Millisekunden die Structinhalte anzeigen
$t = TimerInit() ;Timer starten
If DllStructGetData($struct, 2) = 1 Then ;wenn in irgendeiner GUI der Resetbutton gedrückt wurde
$i = 0 ;zähler nullen
GUICtrlSetData($label, DllStructGetData($struct, 1) & " " & DllStructGetData($struct, 2) & " " & $i);Structinhalte anzeigen
Sleep(1000) ; reset-flag zeigen
DllStructSetData($struct, 2, 0) ;reset-flag zurücksetzen
EndIf
$i = $i + 1 ;zahler erhöhen
GUICtrlSetData($label, DllStructGetData($struct, 1) & " " & DllStructGetData($struct, 2) & " " & $i);Structinhalte anzeigen
EndIf
WEndSchnuffel
schau mal nach, was dd bedeutet
um bytes zu reservieren, _mem db 10000 dup 0 ;10 Kb Speicher
um words zu reservieren, _mem dw 10000 dup 0 ;20 Kb Speicher
um dwords zu reservieren, _mem dd 10000 dup 0 ;40 Kb Speicher
um quadwords zu reservieren, _mem dq 10000 dup 0 ;80 Kb Speicher -
@Homer j.S.,
zu 2, das war ein kurzfristiger "Fehler" von mir, da bei mir der Virenscanner gesponnen hat, wenn ich innerhalb der DLL mehr als 6k Speicher reserviert habe.
Ursprünglich stand dort _mem dd 10000 dup 0 ;10 Kb Speicher
Jetzt alles klar?
zu 1, habe mit FASM noch keine 64Bit-DLL assembliert, werde mich mal dransetzen.
-
ein einfaches
[autoit]int()
[/autoit]tuts auch
-
@MG, hast du virtualalloc mit MEM_COMMIT | MEM_RESERVE mal getestet? WENN ich so Speicher reserviere, hau ich als protect-Parameter auch gleich PAGE_EXECUTE_READWRITE rein

Schnuffel bin schon auf Anwendungen gespannt!
-
GENAU SO ähnlich hatte ich mir das gedacht.
Zitat von OscarDie Schaltung sieht schonmal sehr falsch aus!
das ist sehr diplomatisch ausgedrückt^^
Mal abgesehen von der Matrixschaltung der Fernbedienung führst du, je nachdem welcher Ausgang des PI geschaltet ist, völlig willkürliche Spannungsabfälle über den Transistoren herbei.
Wie schon in meinem ersten Posting mit der Rechnerei angesprochen, solltest du dir sowohl einen Widerstand an der Basis (begrenzt den Basisstrom auf 2 mA ) einbauen, als auch einen am Kollektor, über den du DEFINIERT die Spannung zum Schalten der Fernbedienung abgreifst (wie auch immer dort geschaltet wird).Uber die Widerstände und die Spannungen weisst du auch, wo welche Ströme fließen.
Zitat von OscarBevor Du weiter "experimentierst" und die Transistoren damit schrottest,
EIN Gutes hat es, so wissen wir jedenfalls, dass die Ausgänge des PI einiges aushalten

-
Freaky,
das kommt davon, wenn man nicht verstanden hat, um was es geht!
Wenn du ein einziges Mal XOR-Ver/Entschlüsselung mit Papier und Bleistift für zwei oder drei Buchstaben gemacht hättest, wärest du selbst drauf gekommen!Ziel=XOR(Quelle,Schlüssel) ;verschlüsselt Quelle mit Schlüssel
Quelle=XOR(Ziel, Schlüssel) ;entschlüsseln mit Schlüssel
Schlüssel=XOR(Quelle,Ziel) ;wenn man den Schlüssel vergessen hat, aber Quelle und Ziel kennt
Zitat von SchnitzelDeine Logik ist einfach falsch.
oder so...
Zitat von SchnitzelDu kannst mit verschlüsselten Werten nicht genauso rechnen wie mit unverschlüsselten.
Doch, kann man, man sollte aber wissen was man da tut und entsprechend weiterrechnen, bzw. "richtig" zurückrechnen.
Wirklich sicher ist XOR nur mit zufälligem Einmal-Schlüssel in der Größe der zu verschlüsselnden Nachricht. Da muss man sich etwas einfallen lassen, wenn man kürzere Schlüssel verwenden will.
Ich selbst rotiere gerne Bits, das geht schnell, und man kann zur Not auch kürzere Schlüssel verwenden. Wenn man je 128 Bit des Schlüssels am Stück rotiert, und diese Rotation abhängig von Teilen des Schlüssels macht, kann man den Schlüssel auf 1/16 kürzen (im Prinzip ist das nix anderes als kurze Schlüssel mit sich selbst zu "salzen"). -
Also nochmal für Blöde wie mich...
Du willst die Codes
Zitat von AlinaNur später auf
Klebeetiketten ausdrucken und dann nutzen.WOZU willst du die Codes dann als Bild speichern? Druck doch die Codes direkt auf das Klebeetikett, so mache ich das doch auch, Hunderte jeden Tag. Es gibt keinerlei Grund, dazu ein "Bild" zu erstellen?!
Wenn du "Alina" auf ein Klebeetikett drucken willst, erstellst du dann ein "Bild" mit Inhalt "Alina" und speicherst es?
-
Schnuffel, Einfach den Code in FASMW.exe (der Editor) laden und Ctrl-F9 (Compile) drücken, dann ist die DLL erstellt.
Dynamisch den Speicherbereich zu erstellen geht auch, dazu ruft man einfach ein MemAlloc() auf
Aber das könnte man auch direkt aus dem AutoItcode machen, somit wäre das ganze witzlos.
Ich würde einfach einige DLL´s unterschiedlicher Größe erstellen und mit eigenen Namen versehen.
MemShare_1kb.dll
MemShare_100kb.dll
MemShare_1Mb.dll
MemShare_100Mb.dll
usw.
Da die reservierte Speichergröße heutzutage kein Thema sein sollte, nimmt man die DLL, welche für das Vorhaben reichlich Platz bietet.
Selbst wenn man in der Anwendung nur 10% des Speicherplatzes in der DLL benötigt....who cares
@MG, sollte so schwer nicht sein, der eigentliche DLL-Code bleibt ja konstant, nur die Größe der Variablen im Datasegment ändert sich. Und Nullen reinpacken sollte so schwer ja nicht sein.
-
Hi,
also wenn ich das jetzt richtig verstehe, benötigst du für XBMC nur eine Ordnerstruktur mit den entsprechenden Dateinamen?Du hast eine Datei mit Inhalt
Monk/1/4/Mr Monk gegen die Qualle
Monk/1/5/Mr Monk auf dem Rummelplatz
Monk/2/1/Mr Monk geht wieder zur Schule
Monk/2/2/Mr Monk faehrt nach Mexiko
Also Verzeichnis/Season/Episode/Nameund benötigst
-Verzeichnisname:Monk- -Unterverzeichnis: Season 1
- -Datei: Monk-S01-E04-Mr Monk gegen die Qualle.mp4
-Datei: Monk-S01-E05-Mr Monk auf dem Rummelplatz.mp4
- -Datei: Monk-S01-E04-Mr Monk gegen die Qualle.mp4
- -Unterverzeichnis: Season 2
- -Datei: Monk-S02-E01-Mr Monk geht wieder zur Schule.mp4
-Datei: Monk-S02-E02-Mr Monk faehrt nach Mexiko.mp4
- -Datei: Monk-S02-E01-Mr Monk geht wieder zur Schule.mp4
Wenn du Zugriff auf deine mp4 Dateien hast, verstehe ich das jetzt so, dass du nichts weiter machen musst als die Ordner zu erstellen und die Dateinamen zu ändern?
- -Unterverzeichnis: Season 1
-
Hi,
dieses Beispiel zeigt wieder anschaulich, dass es nicht für alle programmiertechnischen Probleme die passende UDF gibt.
Masterciw,
du warst schon auf dem richtigen Dampfer, deine Suchen haben auch die richtigen Ergebnisse gefunden!
Allerdings ist die Verknüpfung eher suboptimal.
Du müßtest, um per _arrayfindall() richtig anwenden zu können, die gefundenen Ergebnisse im durchsuchten Array immer in ein neues Array kopieren und dieses dann wiederum durchsuchen.
Dann würdest du letztendlich nur die Zeilen mit dem passenden Ergebnissen (Staffel & Folge) bekommen.
Partial-Arraykopierereien sind aber mit den Standard-AutoItfunktionen nicht abgedeckt.Daher würde ich auch, wie bereits von blubbstar gezeigt, direkt das Array durchlaufen und die Ergebnisse filtern.
Weiterhin stellt sich mir die Frage, ob du überhaupt Arrays brauchst um zum Ergebnis zu kommen. Wie müssen die Dateien aussehen, welche du für XBMC benötigst?
-
Naja, wieder mal ein Beispiel dafür, dass "neue" User sich, anstatt sich mit der Materie an sich zu beschäftigen und dazu passende Fragen zu stellen sich ( omfg ) Youtube-Videos ansehen um sich von dort nicht funktionierenden Code zu copypasten. Wieso fragen die bei nichtfunktionieren nicht einfach den Video-Ersteller? Bei dem funktioniert es doch offensichtlich!
Das hat natürlich einen Grund.
Botten?!
Der Bippes ist kurz und der programmiertechnische Skill entsprechend.Anstatt mal die Eier in der Hose zu haben und hier die "richtigen" Fragen zu stellen und dafür die einzig passende Antwort zu erhalten (Hinweis aufs benachbarte Botterforum) wird wieder mal der User alpines gefüttert, welcher dankbar anspringt.
Übrigens sind User-relevante Informationen incl. den bisherigen Forenbeiträgen nur zwei Mausklicks entfernt...Zitat von MGJa, das problem hatte ich auch sonst mit der funktion aus der udf immer.
Zitathmm komisch, obwohl soviele die UDF nutzen..
"aha, "soviele" nutzen also diese Funktion...Wie kommst du auf dieses schmale Brett?Zitat von MGDaher hab ich mir selber ne funktion geschrieben,
So gehört sich das! Dieser User hat imho sämtliche Berechtigung, auch in diesem Forum zum Thema die passenden Fragen zu SEINEM selbst erstellten Code zu stellen! Was er letztendlich damit macht ist sein Bier. Es bleibt einem auch überlassen, per PN zu helfen.

SSlayer93,
es gibt ein Forum, welches genau auf deine Belange zugeschnitten ist. Dort wirst du sicherlich Hilfe bekommen. Das programmiertechnische Niveau der meisten Fragesteller dort ist in etwa deinem angepasst, auch die (wenigen) sehr guten Programmierer dort sind mit deiner Problemstellung wesentlich intensiver vertraut!
Wundert mich, dass dir noch niemand diese Info gegeben hat
-
Hi Alina,
obwohl ich täglich Barcode/Scancode-Anwendungen programmiere und reichlich Dokumente mit Barcodes erstellt werden, habe ich keinen einzigen "Barcode" als Bild gespeichert. Kein Mensch braucht einen einzelnen Barcode als Bild auf einem Datenträger! Barcodes werden erstellt um gescannt zu werden, als Datei sind sie völlig nutzlos. Zudem ist jpg infolge Kompressionsartefakte das schlechteste Dateiformat, die extrahierten Bilder werden von Scannern oft nicht, oder noch viel schlimmer, fehlerhaft gelesen!Gebraucht wird der Barcode doch in einer Anwendung. Also ein Ausdruck, welcher dann später gescannt werden kann.
In der Anwendung, die diesen Barcode erstellt, solltest du ansetzen.
Beschreibe doch mal das Szenario, was du mit dem Barcode anstellen möchtest.