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. Lottich

Beiträge von Lottich

  • Variable als INI behandeln?

    • Lottich
    • 16. April 2015 um 20:55

    Es ist ja eigentlich gar kein Problem. Zumindest sehe ich es nicht als ein solches an. Aktuell funktioniert mein Tool ja reibungslos.
    Ich möchte ja nur verhindern, dass andere Nutzer meines PCs nicht an die Daten in der INI kommen. deshalb das (vielleicht überflüssige) umbenennen in eine DLL und das anschliessende verschlüsseln.

    Zur Zeit kann man aber immer noch an die Daten gelangen wenn das Programm ausgeführt wird. Denn DANN liegt diese INI lesbar vor.
    Gut, sie ist als DLL getarnt, die man mit einfachem Doppelklick nicht öffnen kann, aber sobald sie in einem Texteditor öffnet, kann man alles in Klarsicht lesen.
    Das gilt für mich zu verhindern. Darum dachte ich mir, mit der eingelesenen verschlüsselten Datei weiter zu arbeiten.
    Für mich scheint es die optimalste Lösung zu sein, wenn man die herkömmlichen INI Funktionen so abändern könnte, dass eben auch solche per FileRead eingelesenen Daten verarbeitet werden können.

    BTW: Für mich bist du sehrwohl ein Profi und nein, das ist kein rumgeschleime, nur eine (seit Ewigkeiten bestehende) Feststellung.
    Ich hoffe, morgen gehts weiter, muss jetzt zur Nachtschicht. Bis dann.

  • Variable als INI behandeln?

    • Lottich
    • 16. April 2015 um 17:56

    Andy:
    Ob dir beim Lesen meiner Frage schlecht wird oder nicht, ist mir ziemlich egal. Ich nutze für mich die INI Funktionen tatsächlich, weil sich mein Tool damit am einfachsten umsetzen lässt! Es ist ein eigener, nur für mich zugänglicher Passwortspeicher. Die Ini hab ich umbenannt in eine DLL. Hab hier mal irgendwo gelesen, dass ein User das auch so macht, damit unbefugte nicht so einfach an die Daten kommen. Leider kann man eine so erstellte Pseudo-DLL trotzdem einfach mit einem herkömmlichen Texteditor öffnen und die Daten sehen, weshalb ich das Ganze noch verschlüsselt hab. Es gibt GARANTIERT bessere Möglichkeiten um dieses Passworttool umzusetzen damit auch ein Profi wie du nichts daran auszusetzen hat. Aber warum sollte ich das tun? Es ist nur für mich. Und ich "baue" für mich so, dass mein Zweck erfüllt wird. Mir ist es egal, ob sich andere darüber aufregen ( ha, scheinbar doch nicht, sonst würde ich mich nicht rechtfertigen ^^).
    Und ganz davon abgesehen: vielleicht bin ich ja nicht der einzige, dem sowas wie _MEM_IniReadSectionNames() als nützlich erscheint?!

    Aber nun zurück zum Thema.

    Hallo, danke für eure Hilfe. Nach mehrfachen rumprobieren stellt sich heraus, dass die von Kanashius geschriebenen Funktionen am effektivsten sind.
    Leider funktionieren einige Funktionen noch nicht ( _MemIni_getKey(), _MemIni_iniWrite() und _MemIni_getStringData() ).

    Warum Friesels Beispiel nicht funktioniert ist mir noch unklar, denn sein Inibeispiel wird (natürlich) fehlerfrei abgewickelt.
    Ich hab in meinem Script beide Varianten durchprobiert. Mit den jeweiligen Beispielen und mit meiner eingelesenen Datei.

    [autoit]

    Global $sIni = BinaryToString(_Crypt_DecryptData(FileRead("als DLL getarnte INI"), "irgendeinText", $CALG_AES_256))

    [/autoit]


    Das gibt mir, zumindest rein optisch, den INI Inhalt wieder und ist auch so aufgebaut wie das IniBeispiel von Friesel.

    Kanashius: Ich hab deine Funktionen, bei denen ich die Sektionsnamen sowie die den Sektionsinhalt zurück bekomme so abgeändert, dass ich in $array[0] den Index stehen habe. Schade, dass die bereits oben erwähnten Funktionen nicht klappen, wäre schön, wenn wir das gemeinsam noch zurechtbiegen könnten.

  • Variable als INI behandeln?

    • Lottich
    • 15. April 2015 um 20:50

    Ich hab eine, per Crypt.au3 verschlüsselte, INI Datei per FileRead eingelesen und entschlüsselt. Als ich den Inhalt in einer MsgBox aufrief, sah es wie eine richtige INI aus.
    Aktuell erstelle ich zur Programmlaufzeit daraus eine temporäre Datei, die ich bei Programmbeendigung automatisch löschen lasse.

    Gibt es eine Möglichkeit, dies zu umgehen, indem ich die FileRead-Variable als INI behandeln und daraus Daten abfragen kann?
    Mit den herkömmlichen INI Befehlen klappt das natürlich nicht, weil die Datei nicht gefunden werden kann.

    MfG Lo..

  • CoSiNUs brOTHerS inTRO build 2015-04-20

    • Lottich
    • 15. April 2015 um 19:31

    - win 7 x64 ultimate
    - AutoIt v 3.3.12.0

    Exe läuft und auch als au3 ausgeführt

  • brauch Hilfe beim Code kürzen

    • Lottich
    • 15. April 2015 um 16:52
    Spoiler anzeigen
    [autoit]


    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $exititem
    Call("_exit")
    Case $bStart
    If $pause = False Then
    $oWMP.controls.stop()
    $pause = True
    Else
    $oWMP.controls.play()
    $pause = False
    EndIf
    Case $bhome
    Call("_homepage")
    Case $sender0
    $nbrx = 0
    Call("_send")
    .
    .
    .
    Case $sender9
    $nbrx = 9
    Call("_send")

    [/autoit] [autoit][/autoit] [autoit]

    Case $infoitem
    Call("_hilfe")
    EndSwitch
    WEnd

    [/autoit]

    Vermutlich könntest du die Funktion _send() noch so ausbauen, dass du die Variable $nbrx als Parameter übergeben kannst. Das würde noch in paar mehr Zeilen einsparen.

  • MiniCL - Berechnungen auf GPU in einer Zeile (kein OpenCL)

    • Lottich
    • 13. April 2015 um 00:56

    klingt ziemlich dreist, aber clever :D

  • FileMove. Wo liegt der Fehler ?

    • Lottich
    • 12. April 2015 um 23:31

    Was ist das für eine TXT Datei? Will nicht wissen was drin steht, aber unterscheidet sie sich vom Namen her von den anderen TXT Dateien?
    Heisst sie immer gleich, oder welcher Teil ist immer gleich?

    Wenn sie statische Merkmale hat, kann man die Suchmaske entsprechend einstellen.

  • FileMove. Wo liegt der Fehler ?

    • Lottich
    • 12. April 2015 um 22:25

    Laut Hilfe dient FileFindFirstFile() nur als eine Art "Startknopf" für FileFindNextFile(). womit du eigentlich arbeiten musst. Schau dir mal die Doku in der Hilfedatei dazu nochmal genauer an. Das wird dort gut ersichtlich.

  • TeamSpeak3 in Channel gehen

    • Lottich
    • 12. April 2015 um 16:55

    Dazu sind bis zu 3 Schritte nötig:

    1.: ein TCP-Client auf deinem Rechner
    2.: ein TCP Server auf dem Laptop
    evtl 3.: setze bei dem Laptop TeamspeakUser auf dem gewünschten Server den "Standard-Join-Channel" (weiss grad nicht genau wie das richtig heisst)

    Du TCP Client/Server findest du hier im Forum massenhaft. sende per Client einen Befehl an den Server, der diesen auswählt um dann auf den TeamspeakServer
    zu joinen. Ich nutze diesen Befehl um auf einen TS zu joinen

    [autoit]

    $IP = "123.45.67.89"
    $PORT = "12345"
    ShellExecute("ts3server://" & $IP & "?port=" & $PORT")

    [/autoit]

    Im idealfall sendest du die TeamspeakAdresse an den TCP-Server, damit der diese weiter verarbeitet.

  • Programm startet zu häufig!! -- $cmdline fehler?

    • Lottich
    • 4. April 2015 um 14:50

    Danke für eure Antworten.

    Ich hab mich für BugFix´s Variante entschieden. Das ist eine clevere Lösung. Wann immer ich bisher Controls in Schleifen erzeugte,
    arbeitete ich mit GuiGetCursorInfo(), weil mir nix schlaueres einfiel. und warum ändern, wenn es doch bisher prima (wenn auch umständlich) funktionierte?

    Danke BugFix für den Gedankenschupser mit dem 2D Array.

    Mfg, Lo..

  • Programm startet zu häufig!! -- $cmdline fehler?

    • Lottich
    • 3. April 2015 um 23:50

    Heyho, ich reiss mir gleich alle (restlichen) Haare aus!

    Ich bau mir ein Hauptprogramm, von der aus ich ein 2. Programm (eigene Exe) starte.
    Das Hauptprogramm erstellt dynamisch Buttons in eine GUI, für jede Exe, die sich im BasisOrdner des Hauptprogramms befinden.
    Jeder erstellte Button trägt den Namen einer Exe und soll bei Klick die entsprechende Exe starten. Dies funktioniert auch über GuiGetCursorInfo() ganz gut, ABER:

    Das Programm startet in unregelmäßiger Anzahl mehrfach, OBWOHL ich das 2. Program mittels _Singleton() abgesichert habe.
    Es startet also mal 3-fach, beim nächsten Versuch wird es dann 8 mal gestartet usw, bis jetzt war 8 das meisste.

    Ich komm nicht dahinter, warum?! Aus dem Hauptprogramm heraus starte ich die 2. Anwendung so

    [autoit]

    ShellExecute($_SCRIPT_FOLDER & ControlGetText("","",$this[4]) & "_MVL.exe", " -start")

    [/autoit]


    Mittlerweile weiss ich, dass es irgendwie am 2. Programm liegen muss. Wenn ich im 2. Programm den $CmdLine Kram auskommentiere funktioniert es problemlos.
    Aber ich will Parameter übergeben. und daran scheitert es offensichtlich. Was mach ich falsch?


    MfG Lo..

    Edit:

    [autoit]

    ; hier ist das Hauptprogramm
    ; ich hoffe es läuft beu euch
    #include <Array.au3>
    #include <String.au3>
    #include <GuiConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <file.au3>

    [/autoit][autoit][/autoit][autoit]

    _Singleton("Mastergui")

    [/autoit][autoit][/autoit][autoit]

    Global $_SCRIPTVERSION = "1.1.00"
    Global $_SCRIPT_BUTTON_FONT[5] = [4, "Gabriola", "Georgia", "Arial", "Lucida Console"]
    Global $_SCRIPT_FOLDER = @DesktopDir & "\MVL\"
    ;~ Global $_SCRIPT_FOLDER = @UserProfileDir & "\MvL__\"
    ;~ Global $_SCRIPT_INI_FILE = $_SCRIPT_FOLDER & "MultiTool_von_Lottich.ini"
    Global $_SCRIPT_GUI_HEIGHT, $_SCRIPT_GUI_BREITE, $_SCRIPT_GUI_HEIGHT_EX, $_SCRIPT_COUNT_EXEFILE, $_SCRIPT_GUI, $_SCRIPT_BTN_OPEN_INI
    Global $_BTN_CTRL_POS_LINKS, $_BTN_CTRL_POS_BREIT
    Dim $_SCRIPT_GUI_BUTTONS[1]

    [/autoit][autoit][/autoit][autoit]

    _MainGui()

    [/autoit][autoit][/autoit][autoit]

    Func _MainGui()
    #Region ; Variablen der _MainGUI
    $_SCRIPT_GUI_HEIGHT = 60
    $_SCRIPT_GUI_BREITE = 200
    $_BTN_CTRL_POS_LINKS = 20
    $_BTN_CTRL_POS_BREIT = 160
    $_SCRIPT_GUI_HEIGHT_EX = _Count_ExeFiles(1) ; ermittelt die Extra-Höhe, abhängig von der Anzahl existierender ExeFiles
    $_SCRIPT_COUNT_EXEFILE = _Count_ExeFiles(0) ; enthält das Array der vorhandenen ExeFiles ( Anzahl und Namen )
    If IsArray($_SCRIPT_COUNT_EXEFILE) Then ReDim $_SCRIPT_GUI_BUTTONS[$_SCRIPT_COUNT_EXEFILE[0] + 1] ; ReDim, weil ExeFiles zur Laufzeit hinzu kommen könnten
    Local $_BTN_CTRL_HEIGHT, $_BTN_CTRL_BORDER_HEIGHT, $_BTN_CTRL_TEXT
    Local $VOben = $_SCRIPT_GUI_HEIGHT - 16
    Local $vLinks = $_BTN_CTRL_POS_LINKS - 1
    Local $VRechts = $_BTN_CTRL_POS_LINKS + $_BTN_CTRL_POS_BREIT + 1
    Local $VUnten = $_SCRIPT_GUI_HEIGHT + $_SCRIPT_GUI_HEIGHT_EX - 19
    #EndRegion

    [/autoit][autoit][/autoit][autoit]

    $_SCRIPT_GUI = GUICreate("Multitool", $_SCRIPT_GUI_BREITE, $_SCRIPT_GUI_HEIGHT + $_SCRIPT_GUI_HEIGHT_EX)
    $_SCRIPT_BTN_OPEN_INI = GUICtrlCreateButton("INI", 5, 5, 30, 25)

    [/autoit][autoit][/autoit][autoit]

    #Region ; Dynamisch erstellte Buttons
    If IsArray($_SCRIPT_COUNT_EXEFILE) Then
    For $i = 1 To $_SCRIPT_COUNT_EXEFILE[0]
    $_BTN_CTRL_HEIGHT = ($_SCRIPT_GUI_HEIGHT - 45) + ($i * 30)
    ;~ $_BTN_CTRL_TEXT = StringTrimRight($_SCRIPT_COUNT_EXEFILE[$i], 8)
    $_BTN_CTRL_TEXT = StringTrimRight($_SCRIPT_COUNT_EXEFILE[$i], 4)
    $_SCRIPT_GUI_BUTTONS[$i] = GUICtrlCreateButton($_BTN_CTRL_TEXT, $_BTN_CTRL_POS_LINKS, $_BTN_CTRL_HEIGHT, $_BTN_CTRL_POS_BREIT, 25)
    GUICtrlSetFont(-1, 16, 600, "", $_SCRIPT_BUTTON_FONT[1])
    Next
    EndIf
    #EndRegion

    [/autoit][autoit][/autoit][autoit]

    #Region ; Dynamisch erstellter Rahmen rings um die Buttons
    If IsArray($_SCRIPT_COUNT_EXEFILE) Then
    $_BTN_CTRL_BORDER_HEIGHT = ($_SCRIPT_COUNT_EXEFILE[0] * 30) + 20
    GUICtrlCreateLabel("", 10, ($_SCRIPT_GUI_HEIGHT - 25), 180, 2, $WS_BORDER)
    GUICtrlCreateLabel("", 10, $_SCRIPT_GUI_HEIGHT - 32 + $_BTN_CTRL_BORDER_HEIGHT, 180, 2, $WS_BORDER)
    GUICtrlCreateLabel("", 10, ($_SCRIPT_GUI_HEIGHT - 25), 2, $_BTN_CTRL_BORDER_HEIGHT - 5, $WS_BORDER)
    GUICtrlCreateLabel("", 190, ($_SCRIPT_GUI_HEIGHT - 25), 2, $_BTN_CTRL_BORDER_HEIGHT - 5, $WS_BORDER)
    EndIf
    #EndRegion

    [/autoit][autoit][/autoit][autoit]

    GUISetState(@SW_SHOW)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    ;~ Case $_SCRIPT_BTN_OPEN_INI
    ;~ ShellExecute($_SCRIPT_INI_FILE)
    EndSwitch
    If _IsPressed(01) Then
    $this = GUIGetCursorInfo()
    If IsArray($this) Then
    If $this[0] > $vLinks And $this[0] < $VRechts And $this[1] > $VOben And $this[1] < $VUnten And $this[4] <> 0 Then
    ;~ ShellExecute($_SCRIPT_FOLDER & ControlGetText("","",$this[4]) & "_MVL.exe", " -start")
    ShellExecute($_SCRIPT_FOLDER & ControlGetText("","",$this[4]) & ".exe", " -start")
    EndIf
    EndIf
    EndIf
    WEnd
    EndFunc ;==>_MainGui

    [/autoit][autoit][/autoit][autoit]

    Func _Count_ExeFiles($var = 0);$var <> 0 gibt die GUI-Höhe an, wird $var = 0 werden die Anzahl und Namen der Exe-Files als Array zurückgegeben
    Local $aRet, $this = _FileListToArray($_SCRIPT_FOLDER, "*.exe")
    If IsArray($this) Then
    $aRet = $this[0] * 30
    If $var = 1 Then
    Return $aRet
    Else
    Return $this
    EndIf
    Else
    Return 0
    EndIf
    EndFunc ;==>_Count_ExeFiles
    ; ..:: END OF FILE ::..

    [/autoit]


    [autoit]

    ; Minimalbeispiel des 2. Programms, muss mit Parameter aufgerufen werden...
    #include <File.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>

    [/autoit][autoit][/autoit][autoit]

    If @Compiled Then
    _ArrayDisplay($CmdLine)
    If $CmdLine[0] = 1 Then
    If $CmdLine[1] <> "-start" Then Exit MsgBox(0,"Fehler", "Das Programm kann nicht einzeln gestartet werden!")
    Else
    Exit MsgBox(0,"Fehler", "Das Programm kann nicht einzeln gestartet werden!")
    EndIf
    EndIf
    _Singleton("bliblablub_Instanz")

    [/autoit][autoit][/autoit][autoit]

    Global $_SCRIPTVERSION = "1.0.00"
    Global $hMainGUI = GUICreate("Multitool v ", 600, 400, -1, -1, BitOR($WS_SYSMENU, $WS_MINIMIZEBOX))

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    GUISetState(@SW_SHOW)
    While Sleep(50)
    $_GUI_MSG = GUIGetMsg()
    Switch $_GUI_MSG
    Case -3
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Edit2: Nach jedem nachträglichen editieren wird die Autoit Syntax zerschossen....

  • Bilder verschwinden hinter Radio-Control, wenn der Mauszeiger drüber fährt

    • Lottich
    • 23. März 2015 um 00:23

    Erstelle die Radios mit minimalster Länge, anschliessend das Bild und danach ein Label mit der dazugehörenden Streamadresse.
    Du musst dann nur noch beim Auswerten der Radios in der While-Schleife die entsprechenden Labels berücksichtigen.

  • Script interne Kommentare per Buttonklick anzeigen lassen?

    • Lottich
    • 20. März 2015 um 19:07

    YEAAH! Wie geil !!!
    Danke @Oscar. Das hat geholfen.

  • Script interne Kommentare per Buttonklick anzeigen lassen?

    • Lottich
    • 20. März 2015 um 18:48

    Oscar : Funktioniert leider nicht, denn wenns kompiliert ist, steht in der MSGBox nur "MZ"

    @Shifty: ( :P ) Genau das ist das Problem: es soll gerade im kompilierten Zustand angezeigt werden.
    Das Auslagern in eine externe Datei wäre wohl eine Notlösung, die ich nur ungerne nutzen möchte.

  • Script interne Kommentare per Buttonklick anzeigen lassen?

    • Lottich
    • 20. März 2015 um 18:16

    Hi.

    ich hab ein komplexeres Script, indem ich am Scriptanfang per #cs und #ce einen mehrzeiligen Changelog stehen habe.
    Dieser ändert sich ja mit jeder neuen Version, die ich veröffentliche.
    Ist es irgendwie möglich, diesen Inhalt abrufbar zu machen, sodass ich den nicht ständig nochmal extra erstellen muss?

    Kommentar Beispiel
    [autoit]

    #cs Changelog:
    + Version 1.0.00 bis 1.0.12
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - afclkjafcla löasfpaosfdnw asoidu
    - adad jksdjasfda wedada92 a
    - asfdacajfztai aofdaiwrqn
    - acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
    - asfcaf adalksdha aspfdouad

    [/autoit] [autoit][/autoit] [autoit]

    + Version 1.0.13 bis 1.0.26
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - afclkjafcla löasfpaosfdnw asoidu
    - adad jksdjasfda wedada92 a
    - asfdacajfztai aofdaiwrqn
    - acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
    - asfcaf adalksdha aspfdouad

    [/autoit] [autoit][/autoit] [autoit]

    + Version 1.0.27 bis 1.0.38
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - afclkjafcla löasfpaosfdnw asoidu
    - adad jksdjasfda wedada92 a
    - asfdacajfztai aofdaiwrqn
    - acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
    - asfcaf adalksdha aspfdouad

    [/autoit] [autoit][/autoit] [autoit]

    + Version 1.0.39 bis 1.0.43
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    - afclkjafcla löasfpaosfdnw asoidu
    - adad jksdjasfda wedada92 a
    - asfdacajfztai aofdaiwrqn
    - acalfsd apfda9wer qwpfd9aqwn awdp9awd asdajfdaö
    - asfcaf adalksdha aspfdouad
    #ce

    [/autoit]
  • Windows Mediaplayer im Vollbild starten

    • Lottich
    • 20. März 2015 um 17:12

    Danke Chip. Allerdings musste ich doch noch ein kurzes Sleep() einbauen, weil der Befehl zu schnell gesendet wurde.
    Hatte dann die Wirkung, als hätte ich nur Alt gedrückt, weil dann links oben das kleine Menü aufploppte.
    Jetzt hab ich 2 Sekunden Pause eingefügt und nun funktioniert es. Vielen Dank.

  • Windows Mediaplayer im Vollbild starten

    • Lottich
    • 20. März 2015 um 16:55

    Das klappt leider nicht wie erhofft.

    [autoit]

    ShellExecute($scriptDIR & "meine_Playlist.wpl","","","",@SW_MAXIMIZE)
    Sleep(3000)
    ;~ if WinExists("Windows Media Player") Then MsgBox(0,"","test")
    ;~ WinWaitActive("Windows Media Player")
    WinActivate("Windows Media Player")
    Sleep(2000)
    Send("{ALT} {Enter}")

    [/autoit]

    sobald die Tastenkombination gesendet wird ertönt nur das "BING" von Windows, wenn ein Fehler auftritt... Ist der Send-Befehl falsch?

  • Windows Mediaplayer im Vollbild starten

    • Lottich
    • 20. März 2015 um 16:26

    Hi.

    In meinem Script starte ich per ShellExecute() eine vom Script selbst erstellte Playlist. Das funktioniert auch einwandfrei.
    Aber der Mediaplayer startet leider nur maximiert, sodass man immer noch die Titelleiste sieht.

    [autoit]

    ShellExecute($scriptDIR & "meine_Playlist.wpl","","","",@SW_MAXIMIZE)

    [/autoit]

    klappt leider nicht so, wie ich es will. Und das @SW_MAXIMIZE kann ich mir sparen,
    weil es ohne dies den Player im selben Grössenformat startet.
    Gibts da eine Möglichkeit, den Wechsel in den Vollbildmodus per Script zu realisieren?

  • Überprüfen ob String gültig ist

    • Lottich
    • 12. März 2015 um 00:49

    Hi, das mit RegExp gilt für mich genauso. Aber wenn es nur Grußbuchstaben und Zahlen sein drürfen kannst du das durchaus ohne RegExp realisieren.
    Dann wird halt nur der Code etwas länger. zB so

    [autoit]

    $string = "AHHFHS6"

    [/autoit][autoit][/autoit][autoit]

    If _gueltigerString($string) Then
    MsgBox(0,"Okay!","Der String ist gültig. xD")
    Else
    MsgBox(0,"Fehler!","Der String ist leider ungültig. :(")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Func _gueltigerString($this)
    Local $string = StringSplit($this, ""), $return = False
    If IsArray($string) Then
    For $i = 1 To $string[0]
    If StringIsInt($string[$i]) Or StringIsUpper($string[$i]) Then
    $return = True
    Else
    $return = False
    ExitLoop
    EndIf
    Next
    EndIf
    Return $return
    EndFunc

    [/autoit]


    Das ganze lässt sich auch noch auf die Länge des zu prüfenden Strings festlegen, wenn es nur 3 Zeichen lang sein soll.

  • nur Hover über sichtbaren Teil

    • Lottich
    • 11. März 2015 um 23:06

    Ich würds vermutlich mit GuiGetCursorInfo() versuchen. Damit die Positionen der Controls ermiteln, die diesen HOver Effekt haben sollen und dann mit Switch das Control ändern.
    Aber auch nur, weil ich noch nie mit GDI gearbeitet habe. Da gibt es sicherlich bessere Möglichkeiten.

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™