1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. mumpel

Beiträge von mumpel

  • Nur eine Instanz eines Programm zulassen

    • mumpel
    • 14. Juli 2017 um 18:16

    Hallo!

    Ich starte per AutoIT-Script Excel. Nun soll, wenn Excel durch das AutoIt-Script gestartet wurde, keine weitere Excelinstanz gestartet werden dürfen. Egal wie die zusätzliche Excelinstanz gestartet werden soll (Doppelklick auf Exceldatei, Doppelklick auf Programmverknüpfung etc.). Erst wenn die durch AutoIt gestartete Excelinstanz beendet wurde soll wieder die Standardeinstellung gelten. Wie erreicht man das? Danke!

    Gruß, René

  • Treeview füllen und nutzen

    • mumpel
    • 14. Juli 2017 um 10:04

    Danke! Nicht einfach, passenden Beipielcodes finde ich nicht. Da werde ich wohl länger zum Lernen brauchen als in VBA. ;)

  • Treeview füllen und nutzen

    • mumpel
    • 14. Juli 2017 um 08:08

    Hallo!

    Die bisher gefundenen Beispiel bringen nicht die Lösung. Daher hier die Frage.

    Wie fülle ich ein Treeview aus CSV? Und wie wird das später verarbeitet?

    Hier mal mein VBA-Code (damit ihr euch vorstellen könnt was ich vorhabe).

    Zum Füllen:
    Hinweis: Der Inhalt für das Treeview steht in Spalte 5 der Tabelle

    Code
    Dim i      As Long
       Dim strTag As String
           strTag = Replace(ActiveSheet.Name, "ADMX ", "")
           strTag = Replace(strTag, "2016", "")
           With frmGPO.TreeView1
               .Nodes.Clear
               .Nodes.Add , tvwFirst, "Hauptmenü", strTag
               For i = 3 To ThisWorkbook.Sheets(frmGPO.lblSheet.Caption).Range("A" & Rows.Count).End(xlUp).Row
                     .Nodes.Add "Hauptmenü", tvwChild, "M" & i, ThisWorkbook.Sheets(ActiveSheet.Name).Range("A" & i).Offset(0, 4).Value
               Next i
               .Nodes("Hauptmenü").Expanded = True
           End With
    Alles anzeigen

    Dieser Code wird bei Klick auf ein Node ausgeführt:
    Hinweis: Die Sprache wird beim Öffnen der Userform ausgelesen und der entsprechende Eintrag in der Combobox aktiviert. Bei Klick auf ein Note werden andere Labels gefüllt.

    Code
    Dim objNode As MSComctlLib.Node
    
    
       Set objNode = TreeView1.SelectedItem
    
    
       If objNode.Index = 1 Then Exit Sub
       lblStart.Caption = objNode.Index + 1  
    
    
       If frmGPO.ComboBox1.Value = "Deutsch" Then
          lngLangCell = 1
          lngEins = 0
          lngVier = 4
       ElseIf frmGPO.ComboBox1.Value = "English" Then
          lngLangCell = 2
          lngEins = 1
          lngVier = 5
       Else
          lngLangCell = 3
          lngEins = 2
          lngVier = 6
       End If
    With ThisWorkbook.Sheets(frmGPO.lblSheet.Caption).Range("A" & CStr(frmGPO.lblStart.Caption))
         frmGPO.lblLang.Caption = .Offset(0, lngEins).Value
         frmGPO.lblKurz.Caption = .Offset(0, lngVier).Value
    Alles anzeigen


    Danke!

    Gruß, René

    P.S.: Gibt es für AutoIt ein vernünftiges Handbuch (Printmedium oder Online)? Nach Möglichkeit in deutscher Sprache.

  • ADMX/ADML auslesen

    • mumpel
    • 13. Juli 2017 um 00:30

    Hallo!

    Ich suche immernoch nach einer Möglichkeit. ADMX- und ADML-Dateien in Excel einzulesen. Einen Code für Powershell habe ich zwar (ADMX auslesen mit PS). Aber der macht Fehler. Dieser Code packt die Beschreibung (Explanation) jeweils in eine eigene Zelle, wodurch der Rest nicht zusammenpasst (Beschreibungen die zusammengehören sollen in eine Zelle). Ein VBA-Code (eine Schleife. Die Schleifen gehören nicht zu meinem Wissensgebiet), den ich bekommen habe, macht das auch nicht richtig. Da man hier keine Tabellenausschnitte posten kann hänge ich mal Beispieltabellen (wie es aussehen soll und wie nicht) an. Vielleicht ist ja in AutIt das Auslesen einfacher. Ich selber kann soetwas nicht. ADMX/ADML auslesen und entsprechend bearbeitet in eine Exceltabelle (oder Datenbank) zu schreiben ist ja nicht so einfach.

    Mein Angebot:
    60,- bis 100,- (+20,- auch noch drin).

    Danke!

    Gruß, René

    Dateien

    ReadADMX.zip 209,69 kB – 414 Downloads
  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 14:56

    "Infofenster" schon fertig. Somit alles erledigt.

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 14:07

    Danke! Hab es schon gefunden. Koda ist ja implementiert.

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 14:01

    Zusatzfrage:
    Ich würde gern mit einem "Infofenster" experimentieren. Also so eine Anzeige in der z.B. eine EULA angezeigt werden kann (bei "Zustimmen" fortfahren, bei "Ablehen" abbrechen). Wie lautet der "Fachbegriff" dafür, also wonach muss ich in Google suchen? Eine MsgBox ist ja nicht geeignet.

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 13:52

    Für den Dau reicht mein Schutz aus. Und wer sich sein System versauen will schafft das auch ohne mich, nur bin ich dann nicht schuld. ;)

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 13:02

    Verschlüsseln möchte ich damit Anwender nicht so einfach an das Kennwort der Exceldatei kommen. Mit Kennwortschutz ist es nämlich nicht mehr möglich die Excel-Datei mit externen Programmen zu öffnen. Damit möchte ich verhindern dass es zu leicht ist das VBA-Projekt aufzubrechen. Ihr kennt ja sicher die Möglichkeit wie man das VBA-Kennwort, zumindest bei Office 2000-2003-Dateien, mit Hex-Editor "entfernt". Der Schutz verhindert am Ende dass jemand ins VBA-Projekt geht und damit den erforderlichen Schutz (Adminrechte) umgeht. Das hat aber nichts mit mangelnden Vertrauen zu tun, sondern mit dem Schutz von Firmennetzwerken (die Registrierungsdatenbank ist nichts für Spielfreudige).


    Zitat von alpines

    (...) Die Frage ist doch, was ist so wichtig, dass du es unbedingt verstecken und sichern möchtest in einem AutoIt Script? (...)

    Nur Administratoren sollen das Tool nutzen können. Der Quellcode selber ist unwichtig. Den Quellcode selber liefere ich mit, bis auf den Teil der die "Prüfnummer" berechnet (die "Prüfnummer" gibt zusätzliche Rechte frei.). Der Quellcode als HTML, mit Syntax-Highlighting (der VBA-Code wird mit meinem Tool "VBAHTML" in HTML gespeichert).


    Extern programmieren kann ich ja nicht.

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 12:09
    Zitat von Musashi


    (...) Das Passwort setzt Du im Quellcode selbst (...)

    Und den Quellcode bzw. Zeichenfolgen kann man (angeblich) auslesen. Z. B. mit "Strings v2.53" von Sysinternals soll das funktionieren. Gelingt das einem Anwender, und weiss der wie ich es verschlüsselt habe, könnte er an das Passwort kommen. ;)

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 11:52
    Zitat von Musashi

    (...) Ich habe auf Basis Deines älteren Testscriptes mal eine q&d Variante erstellt (...)

    Perfekt! Danke! Nun funktioniert es auch mit AES256.

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 10:28
    Zitat von Musashi

    Vorab : Für die Daten den Variablennamen '$passwort' zu verwenden, ist keine glückliche Wahl.

    Das ist nur im hier geposteten Testcode so. Im Arbeitscode sind natürlich andere Namen.


    Zitat von Musashi

    Daten vorher zu drehen etc. macht es nicht sicherer, sondern nur unübersichtlich (siehe den Rat von alpines).

    Finde ich nicht. Ich habe jetzt aus drei Zeilen eine gemacht. Die Funktion habe ich natürlich auch entfernt.

    AutoIt
    #RequireAdmin
    #Region
    #AutoIt3Wrapper_Icon=bl-xl_1.ico
    #AutoIt3Wrapper_Compression=4
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion
    #Region
    #EndRegion
    #include <Excel.au3>
    #include <Crypt.au3>
    #include <MsgBoxConstants.au3>
    #include <String.au3>
    
    
    $pdde = "ßÌCnRÕ""
    If Not IsAdmin() Then
       MsgBox($MB_SYSTEMMODAL, "AutoIt/SciTE", "Sie verfügen nicht über die erforderlichen Administratorecht." & @CRLF & @CRLF & _
                               "You do not have the required administration rights." & @CRLF & @CRLF & _
    			   "Vous ne devez pas l'administrateur requis réel.")
    Else
       Local $edde = StringReverse(_HexToString(BinaryToString(_Crypt_DecryptData($pdde, 'password',$CALG_RC4))))
       Local $oExcel = _Excel_Open()
       Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Test.xlsb", 0, True, $edde, $edde)
    EndIf
    Alles anzeigen


    Zitat von Musashi

    Lese die verschlüsselten Daten (test.txt) doch einfach mittels FileRead wieder ein.

    Ist das nicht so als würde ich die Kennwörter gleich direkt dem Anwender geben? Ich müsste dann ja die "test.txt" mitgeben. Wenn ich wüsste wie und ob man die "Kennwortdatei" auch in eine dll kompilieren und wie ich den Inhalt später nutzen kann wäre es vielleicht besser.


    Zitat von Musashi

    (...) Eine verschlüsselte Zeichenkette kann aber beliebige Vorkommen von ' und " enthalten (...)

    Eben. ;)

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 01:15

    Ich habe jetzt mal mit AES experimentiert. Bei "AES128" gibt es leider ein Problem. Im verschlüsselten Zustand sind Anführungszeichen enthalten. Das führt natürlich dazu dass diese Anführungszeichen als "Abschluss" gelten, der Rest des Schlüssel dann als "ungültiger Inhalt". Bei "AES256" geht es sogar soweit dass mir unbekannte Zeichenfolgen (sieht aus wie Leerzeilen oder White-Spaces) enthalten sind mit denen ich auch nichts anfangen kann. Da bleibt doch nur RC4?

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 12. Juli 2017 um 00:32
    Zitat von alpines


    Wieso schreibst du dir überhaupt dafür eine eigene Funktion?

    Die habe ich aus dem Internet übernommen.


    Zitat von alpines


    Außerdem solltest du vielleicht von RC4 wegwechseln, da das nicht sehr sicher ist.

    Ich muss mich erstmal in AutoIt einarbeiten. Der Rest kommt dann (hoffentlich) von selsbt. ;)

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 11. Juli 2017 um 23:25

    Ich nutze natürlich die aktuelle Version.

  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 11. Juli 2017 um 23:25

    Habs hinbekommen. Ist doch nicht so schwer wie es aussieht.

    Verschlüsseln:

    AutoIt
    #include <Crypt.au3>
    #include <MsgBoxConstants.au3>
    #include <String.au3>
    $passwort = "test"
    
    
    ;----------------------------------------------
    
    
    $level1 = StringReverse($passwort)
    $level2 = _StringToHex($level1)
    
    
    Local $sEncrypted = StringEncrypt(True, $level2, 'password')
    FileWrite(@ScriptDir & "\test.txt", $sEncrypted)
    
    
    
    
    Func StringEncrypt($bEncrypt, $sData, $sPassword)
        _Crypt_Startup() ; Start the Crypt library.
        Local $sReturn = ''
        If $bEncrypt Then ; If the flag is set to True then encrypt, otherwise decrypt.
            $sReturn = _Crypt_EncryptData($sData, $sPassword, $CALG_RC4)
        Else
            $sReturn = BinaryToString(_Crypt_DecryptData($sData, $sPassword, $CALG_RC4))
        EndIf
        _Crypt_Shutdown() 
    EndFunc
    Alles anzeigen


    Entschlüsseln:


    AutoIt
    #include <Crypt.au3>
    #include <MsgBoxConstants.au3>
    #include <String.au3>
    $passwort = "ßÌCnRÕ"
    
    
    ;----------------------------------------------
    
    
    $level1 = StringReverse($passwort)
    $level2 = _StringToHex($level1)
    
    
    
    
    
    
    Local $sDecrypted = StringEncrypt(False, $passwort, 'password')
          $hexToString = _HexToString($sDecrypted)
          $level4 =StringReverse($hexToString)
          MsgBox($MB_SYSTEMMODAL, '', $level4)
    
    
    
    
    Func StringEncrypt($bEncrypt, $sData, $sPassword)
        _Crypt_Startup() ; Start the Crypt library.
        Local $sReturn = ''
        If $bEncrypt Then ; If the flag is set to True then encrypt, otherwise decrypt.
            $sReturn = _Crypt_EncryptData($sData, $sPassword, $CALG_RC4)
        Else
            $sReturn = BinaryToString(_Crypt_DecryptData($sData, $sPassword, $CALG_RC4))
        EndIf
        _Crypt_Shutdown()
        Return $sReturn
    EndFunc
    Alles anzeigen
  • Text verschlüsseln/entschlüsseln

    • mumpel
    • 11. Juli 2017 um 22:24

    Hallo!

    Ich möchte Text (Passwort) entschlüsseln und verschlüsseln. Der bisher gefundene Code wirft Fehler aus. Ich vermute dass im Code veraltete Variablen genutzt werden.

    Verschlüsseln:

    AutoIt
    #include <String.au3>
    
    
    ;Ändere dies nach deinem Geschmack:
    $passwort = "test"
    ;----------------------------------------------
    
    
    $level1 = _StringReverse($passwort)
    $level2 = _StringToHex($level1)
    $level3 = _StringEncrypt(1,$level2,"hochgeheim678&f")
    
    
    Consolewrite("Verschlüsselt: "&$level3)
    Alles anzeigen

    Entschlüsseln:

    AutoIt
    #include <String.au3>
    
    
    $passwort = "588D382D7F395102A3A5DBA8F7C6DC63"
    Consolewrite("Passwort: "&(_StringReverse(_HexToString(_StringEncrypt(0,$passwort,"hochgeheim678&f")))))
    ;Dies ^ ist die Problemzeile

    Eine Verschlüsselung ist zwar nicht zwingend, wäre aber eine weitere kleine Hürde. Wie muss das auf die aktuelle Version umgeschrieben werden? Danke!

    Gruß, René

  • Programme als Administrator starten

    • mumpel
    • 11. Juli 2017 um 21:41
    Zitat von BLinz

    Wäre es nicht einfach die Excel-Datei dort abzulegen wo dann auch nur berechtigte Personen rankommen?

    Nein.

    1. Ich entwickle privat zuhause (Hobby, kein "Arbeitgeberauftrag"). Reine Freizeitarbeit. Und wenn ich schon soetwas machen dann sollen auch andere Anwender davon provitieren.
    2. Ich habe selber kein BKU.
    3. Ich bin kein Administrator im BKU.
    4. Die Anwender sollen das Tool auch zuhause auf ihren Rechnern nutzen dürfen, aber eben nicht auf Firmenrechnern.
    5. Das wird am Ende eine Alternative zu GPEDIT.msc. Nur etwas besser als GPEDIT (dreisprachig [Englisch, Deutsch, Französich], und mit besserer Erklärung). GPEDIT ist m.E. ja nicht so gut. Da fehlt z.B. der Wertetyp, und man kann nur die Gruppenrichtlinie ändern. Mein Tool ist so aufgebaut dass die Einstellung auch nur für den angemeldeten Benutzer gesetzt werden können. Da ich nur VBA kann "muss"/möchte ich das in VBA machen.

  • Programme als Administrator starten

    • mumpel
    • 11. Juli 2017 um 19:26

    Ach so, war nur irritiert weil plötzlich etwas mit Verschlüsseung kam. ;) Danke für den Tipp. Kommt auch in meine Codesammlung.

  • Programme als Administrator starten

    • mumpel
    • 11. Juli 2017 um 19:10

    Danke an alle! Ist recht einfach wenn man Geduld hat. Erinnert ein bisschen an VBA (das kann ich "recht gut"). Mitder Vollversion von "SciTE" sind dann auch eigene Icons möglich.

    @olfibits
    Kann es sein dass Du im falschen Thread gelandet bist? ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™