Hallo Bugfix,
danke für deine Mühen. Ich habe mich jetzt auch zur Nutzung der CLI entschieden.
Hallo Bugfix,
danke für deine Mühen. Ich habe mich jetzt auch zur Nutzung der CLI entschieden.
leider komme ich so gar nicht weiter
ich frage mal konkreter ...
ich möchte mit der zint.dll einen DataMatrix Barcode als bmp speichern.
BugFix war schon so freundlich und hat die zint.h "übersetzt" um eine Struct zu erstellen.
Leider komme ich mit den bisherigen Versuchen nicht wirklich weiter.
beim Aufruf von:
Local $aCall = DllCall(@ScriptDir & "\zint.dll", "LONG", "ZBarcode_Encode")
ConsoleWrite(@error & @CRLF)
_ArrayDisplay($aCall)
kommt kein Fehler (@error = 0) und ein Array.
Natürlich wird die Funktion noch ohne jegliche Parameter angeschoßen.
Aber weiter schaffe ich es nicht.
Ich vermute, dass man die Funktion mit mind. einer Struct bedienen muss in der die Angaben für das "Symbol" enthalten sind wie Barcode-Typ, Text, Größe, Farbe usw.
Dependency Walker gibt mir auch nur die Funktionen :
Wenn mir jemand sagen kann, was er braucht um mir zu helfen, dann versuche ich alles um diese Informationen ran zu schaffen.
Ach ja, hier die Exit Codes aus dem Manual:
EXIT STATUS
0
Success (including when given informational options -h, --help, -e, --ecinos, -t, --types, -v, --
version).
2
Invalid option given but overridden by Zint (ZINT_WARN_INVALID_OPTION)
3
Automatic ECI inserted by Zint (ZINT_WARN_USES_ECI)
4
Symbol created not compliant with standards (ZINT_WARN_NONCOMPLIANT)
5
Input data wrong length (ZINT_ERROR_TOO_LONG)
6
Input data incorrect (ZINT_ERROR_INVALID_DATA)
7
Input check digit incorrect (ZINT_ERROR_INVALID_CHECK)
8
Incorrect option given (ZINT_ERROR_INVALID_OPTION)
9
Internal error (should not happen) (ZINT_ERROR_ENCODING_PROBLEM)
10
Error opening output file (ZINT_ERROR_FILE_ACCESS)
11
Memory allocation (malloc) failure (ZINT_ERROR_MEMORY)
12
Error writing to output file (ZINT_ERROR_FILE_WRITE)
13
Error counterpart of warning if --werror given (ZINT_ERROR_USES_ECI)
14
Error counterpart of warning if --werror given (ZINT_ERROR_NONCOMPLIANT)
hast du noch einen Tip wie ich mit der Struct dann die dll anschieße?
du warst einfach schneller
ich werde das testen
danke dir schonmal,
ich werde testen und melden
Hallo Community,
ich brauche mal eure Hilfe.
Ich möchte mittels der zint.dll (hier im download unter /tcl zu finden)
einen Data Matrix BarCode erstellen. Leider bin ich nicht so sehr mit der Erstellung einer Struct vertraut um die dll "korrekt" anzuschießen.
Im pdf Manual ab Seite 31 wird die Nutzung der API erläutzert. Wenn mir jemand grob einen Schubs geben könnte, dann kann ich mir den Rest selbst erarbeiten
Vielen Dank im voraus
Euer Schnuffel
ich hab noch eine Methode mit embedded svg-File gefunden:
vielleicht ist das ja etwas für dich
ansonsten bleibt vielleicht die gute alte Verlinkung zu einem Bild Im Inet.
Hat man dazumal verworfen als Bandbreiten und dauerhaftes Internet noch nicht Gang und Gebe waren.
Aber heute hat doch jeder überall flatrate.
Sollte also wieder in Betracht gezogen werden
da bin ich überfragt ...
die codieren die Bilder in base64 als String in den Code...
... kein Netz?
was willst du denn erreichen?
möchtest du ständig Veränderungen deiner IP-Adresse feststellen?
Oder möchtest du informiert werden, wenn du kein Netz mehr hast.
Das sind 2 völlig unterschiedliche Dinge
eine Netzwerkverbindung verliert seine IP erst nach der Lease-Time. Dann wird, wenn keine Antwort kommt vom DHCP auf APIPA umgeschaltet.
All das setzt aber eine DHCP Konfiguration voraus. Ansonsten steht die IP-Adresse auch ohne Kabel bis zum St. Nimmerleins-Tag
Also...
AdlibRegister kann nicht mit Parameter eine Funktion ansteuern. Daher ist das mit dem $sHost so nicht möglich.
Da musst du mit einer Variable außerhalb der aufzurufenden Funktion arbeiten.
ZitatAlles anzeigenFunction AdlibRegister
Every 250 ms (or time ms) the specified "function" is called--typically to check for unforeseen errors. For example, you could use adlib in a script which causes an error window to pop up unpredictably.
The adlib function should be kept simple as it is executed often and during this time the main script is paused. Also, the time parameter should be used carefully to avoid CPU load.
You can not register a function using parameters.
Several Adlib functions can be registered. Re-registering an already existing Adlib function will update it with a new time.
Eine Funktion innerhalb der selben Funktion aufzurufen ist auch eine ganz schlechte Idee, da diese Funktion ja sowieso schon jede Sekunde über AdlibRegister angesteuert wird.
Ich hab mal eine quick & dirty Lösung für dein Problem angehängt
Local $sHost= "localhost"
Local $IP, $Gateway, $nMsg
AdlibRegister('_ActiveIP', 1000)
AdlibRegister('_PrintIP', 1000)
HotKeySet("{ESC}", "_Terminate")
While Sleep(10)
WEnd
Func _ActiveIP()
Local $objAdapter
Local $objWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & $sHost & "\root\cimv2")
If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
Local $colAdapter = $objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration WHERE IPEnabled = True", "WQL", 0x30)
If Not IsObj($colAdapter) Then Return SetError(1, 0, 0)
For $objAdapter In $colAdapter
If ($objAdapter.IPAddress(0)) Then
If $objAdapter.DefaultIPGateway(0) Then
$IP = $objAdapter.IPAddress(0)
$Gateway = $objAdapter.DefaultIPGateway(0)
Return
EndIf
EndIf
Next
EndFunc ;==>_ActiveIP
Func _PrintIP()
ConsoleWrite("IP: " & $IP & @CRLF)
ConsoleWrite("Gateway: " & $Gateway & @CRLF)
EndFunc
Func _Terminate()
Exit
EndFunc ;==>_Terminate
Alles anzeigen
in der Regel ist der UPX-Packer das Problem.
Für Anwendungen, die ausschließlich im "eigenen Hause" betrieben werden, kann man ja eine Ausnahme in der AV-Soft setzen.
Ansonsten gibt es auch die Möglichkeit kommerzielle Programme bei den AV Herstellern bekannt zu machen, dann setzen die das Ding auf die Whitelist
ich denke du möchtest dich einfach der Verschlüsselung als solches einfach durch experimentieren annähern.
Aber ich denke, warum das Ei neu erfinden...
Es gibt als Ansatz eine sehr kleine Funktion von Andy, der mit einer XOR Verschlüsselung deine Ansprüche sicher leicht erfüllt.
Es muss ja nicht immer alles immer wieder neu erfunden werden.
ich häng sein Script mal an, vielleicht inspiriert es dich
; Script Start - Add your code below here
$data = "Hallo, dieser Text wird verschlüsselt und entschlüsselt per XOR!"
;4 Beispiele für Schlüssel
$schluessel_1 = "" ;zufälligen schlüssel erstellen, je länger, desto besser, man kann auch beliebige Binär-Dateien, z.B. Bilder oder zip-files als Schlüssel nehmen
For $i = 1 To stringlen($data) ;oder jede andere beliebige länge
$schluessel_1 &= Chr(Random(1, 255, 1)) ;zufällige bytes von 1-255
Next
$schluessel_2 = "Omas bester Pflaumenkuchen ist soooooooooo lecker, das glaubt man nicht!"
$schluessel_3 = "11111222333333"
$schluessel_4 = StringMid(FileRead(@AutoItExe), 1337, 100) ;schlüssel irgendwo aus einer exe nehmen...bei texten sollte man viele nullbytes im schlüssel vermeiden ^^
For $i = 1 To 4 ;die 4 Beispiele anzeigen, data wird jeweils mit einem der 4 Schlüssel ver- und entschlüsselt
$schluessel = Eval("schluessel_" & $i) ;$schluessel_1 schluessel_2 schluessel_3 usw
MsgBox(0, "Beispiel " & $i & " Geheimer Schluessel:", $schluessel) ;schlüssel anzeigen
$test = _XOR_Encrypt_Decrypt($data, $schluessel) ;verschlüsseln
MsgBox(0, "Verschlüsselt", $test) ;
$test = _XOR_Encrypt_Decrypt($test, $schluessel) ;entschlüsseln
MsgBox(0, "Entschlüsselt", $test)
Next
;wenn man nun z.B bei vielen kleinen Texten, z.B. Chats, verschlüsseln möchte, dann
;erstellt man sich einen großen Zufallsschlüssel und übermittelt in den ersten 6 oder 8 Bytes
;die Startposition innerhalb des Schlüssels
;wer meint, XOR wäre einfach zu knacken, der darf mir das beweisen^^ und entschlüsselt das
;folgende Zitat von Goethe....oder wars Schiller.....oder Smudo.....hmmmmmm
;
;0x0A0F36219034DCBDC90EAFA43DFE2937E6D91136A8B211CD9850785B634D5C5AB347C4534D947D9A378160ADF64DDB8F415C33BE8587C529A8
Func _XOR_Encrypt_Decrypt($data, $schluessel) ;simpel verschlüsseln und entschlüsseln per XOR
If IsString($data) And IsString($schluessel) Then ;binär, hex, oktal, alles steht offen^^
$s = 0 ;position im schlüssel
$xor = ""
For $i = 1 To StringLen($data) ;jedes byte in data wird ver- oder entschlüsselt...
$s += 1 ;...mit einem byte aus dem schluessel
If $s > StringLen($schluessel) Then $s = 1 ;wenn der schlüssel kleiner ist als die daten, wieder von vorne anfangen
$xor &= Chr(BitXOR(Asc(StringMid($data, $i, 1)), Asc(StringMid($schluessel, $s, 1)))) ; jedes byte in data mit einem Schlüsselbyte XORen
Next
EndIf
Return $xor ;Verschlüsselung oder Entschlüsselung zurückgeben
EndFunc ;==>_XOR_Encrypt_Decrypt
Alles anzeigen
wenn es hilft:
die Abfolgen, Bedingungen und sonstiges bei der Anmeldung eines User-Accounts erfolgen alle über die gina.dll oder einen Ersatz/vorgeschobenen Aufruf.
Einfach mal nach gina.dll googeln. Da sollten Möglichkeiten dabei sein.
Die Antwort der Gina (oder eines derivats) müssen aber "gehooked" werden.
Da werden sich die Geister dann scheiden, ob das noch legitim ist (ungeachtet dessen, was der Thread-Ersteller damit erreichen will)
oder schon in den Bereich der Manipulation fällt.
naja, das war bisher auch nicht die Anforderung
Die Datenbank kannst du sicher mit DB-eigenen Mitteld "dumpen". Das sollte auch im laufenden Betrieb gehen, da diese ja "nur" gelesen wird.
Beispiel-Ansätze:
nbackup: https://www.firebirdsql.org/fi…p-de.html#nbackup-backups
gbak: https://firebirdsql.org/file/d…s/gbak/firebird-gbak.html
Robocopy /MON läuft als Loop-Schleife in der Konsole.
Wenn User weg, dann auch Konsole weg.
Wenn du den /MON nutzen willst, dann als Aufgabe mit User "System" und ohne Useranmeldung.