mit ControlMove
mfg autoBert
mit ControlMove
mfg autoBert
Hallo Klumpi,
für Check- und Radioboxen verstehe ich ja den Sinn einer Gruppe, aber bei Label fallen mir nur optische Gründe ein also einfach in diesem Bereich sinnvoll positionieren,
mfg autoBert
Hallo cOraXx,
hier ein Beispiel:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <GuiImageList.au3>
GUICreate("Login", 330, 175)
GUICtrlCreateLabel("Benutzername :", 8, 48, 120, 20,$SS_RIGHT)
$idInpUser = GUICtrlCreateInput("", 144, 44, 145, 24)
GUICtrlCreateLabel("Passwort :", 8, 80, 120, 20,$SS_RIGHT)
$idInpPW = GUICtrlCreateInput("", 144, 76, 145, 24, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL))
$idBtnLogin = GUICtrlCreateButton("Login", 8, 140, 155, 25, $WS_GROUP)
$idBtnExit = GUICtrlCreateButton("Beenden", 165, 140, 155, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
$iLoginTrys = 0
$iMaxTrys = 5
While 1
$LoginState = GUICtrlGetState($idBtnLogin)
If GUICtrlRead($idInpPW) <> "" And GUICtrlRead($idInpUser) <> "" Then
If BitAND($LoginState, $GUI_DISABLE) = $GUI_DISABLE Then GUICtrlSetState($idBtnLogin, $GUI_Enable)
Else
If BitAND($LoginState, $GUI_Enable) = $GUI_Enable Then GUICtrlSetState($idBtnLogin, $GUI_DISABLE)
EndIf
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE, $idBtnExit
Exit
Case $idBtnLogin
if (GUICtrlRead($idInpUser) <> "TestUser" Or GUICtrlRead($idInpPW) <> "vergessen") Then
$iLoginTrys += 1
If $iLoginTrys > $iMaxTrys-1 Then
MsgBox(16, $iMaxTrys & " falsche Loginversuche", "Computer wird für 15 Min. gesperrt")
Exit
Else
MsgBox(48, "noch " & $iMaxTrys-$iLoginTrys & " Loginversuch(e)!", "danach wird der Computer für 15 Min. gesperrt")
EndIf
Else
MsgBox(64, "Login" & $iLoginTrys, "Sie haben sich erfolgreich angemeldet!")
GUIDelete()
ExitLoop
EndIf
EndSwitch
WEnd
;und jetzt das unheimlich wichtige Programm
Opt("MustDeclareVars", 1)
_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
Local $sBMPNormal = @ScriptDIR & "\Icons\dsFirst_NORMAL.BMP"
Local $sBMPHot = @ScriptDir & "\Icons\dsFirst_mouseover.bmp"
Local $sBMPPress = @ScriptDir & "\Icons\dsFirst_mousedown.bmp"
Local $sBMPImage = @WindowsDir & "\pchealth\helpctr\System\blurbs\watermark_300x.bmp"
Local $btn1, $btn2, $btn3, $btn4, $msg
Local $hImagebtn1, $hImagebtn2, $hImagebtn3 ,$hImagebtn4
;Caveat: Minimum Operating Systems: Windows XP.
[/autoit] [autoit][/autoit] [autoit];Image list with multiple images will only show the images
;other than the 1st image when Themes are used.
Local $hGUI = GUICreate("Button Imagelists - Minimum OS: Windows XP",400,300)
[/autoit] [autoit][/autoit] [autoit]GUICtrlCreatePic(@WindowsDir & "\Web\Wallpaper\Windows XP.jpg", 0, 0, 400, 300)
GUICtrlSetState(-1, $GUI_DISABLE)
;multi state image Bitmap
$btn1 = GUICtrlCreateButton("This Way", 30, 30, 90, 32)
GUICtrlSetTip(-1, "Multi state bitmap imagelist")
$hImagebtn1 = _GUIImageList_Create(24, 24, 3, 3)
_GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);1 - Normal
_GUIImageList_AddBitmap($hImagebtn1, $sBMPHot) ;2 - Hot
_GUIImageList_AddBitmap($hImagebtn1, $sBMPPress) ;3 - Pressed
_GUIImageList_AddBitmap($hImagebtn1, $sBMPPress);4 - Disabled
_GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);5 - Defaulted
_GUIImageList_AddBitmap($hImagebtn1, $sBMPNormal);6 - Stylus Hot (tablet computers only)
_GUICtrlButton_SetImageList($btn1, $hImagebtn1)
;single state image Bitmap
$btn2 = GUICtrlCreateButton("This Way", 30, 70, 90, 32)
GUICtrlSetTip(-1, "Single bitmap imagelist")
$hImagebtn2 = _GUIImageList_Create(24, 24, 5, 3)
_GUIImageList_AddBitmap($hImagebtn2, $sBMPNormal);1 - Normal
_GUICtrlButton_SetImageList($btn2, $hImagebtn2)
;single state image Icon
$btn3 = GUICtrlCreateButton("Unlock", 30, 110, 90, 40)
GUICtrlSetTip(-1, "Single icon imagelist")
$hImagebtn3 = _GUIImageList_Create(32, 32, 5, 3)
_GUIImageList_AddIcon($hImagebtn3, "msrating.dll", 10, True)
_GUICtrlButton_SetImageList($btn3, $hImagebtn3)
;single state image Bitmap with overlayed text
$btn4 = GUICtrlCreateButton("Help", 30, 160, 90, 90)
GUICtrlSetTip(-1, "Single bitmap imagelist with overlayed text")
GUICtrlSetFont(-1, 14, 800, -1, "Comic Sans MS")
$hImagebtn4 = _GUIImageList_Create(80, 80, 5, 3)
_GUIImageList_AddBitmap($hImagebtn4, $sBMPImage)
_GUICtrlButton_SetImageList($btn4, $hImagebtn4, 4)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $btn1
Case $btn2
GUICtrlSetState($btn1, $GUI_DISABLE)
Case $btn3
GUICtrlSetState($btn1, $GUI_ENABLE)
Case $btn4
EndSwitch
WEnd
EndFunc ;==>_Main
für die 2. Gui werden noch die BMP aus dem Anhang benötigt
mfg autoBert
Hallo raydock,
hier ein Beispiel mit 2 Combos:
; *** Start added by AutoIt3Wrapper ***
#include <GUIConstantsEx.au3>
; *** End added by AutoIt3Wrapper ***
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Date.au3>
$Form1 = GUICreate("2 Combos",200,150)
$cbo1 = GUICtrlCreateCombo("",5,5,190)
GUICtrlSetData($cbo1,"Täglich")
GUICtrlSetData($cbo1,"Wöchentlich")
GUICtrlSetData($cbo1,"Monatlich")
GUICtrlSetData($cbo1,"Jährlich")
$cbo2 = GUICtrlCreateCombo("",5,45,190)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
case $Gui_Event_Close
Exit
case $cbo1
$sCbo1 = GUICtrlRead($cbo1)
GUICtrlSetData($cbo2,"","")
Switch $sCbo1
Case "Täglich"
$sCbo2 = ""
for $i = 9 to 17
$sCbo2 &= $i & " Uhr"
If $i < 17 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,"9 Uhr")
Case "Wöchentlich"
$sCbo2 = ""
for $i = 1 to 7
$sCbo2 &= _Locale_DayName($i)
If $i < 7 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,_Locale_DayName(1))
case "Monatlich"
$sCbo2 = ""
for $i = 1 to 5
$sCbo2 &= $i & ". Woche"
If $i < 5 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,"1. Woche")
case "Jährlich"
$sCbo2 = ""
for $i = 1 to 12
$sCbo2 &= _Locale_MonthName($i)
If $i < 12 Then $sCbo2 &= "|"
Next
GUICtrlSetData($cbo2,$sCbo2,_Locale_MonthName(@MON))
EndSwitch
EndSwitch
WEnd
Func _Locale_MonthName($Month, $Abbrev = False)
; ==========================================================================================
; Autor: Großvater (http://www.autoit.de)
; Parameter:
; $Month - Nummer des Monats (1 - 12)
; $Abbrev - abgekürzten Namen liefern:
; |0 : nein
; |1 : ja
; ==========================================================================================
Local Const $LOCALE_USER_DEFAULT = 0x0400
Local Const $LOCALE_SMONTHNAME = 0x37
Local Const $LOCALE_LOCALE_SABBREVMONTHNAME = 0x43
Local $LCType = $LOCALE_SMONTHNAME
If $Abbrev Then $LCType = $LOCALE_LOCALE_SABBREVMONTHNAME
If Not StringIsInt($Month) Or $Month < 1 Or $Month > 12 Then Return False
Local $aResult = DllCall("Kernel32.dll", "Int", "GetLocaleInfoA", _
"UInt", $LOCALE_USER_DEFAULT, _
"UInt", $LCType + $Month, _
"Str", "", _
"Int", 255)
If @error Or $aResult[0] = 0 Then Return False
Return $aResult[3]
EndFunc
Func _Locale_DayName($WDay, $Abbrev = False)
; ==========================================================================================
; Autor: Großvater (http://www.autoit.de)
; Parameter:
; $WDay - Nummer des Wochentages (1 - 7) (!!! 1 ist Montag (s.u.) !!!)
; $Abbrev - abgekürzten Namen liefern:
; |0 : nein
; |1 : ja
; Anmerkungen:
; Zu meinem Erstaunen hat MS in WinNLS.h folgende Konstanten definiert:
; #define LOCALE_SDAYNAME1 0x0000002A // long name for Monday
; ...
; #define LOCALE_SDAYNAME7 0x00000030 // long name for Sunday
; Anders als beim Macro @WDAY gilt deshalb der Montag als Tag 1 und der Sonntag
; als Tag 7. Der passende Wert lässt sich per Aufruf der UDF-Funktion
; _DateToDayOfWeekISO()
; ermitteln.
; ==========================================================================================
Local Const $LOCALE_USER_DEFAULT = 0x0400
Local Const $LOCALE_SDAYNAME = 0x29
Local Const $LOCALE_SABBREVDAYNAME = 0x30
Local $LCType = $LOCALE_SDAYNAME
If $Abbrev Then $LCType = $LOCALE_SABBREVDAYNAME
If Not StringIsInt($WDay) Or $WDay < 1 Or $WDay > 7 Then Return False
Local $aResult = DllCall("Kernel32.dll", "Int", "GetLocaleInfoA", _
"UInt", $LOCALE_USER_DEFAULT, _
"UInt", $LCType + $WDay, _
"Str", "", _
"Int", 255)
If @error Or $aResult[0] = 0 Then Return False
Return $aResult[3]
EndFunc
daran kannst du sehen wie einfach es ist auf die Veränderung einer Combo zu reagieren
Ps.: das du in einer func eine 2. Endlosschleife machst, ist nicht nötig
Edit: da hätte ich wohl meinen FF vor dem Posten refreshen sollen oder vor dem absenden etwas weiter nach unten scrollen
mfg autoBert
Nein stimmt nicht BitAnd muss hier verwendet werden,
mfg autoBert
@Dial es ging doch nur um diese Behauptung
Und in der Hilfe gibt es "Not" nicht.
autoBert
Denn such mal über Index oder Suche NOT. Da haste dann verloren.
Ich schätz mal du weisst/wusstest das es unter Operatoren zu finden ist. Nun ich auch
Wenn man eine Programiersprache lernt (ich denke es ist deine erste) sollte man sich als erstes mit der Hilfe vertraut machen und diese auch durcharbeiten, im Falle AutoIt empfehle ich zumindest bis zur GUI Funktion Referenz.
mfg autoBert
Hat misterspeed doch gepostet einfach den Stil $ES_PASSWORD verwenden,
mfg autoBert
Und in der Hilfe gibt es "Not" nicht.
Zitat von Hilfe AutoIt|Sprachreferenz|Operatoren
Logische Operatoren
AND Logisches UND. z. B. If $var = 5 AND $var2 > 6 Then (True falls $var 5 entspricht und $var2 größer als 6 ist)
OR Logisches ODER. z. Bsp.. If $var = 5 OR $var2 > 6 Then (true falls $var gleich 5 ist oder $var2 größer als 6 ist)
NOT Logisches NICHT. z. B. NOT 1 (FALSE)
die wichtigste Informatinsquelle sollte man schon bedienen können
mfg autoBert
Hallo Ilse,
doch das klappt, siehe mein abgewandeltes Beispiel:
#include <GUIConstantsEx.au3>
#include<WindowsConstants.au3>
Global $idGui1, $idGui2 = -99, $idMsgBox, $idZurueck, $idbtnExit2
_CreateGui2() ;entweder hier oder erst wenn benötigt ($idbtmToGui2 Klick)
$idGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_TOPMOST)
;wichtig ist der letzte Parameter
;$WS_EX_TOPMOST Hält diese Gui immer an vorderster Stelle
;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $idGui1 gespeichert
;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
$idbtnToGui2 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "Afruf Gui 2" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idbtnICQ = GUICtrlCreateButton('&ICQ', 20, 50, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "ICQ" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idbtnExit1 = GUICtrlCreateButton('be&enden', 20, 80, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "Afruf Gui 2" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
GUISetState(@SW_SHOW, $idGui1)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg(1) ;extended Modus wichtig!!
Switch $nMsg[1] ;für welches Fenster ist die Message
Case $idGui1 ;ab hier ist Gui 1 dran
Switch $nMsg[0] ;welche Message wurde ausgelöst
Case $idbtnToGui2
; GUISetState(@SW_DISABLE, $idGui1) ;Gui 1 für disablen
;If $idGui2 = -99 Then _CreateGui2() ;nur wenn nicht am Anfang bereits erzeugt nötig, dann auf Vorbelegung der Variable in Global achten)
GUISetState(@SW_SHOW, $idGui2) ;Gui 2 anzeigen
GUISetState(@SW_DISABLE,$idGui1);wichtig sonst kann dieses Fenster in den Vordergrund während GUI2 gezeigt wird
Case $idbtnICQ
MsgBox(0, "", "Jetzt würde ICQ gestartet", 0, $idGui1)
;wichtig ist der letzte Parameter
;$idGui ist das Parent-Fenster dieser MsgBox dadurch bleibt auch sie immer an vorderster Stelle
;Run("C:\Program Files\ICQ7.0\ICQ.exe")
Case $idbtnExit1, $GUI_EVENT_CLOSE
_end()
EndSwitch
Case $idGui2 ;ab hier ist Gui 2 dran
Switch $nMsg[0] ;welche Message wurde ausgelöst
Case $idMsgBox
MsgBox(0, 'Test', 'Test', 0, $idGui2)
;wichtig ist der letzte Parameter
;$idGui2 ist das Parent-Fenster dieser MsgBox dadurch bleibt auch sie immer an vorderster Stelle
Case $idZurueck, $GUI_EVENT_CLOSE
GUISetState(@SW_ENABLE, $idGui1) ;Gui 1 für ensablen
GUISetState(@SW_HIDE, $idGui2) ;Gui 2 verstecken
Case $idbtnExit2
_end()
EndSwitch
EndSwitch
WEnd
Func _CreateGui2()
$idGui2 = GUICreate('GUI 2', 500, 300, 200, 50, -1, $WS_EX_TOPMOST, $idGui1)
;wichtig sind die beiden letzten Parameter
;$WS_EX_TOPMOST Hält diese Gui immer an vorderster Stelle
;$idGui1 ist das Parent-Fenster
;erzeugt eine GUI als Child von Gui1, die zurückgebebene ID wird in der Variablen $idGui2 gespeichert
$idMsgBox = GUICtrlCreateButton('&MsgBox', 20, 20, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "MsgBox" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idZurueck = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 50, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "zurück" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idbtnExit2 = GUICtrlCreateButton('be&enden', 20, 80, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "beenden" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
EndFunc ;==>_CreateGui2
Func _end()
GUIDelete($idGui2)
GUIDelete($idGui1)
Exit
EndFunc ;==>_end
viel Spass damit,
Edit: Skript angepasst
autoBert
Hallo spiesi,
hier ein Beispiel mit 2 Comboboxen und einer CSV-Datei
#Include <GuiComboBox.au3>
#include <GUIConstantsEx.au3>
#include <array.au3>
#include <File.au3>
Const $sCSV = @ScriptDir & "\2cbo.TXT"
Const $sElect = "bitte auswählen"
Dim $a_sCSV, $aSplit, $scboChr = ""
_FileReadToArray($sCSV,$a_sCSV)
Dim $aCSV[$a_sCSV[0]][2]
for $i = 1 to UBound($a_sCSV) - 1
ConsoleWrite($i & $a_sCSV[$i] & @CRLF)
$aSplit = StringSplit($a_sCSV[$i],";")
if not StringInStr($scboChr,$aSplit[1]) Then $scboChr &= $aSplit[1] & "|"
$aCSV[$i-1][0] = $aSplit[1]
$aCSV[$i-1][1] = $aSplit[2]
Next
ConsoleWrite($scboChr & @CRLF)
$hGui = GUICreate("2 Comboboxen aus 1er CSV", 250, 120, 302, 218)
$hcboChr = GUICtrlCreateCombo($sElect, 8, 8, 200, 25)
GUICtrlSetData(-1,$scboChr)
$hcboChrNr = GUICtrlCreateCombo("",8,35,200,25)
$hbtnExit = GUICtrlCreateButton("Be&enden", 8, 65)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $hbtnExit
Exit
Case $hcboChr
$sVal = GUICtrlRead($hcboChr)
if $sVal <> $sElect Then
$aSplit = _ArrayFindAll($aCSV,$sVal,0,0,True,True,0)
GUICtrlSetData($hcboChrNr,"")
$scboChr = ""
for $i = 0 to UBound($aSplit) - 1
$scboChr &= $aCSV[$aSplit[$i]][1] & "|"
Next
ConsoleWrite($scboChr & @CRLF)
GUICtrlSetData($hcboChrNr,$scboChr)
_GUICtrlComboBox_SetCurSel($hcboChrNr, 0)
EndIf
EndSwitch
WEnd
zum Testen benötigst du noch die im Anhang befindliche Datei,
mfg autoBert
Hallo Mr. quickly,
Zitat von Hilfe zu HotkeySerAlles anzeigenFolgende HotKeys können nicht genutzt werden:
Strg+Alt+Entf Reserviert von Windows selbst
F12 Ebenfalls durch Windows reserviert (API)
Ziffernblock Enter Taste Man sollte stattdessen {Enter} verwenden, da hierbei beide Enter-Tasten abgefangen werden.
Win+B,D,E,F,L,M,R,U; und Win+Shift+M Reserviert durch Windows
Anmerkung: Win+B und Win+L könnten nur bei Windows XP und höher reserviert sein.
Alt, Strg, Shift, Win Dies sind Modifizierungstasten
Weitere Jede globale Tastenkombination, die mit einer anderen Software definiert wurde, und jede Kombination aus Basistasten, wie '{F1}{F2}', sowie jede Form von '{LALT}' oder '{ALTDOWN}'.
es geht also nicht
Das klappt aber auf einigen Terminals bei uns nicht.
schlage vor ihr kauft für diese neue Tastaturen, dann klappt's auch wieder mit diesen Tasten. Im übrigen kann man es afiair vor dem Anmelden ändern,
mfg autoBert
mfg
Hallo spiesi,
natürlich ist das möglich ich würde anstatt von 5 CheckBoxen 1 ComboBox nehmen ist leichter erweiterbar. Wenn du dir meinen Mini-URL-Manager (Link siehe Sigantur) anschaust verstehst du die Technik der ComboBox im Zusammhang mit INI-Dateien.
Anstelle von INIs kannst d auch eine Datenbank z.B. SQLite verwenden, musst dich dann halt in die SQL Syntax einlesen,
Nachtrag:
ZitatDanke !
Wie schaffe ich es das da Script einzelne Angabe, getrennt durch Semikolon (?) nimmt und nicht die ganze Ini ?
poste doch einmal deine sogenannte INI.
mfg autoBert
Hallo richie1985,
genau dieses Problem wurde doch hier gelöst, also aufmerksam die Posts von Micha_He lesen.
mfg autoBert
Edit: OK, ich sehe ein gefülltes und ein leeres $GUI_EX_MDICHILD GUI, das ändert aber nichts daran, dass sie den Fokus klauen.
also bei mir unter XP prof SP3 nicht,
mfg autoBert
hallo Herbsen,
wenn es geht und hier vielleicht schon einmal jemand gemacht hat, dann eukalyptus, verwende doch die SuFu bzw. schick ihm eine PN,
mfg autoBert
Hallo Ilse,
WinSetOnTop bringt es ja nur nach vorne, du müsstest aber beim erzegen der GUI den erweiterten Stil $WS_EX_TOPMOST verwenden.
Edit: Hatte deine Frage falsch verstanden, dachte du meitest Anwendungs-Modal und nicht Systemm-Modal. Davon halte ich nichts, dass jede(r) Programmierer(in) denkt ihr Programm ist das wichtigste, wenn nämlich alle Programme diesen Stil verwenden, kannst du bald nicht mehr vernünftig arbeiten. Er sollte also wirklich nur Systemprogrammen wie z.B.: dem Taskmanager zugestanden werden.
mfg autoBert
Hallo m-obi,
hier die Grundlage:
Zitat von Quelle wikipediaInvolutorische Chiffren [Bearbeiten]
Involutorische Chiffren weisen die Eigenart auf, dass der Algorithmus zum Verschlüsseln und zum Entschlüsseln identisch ist. Sie sind damit besonders bequem zu handhaben. Ein einfaches Beispiel aus der Kryptologie ist die Verschiebechiffre ROT13, bei der zur Verschlüsselung jeder Buchstabe um den um 13 Stellen im Alphabet verschobenen Buchstaben ersetzt wird. Die zweimalige Anwendung dieser Methode ergibt eine Verschiebung um 26 Buchstaben und damit wieder den ursprünglichen Klartext. In der Geschichte gab es aber auch wesentlich komplexere involutorische Verschlüsselungsverfahren. Das wohl bekannteste Beispiel ist die deutsche Verschlüsselungsmaschine ENIGMA, die im Zweiten Weltkrieg im Nachrichtenverkehr des deutschen Militärs verwendet wurde.
Die logische Funktion Exklusives Oder ist ebenfalls selbstinvers und wird daher unter anderem in Verschlüsselungsalgorithmen wie One Time Pad eingesetzt.
Edit: kannst du bitte ein Wort/Satz nennen, das nicht mehr entschlüsselt werden konnte, alle meine Versuche haben geklappt,
mfg autoBert
Alles gute Wünsche zum Geburtstag:
wünscht dir autoBert
Hallo Kleiner,
ich hab es so getestet:
[autoit]$sText ="Hier ist eine tolle Implentierung des Cäsar-Chiffres http://www.autoit.de/index.php?page…6455#post196455 ist perfekt"
Dim $Te = VerEnd_S($sText)
Dim $Te_ = VerEnd_S($Te)
ConsoleWrite("Ursprung: " & $sText & @CRLF)
ConsoleWrite("verschlüsselt: " & $Te & @CRLF)
ConsoleWrite(@CRLF & @CRLF)
ConsoleWrite("entschlüsselt: " & $Te_ & @CRLF)
if $Te_ = $sText Then
MsgBox(0,"Bravo","Klappt")
Else
MsgBox(0,"Sorry","Klappt nicht")
EndIf
hat geklappt. Ausgabe Scite-Konsole:
Ursprung: Hier ist eine tolle Implentierund des Cäsar-Chiffres http://www.autoit.de/index.php?page=Thread&postID=196455#post196455 ist perfekt
verschlüsselt: )PRBPKC\PD_ Tx]U\
entschlüsselt: Hier ist eine tolle Implentierund des Cäsar-Chiffres http://www.autoit.de/index.php?page=Thread&postID=196455#post196455 ist perfekt
bei der sehr kurzen Länge des verschlüsselten Strings (sieht in der Konsole anders aus) dachte ich zuerst du hättest einen Packer geschreiben. Daraufhin habe ich mit _InetGetSource einen AutoIt-Thread eingegelesen. Verschlüsseln/entschlüsseln hat auch wieder geklappt, das anschliessende Schreiben in eine Datei hat mich mir dann gezeigt dass deine Daten und die Ursprungsdaten exakt den selben Plattenplatz benötigen.
mfg autoBert