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

Beiträge von BugFix

  • loop-funktion gesucht

    • BugFix
    • 14. Juni 2009 um 16:49
    Zitat von fern

    sollte das script wieder beim ersten send beginnen . --- gibt doch sicher so was wie ine GOTO funktion ?? oder ??


    GOTO gibt es zum Glück seit langer Zeit nicht mehr. :D
    Schau mal in der Hilfe unter: Keyword/Statement Reference. Da findest du alles was dein Herz begehrt.
    Übrigens solltest du dir die Wiederholfrequenz deiner Meldung gründlich überlegen, wenn du in meinem Chat alle 15 Sekunden eine Statusmeldung senden würdest, wärst du ruckzuck wegen Flooding gebannt.
    Mach es doch so, dass nur eine Meldung gesendet wird, wenn dein Name im Chat erwähnt wird. Das macht Sinn und bewahrt dich vor unliebsamen Überraschungen. ;)

  • Postzeit auslesen

    • BugFix
    • 14. Juni 2009 um 16:40

    Zum Einen ist dein _StringBetween falsch.
    Schau dir mal an, wo die Zeit tatsächlich steht (du hast </a> unterschlagen):

    Spoiler anzeigen
    PHP
    <table id="post8376871" class="tborder" cellpadding="6" cellspacing="1" border="0" width="100%" align="center">
    <tr>
    
    		<td class="thead" style="font-weight:normal" >		
    			<!-- status icon and date -->
    			<a name="post8376871"><img class="inlineimg" src="http://www.xup.in/000/board.raidrush.ws/a_rr_style/statusicon/post_old.gif" alt="Alt" border="0" /></a>
    			Heute, 13:03
    
    			<!-- / status icon and date -->				
    		</td>
    		<td class="thead" style="font-weight:normal" align="right">
    			&nbsp;
    			#<a href="showpost.php?s=b76a1d714cf755a17dd1b0a260ba3482&amp;p=8376871&amp;postcount=1" target="new" rel="nofollow" id="postcount8376871" name="1"><strong>1</strong></a>
    
    
    			
    		</td>
    
    </tr>
    Alles anzeigen


    Zum Anderen solltest du vielleicht die Tabelle ( _IETableGetCollection ) auslesen, macht sich besser bei mehreren Posts.

  • Fremddateien "includen" (ohne FileInstall)

    • BugFix
    • 14. Juni 2009 um 16:24

    In der kompilierten Datei kannst du keine Änderungen vornehmen. Jedenfalls nicht auf 'normale' Art und Weise.
    Dazu müßtest du dann wohl noch einige AutoIt-Komponenten mit einbinden um eine neue EXE zu erszeugen.

  • Zufällige kombination

    • BugFix
    • 14. Juni 2009 um 14:20

    Hier für beliebige Länge, kannst in den String noch die Sonderzeichen einfügen:

    [autoit]

    ConsoleWrite('Länge 30: ' & @TAB & _GetRandomStr(30) & @CRLF)
    ConsoleWrite('Länge 90: ' & @TAB & _GetRandomStr(90) & @CRLF)

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

    Func _GetRandomStr($len)
    Local $aChar = StringSplit('01234AaÄäBbCcDdEeFfGgHhIiJjKkLlMmNnOoÖöPpQqRrSsßTtUuÜüVvWwXxYyZz56789','')
    Local $str = ''
    For $i = 1 To $len
    $str &= $aChar[Random(1,$aChar[0],1)]
    Next
    Return $str
    EndFunc

    [/autoit]
  • Excel

    • BugFix
    • 14. Juni 2009 um 13:49

    Das hatte ich schon verstanden. Aber steht denn in der Exceltabelle bereits das Datum 15.02.2009 drin? Ist es das letzte Datum in der Spalte? Oder muß es erst eingetragen werden?
    Und vor allem: Wo liegt der Sinn? Wenn ich jeden Tag prüfe ob heute der 15. / 16. ... ist und dann einfach in die Zelle daneben xx15 / xx16 schreibe, dann brauch ich doch kein externes Programm für. Das kannst du doch per Excelformel im Dokument selber tun.
    Denn etwas außerhalb von Excel zu tun, was Excel mit VBA wesentlich einfacher und schneller erledigen kann, macht keinen Sinn.

    Hier ist eine Lösungsvariante:

    [autoit]

    Local $sFilePath = 'Pfad.xls'
    Local $sSuchbegriff = '15.02.2009'
    Local $sWrite = 'xx' & StringLeft($sSuchbegriff, 2)

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

    Local $oExcel = ObjCreate("Excel.Application")
    $oExcel.Visible = 0
    Local $oBook = $oExcel.Workbooks.Open($sFilePath)
    Local $oSheet = $oBook.Sheets(1)

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

    Local $Zelle, $Address
    $Zelle = $oSheet.UsedRange.Find($sSuchbegriff)
    If $Zelle <> '' Then $Address = $Zelle.Address
    $oSheet.Range(StringReplace($Address, '$', '')).Offset(0, 1).Value = $sWrite

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

    $oExcel.DisplayAlerts = False ; unterdrückt Speichern - Nachfrage
    $oExcel.Save
    $oExcel.Application.Quit

    [/autoit]
  • Excel

    • BugFix
    • 14. Juni 2009 um 13:32
    Zitat von subzero007

    wie kann ich den eine zelle lesen ohne excel dabei aufzumachen??
    Das Datum kann ich auch jetzt auslesen aber wie durchsuche ich das dokument danach und gebe den wert wieder?


    Du mußt Excel öffnen, kannst dies aber versteckt tun:

    [autoit]

    $oExcel = _ExcelBookOpen($sFilePath, 0) ; mit 1 ist es sichtbar (Standard)

    [/autoit]

    Deine 2te Frage kann ich nur beantworten, wenn ich weiß, was du willst. Ein bestimmtes Datum herauslesen, den letzten eingetragenen Wert....
    Schreib erst mal was genau du willst.

  • AutoLoginSpeicher wo setzte ich mein ersten Schritt?

    • BugFix
    • 14. Juni 2009 um 09:17

    Bevor du überhaupt weitermachst: Lies mal die Forenregeln und prüfe das in Bezug auf deine Spiele.
    Einige Spiele verbieten ausdrücklich ein automatisiertes Login!

  • Fremddateien "includen" (ohne FileInstall)

    • BugFix
    • 14. Juni 2009 um 00:30
    Zitat von Alina

    Geht das nur mit Bildern, oder kann man so auch Dateien (z. B. Textdateien) in ein Script einarbeiten und wenn es benötigt wird, das dann die Datei z. B. erst erstellt wird?


    Wie Bernd schon sagte: Geht mit allen Dateien. Aber bei Text ist es nun nicht notwendig, den kannst du ja im Klartext speichern.
    Ich verwende es auch um integrierte Dateien 'unsichtbar' zu halten. Nicht, damit der User nix von weiß, sondern um dem Urheberrechtschutz Genüge zu tun. So kann der User nicht direkt auf das eingebundene Material zugreifen.

    Zitat von anno2008

    Aber mit FileInstall hab ich doch auch nur 1 Datei?


    Aber nicht mehr nach dem ersten Run. Dann hast du die EXE plus per FileInstall installierte Dateien.
    Mit dieser Methode hast du immer nur die EXE.

  • Fremddateien "includen" (ohne FileInstall)

    • BugFix
    • 14. Juni 2009 um 00:21
    Zitat von anno2008

    Wo ist der Vorteil zu FileInstall.


    Für mich ist es ein Vorteil, wenn nur eine Datei existiert. Wem das egal ist, der ist natürlich mit FileInstall genausogut bedient.

  • Fremddateien "includen" (ohne FileInstall)

    • BugFix
    • 13. Juni 2009 um 23:52

    Hi,
    nun im zweiten Anlauf, da der erste Thread sich nicht mehr öffnen ließ:

    Wer sich schon mal näher die Funktion _SQLiteStartUp() in der SQLite-UDF angesehen hat, wird bemerkt haben, dass hier die SQLite Dll geladen wird, ohne dass sie auf dem System installiert ist.
    Das wird gelöst, indem der Inhalt der Dll als Binärstring innerhalb des Includes gespeichert ist und zur Laufzeit temporär die Datei erstellt wird.
    Daraus ergibt sich der Vorteil, dass man nur die reine EXE weitergibt und alle weiteren notwendigen Komponenten (Dll, Bilder etc.) nur temporär generiert.
    Da ich diese Methode in letzter Zeit häufiger nutze, habe ich auch die Erstellung des Binärstrings und der Helperfunktion automatisiert.

    Mit dem Aufruf der Funktion: _CreateTmpBinaryCall($sPath, $sBin='$sData') wird die mit $sPath übergebene Datei als Binärstring in der Variablen $sBin gespeichert. Der Variablenname darf 29 89 Zeichen nicht überschreiten, da sonst die max. Länge einer Befehlszeile überchritten wird.
    Weiterhin wird die Funktion _CreateTmpFile($sFileName, $sBin) erstellt. Diese gibt den Pfad der temporär erzeugten Datei für den übergebenen Binärstring zurück.
    Der erstellte String und die Funktion werden sowohl in die Console als auch in die Zwischenablage ausgegeben.

    Edit 17.9.2011 NEU v1.3
    • Der temporäre Pfad kann ein Direktpfad sein oder eines der Makros @ScriptDir / @TempDir. Die Makros dürfen jedoch nicht als solche übergeben werden, da dann der Pfad sofort gewandelt wird, statt das Makro in die Funktionen einzusetzen. Als Standard (mit Default od. Leerstring) wird @ScriptDir verwendet, für @TempDir muß 'tmp' übergeben werden.
    • Noch ein bischen Funktionskosmetik durchgeführt

    Edit 21.8.2011 NEU v1.1
    Schnuffel hatte eine Idee zur Funktionserweiterung, die ich beim Korrektur lesen noch etwas ausgefeilt habe und herausgekommen aus diesem Brainstorming ist dieses:
    • Übergabe nicht nur einer Datei, sondern eines Strings mit mehreren Pfaden möglich (Trenner: GUIDataSeparatorChar, Standard also: '|')
    • Wird kein Datei-Pfad übergeben, öffnet sich ein Fenster zur Dateiauswahl (auch Multiselect möglich)
    • Der temporäre Pfad ist jetzt wählbar
    • Eine Funktion zur automatischen Löschung der temporären Dateien bei Skriptende, wird bei Bedarf miterstellt
    • Ausgabe in die Konsole erfolgt nicht mehr (Zwischenablage reicht)

    Edit2 21.08.2011
    Grrr, da hatte ich noch einen Bug drin. FileSelectFolder (also kein Pfad übergeben) mit nur einer Datei führte zu einem Fehler - gefixt.

    Hier werden String und Funktion erstellt

    v 1.3
    [autoit]


    #Region - TimeStamp
    ; 2011-09-17 13:12:56 v 1.3
    #EndRegion - TimeStamp

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

    ; Local $gifPath1 = 'C:\WINDOWS\system32\oobe\images\merlin.gif' ; -- XP
    ; Local $gifPath2 = 'C:\WINDOWS\system32\oobe\images\hand2.gif' ; -- XP
    Local $gifPath1 = 'C:\Windows\System32\migwiz\PostMigRes\Web\base_images\System.gif' ; -- Win7
    Local $gifPath2 = 'C:\Windows\System32\migwiz\PostMigRes\Web\base_images\Programs.gif' ; -- Win7
    _CreateTmpBinaryCall($gifPath1 & '|' & $gifPath2)

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

    ;==================================================================================================
    ; Function Name..: _CreateTmpBinaryCall($sPath = '', $sBin='$bData', $sSavePath = @ScriptDir, $fFilesDelete = True)
    ; Description....: Erzeugt einen Binärstring der übergebenen Datei/en und erstellt eine Funktion um
    ; durch Aufruf des Strings die Datei temporär zu erstellen.
    ; Parameter(s)...: $sPath - Pfad der Datei/en, von der/denen ein Binärstring erstellt werden soll; GUIDataSeparatorChar als Trenner
    ; optional.: $sBin - Name der Variablen, die den String aufnehmen soll, max. Länge Variablenname: 89 Zeichen (Standard = $bData)
    ; optional.: $sSavePath - Pfad, in dem die temporären Dateien abgelegt werden (abschließender Backslash nicht zwingend, skriptgesteuert)
    ; • Default od. Leerstring setzt das Makro @ScriptDir ein (Standard)
    ; • 'tmp' setzt das Makro @TempDir ein
    ; Achtung: Hier KEIN Makro direkt verwenden, da dann der Pfad sofort gewandelt wird, statt das Makro in die Funktionen einzufügen
    ; $fFilesDelete - (True/False) Switch der festlegt, ob die Funktion zum Löschen der Tmp-Daten bei Skriptende erstellt werden soll
    ; Return Value(s): Erfolg - 1 Ausgabe des Strings und der Funktion _CreateTmpFile() in der Zwischenablage
    ; Fehler - 0 Set @error; 1 - keine Datei ausgewählt,
    ; 2 - Datei konnte nicht geöffnet werden (@Extended = n-te Datei, die den Fehler erzeugte)
    ; Author(s)......: BugFix ([email='bugfix@autoit.de'][/email])
    ; Modified.......: Schnuffel ([email='schnuffel@autoit.de'][/email])
    ;==================================================================================================
    Func _CreateTmpBinaryCall($sPath = '', $sBin = '$bData', $sSavePath = Default, $fFilesDelete = True)
    Local $sSeparator = Opt('GUIDataSeparatorChar')
    If $sPath = '' Then
    $sPath = FileOpenDialog('Datei/-en zum binären Includen auswählen:', @ScriptDir & '\', 'Alle Dateien (*.*)', 4)
    If $sPath = '' Then Return SetError(1,0,0)
    Local $aTmp = StringSplit($sPath, '|', 2), $ubound = UBound($aTmp)
    $sPath = ''
    If $ubound = 1 Then
    $sPath = $aTmp[0]
    Else
    For $i = 1 To $ubound -1
    $sPath &= $aTmp[0] & '\' & $aTmp[$i] & $sSeparator
    Next
    $sPath = StringTrimRight($sPath, StringLen($sSeparator))
    EndIf
    EndIf
    If $sBin = '' Or IsKeyword($sBin) Then $sBin = '$bData'
    If Not IsBool($fFilesDelete) Then $fFilesDelete = True
    If $sSavePath = '' Or $sSavePath = Default Then
    $sSavePath = '@ScriptDir & "\"'
    ElseIf $sSavePath = 'tmp' Then
    $sSavePath = '@TempDir & "\"'
    Else
    If StringRight($sSavePath,1) <> '\' Then $sSavePath &= '\'
    EndIf
    If StringLeft($sSavePath, 1) <> '@' Then $sSavePath = '"' & $sSavePath & '"'

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

    ; == Deklarieren der lokalen Variablen
    Local $sToWrite, $hFile = '', $bRead = '', $sLen = '', $nCount = 4000, $aTrimPath, $aFilenames = '['
    Local $aSplitPaths = StringSplit($sPath, $sSeparator, 3)
    $ubound = UBound($aSplitPaths)
    Local $aFiles[$ubound+1][2]
    $aFiles[0][0] = $ubound
    For $i = 1 To $aFiles[0][0]
    $aFiles[$i][0] = $aSplitPaths[$i-1]
    $aFiles[$i][1] = StringRight($aSplitPaths[$i-1], StringLen($aSplitPaths[$i-1])-StringInStr($aSplitPaths[$i-1], '\', 1, -1))
    $aFilenames &= '"' & $aFiles[$i][1] & '"' & ','
    Next
    $aFilenames = StringTrimRight($aFilenames,1) & ']'
    $sToWrite = 'Global $sPath = ' & $sSavePath & ', ' & $sBin & '[' & $aFiles[0][0]+1 & '] = [' & $aFiles[0][0] & ']' & @CRLF

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

    ; == Dateien binär einlesen
    For $i = 1 To $aFiles[0][0]
    $hFile = FileOpen($aFiles[$i][0], 16)
    If @error Then Return SetError(2, $i, 0)
    $bRead = FileRead($hFile)
    FileClose($hFile)
    $sLen = StringLen($bRead)
    $sToWrite &= ';' & @TAB & 'String mit den Binärdaten von: ' & $aFiles[$i][1] & @CRLF
    If $sLen < $nCount Then
    $sToWrite &= $sBin & '[' & $i & ']' & ' &= "' & $bRead & '"' & @CRLF
    Else
    While 1
    $sToWrite &= $sBin & '[' & $i & ']' & ' &= "' & StringLeft($bRead, $nCount) & '"' & @CRLF
    $bRead = StringTrimLeft($bRead, $nCount)
    $sLen = StringLen($bRead)
    If $sLen <= $nCount Then
    $sToWrite &= $sBin & '[' & $i & ']' & ' &= "' & $bRead & '"' & @CRLF
    ExitLoop
    EndIf
    WEnd
    EndIf
    Next

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

    ; == Ausgabe String Erstellen
    $sToWrite &= @CRLF & ';' & @TAB & 'erstellt im TEMPDIR die Datei/-en aus allen vorhandenen ' & $sBin & ' Variablen' & @CRLF
    $sToWrite &= 'Global '&$sBin&'names['&$aFiles[0][0]&'] = ' & $aFilenames & @CRLF
    $sToWrite &= 'For $i = 1 To ' & $sBin & '[0]' & @CRLF
    $sToWrite &= @TAB & 'Local $sFile = $sPath & ' & $sBin & 'names[$i -1]' & @CRLF
    $sToWrite &= @TAB & 'Local $hFileOut = FileOpen($sFile, 2+8+16)' & @CRLF
    $sToWrite &= @TAB & 'FileWrite($hFileOut, Binary(' & $sBin & '[$i]' & '))' & @CRLF
    $sToWrite &= @TAB & 'FileClose($hFileOut)' & @CRLF & 'Next' & @CRLF & @CRLF

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

    ; == Schreibt eine Funktion zum Löschen der Dateien bei Skriptende wenn $fFilesDelete = True
    If $fFilesDelete Then
    $sToWrite &= '; registriert die Funktion "_DelBinaryTempFiles()", damit die temporär erstellten Dateien bei Beendigung wieder gelöscht werden' & @CRLF
    $sToWrite &= 'OnAutoItExitRegister("_DelBinaryTempFiles")' & @CRLF & @CRLF
    $sToWrite &= 'Func _DelBinaryTempFiles()' & @CRLF
    $sToWrite &= @TAB & 'For $i = 1 To ' & $sBin & '[0]' & @CRLF
    $sToWrite &= @TAB & @TAB & 'FileDelete($sPath & ' & $sBin & 'names[$i -1]'& ')' & @CRLF & @TAB & 'Next' & @CRLF
    $sToWrite &= 'EndFunc' & @CRLF
    EndIf
    ; == Kopieren der Daten in die Zwischenablage
    ClipPut('')
    If ClipPut($sToWrite) = 1 Then
    Return MsgBox(64 + 262144, 'Daten kopiert', 'Die Daten wurden in die Zwischenablage kopiert.' & @CRLF & 'Einfügen in Ihr Script mit Ctrl + v.',5)
    Else
    MsgBox(64 + 262144, 'Fehler - Daten kopieren', 'Die Daten konnten nicht in die Zwischenablage kopiert werden.')
    Return 0
    EndIf
    EndFunc ;==>_CreateTmpBinaryCall

    [/autoit]

    Und das ist das Ergebnis zum Einfügen in das Skript:

    Spoiler anzeigen
    [autoit]

    Global $sPath = @ScriptDir & "\", $bData[3] = [2]
    ; String mit den Binärdaten von: System.gif
    $bData[1] &= "0x4749463839613000300077000021F904010000F2002C0000000030003000871A19191F23372D2D2D25293B2E313E3636382D31423639453C404B3E4758385874403E3A44413A454548494A534E5057504E48504F5354524D565658435C745C5D63565F77576178605F6569675E67676A696A72706F7570706F757577072AAC082CB20935BB1736AD193AB6203EB70339C70036D2193CC11C41BC2744B8324EB73B53AC3954BA0742CA0747D51746C7144AD21F52CD2548C7264ED22B55CA2654D4304EC53853C63659D32D5DE03B67CA3D66DC4F5F83415ABD5B6C984B65B6516BA85364B75165BD5D6CB25C6EB85E72B46A748B6D77907B7C846277A76A79B5717DB4435AC3425CCA485EC3435ED14269C94C62C24A62CB4766D84E73DC5165C55166CB5369C35569CC586EC6596CCB536BD4536CDB596ED25478CA5A72C35D72C95374DB5C73DB5C7ED55C7BDF4769E54D75E2516DE45473E15371EA577EE7517AE85B75E45974EB5A78EC6274CE6378CB687CCC6073D46277DC6579DD6E7FD4647BE3607AEB6A7FE5687FEB607BF05C81E66A88D47C8BD47B94D26481E0648AEA6986E36A82EC6C88E66B8CE86780F16D85F16E92EC738DE57796EB769DF07C92F67FA2E3888889898A9387939E97979A818BB6818DBC9B9DA698A1AA9EA7B49EA5BCABAAAAA6AABBABAEBBA4B2BDB3B3B3B3B3BBBCBCBE8E9AD3929AC1819BEB8296F18199F388A4DB99A1C396A9D097ACD99CB1C182A3E385A4EE8DA4ED8BABEE89A8F091A8EF91A9F099ACF699B3EA94B1F09CB4F19CB9F1A1A7C4A3ABC1ABB6CEA0B0D7A3B3DAAAB6D0B5BACBBABCC2A4B8E7A0B9EFAABAEBA4BBF1A9BCF3AFBEF8A9C0D2BFC0C1BEC2CAB2CADCBAC2D4BCC4DCB9CEDFACC1F2B5C0E3B4CFE6B9C3E1BFC8E2B2C4F3B7C9F4BBCBF5BDD1E1C3C3C4C2C2C8C6C9CDCBCBCBC2C6D3C2CAD9CBCBD2CFCFD8C1D0DBCED0D3CCD0D8D1D0CED3D3D5D4D4DBD9D8D7DBDBDCC0CFF6C0CCFCC6D7E6C5D2F6C2D1F8CBD7F7CAD7FAD8DCE4D2DCFAD7E2ECDBE7F1E4E4E5E4E4EAEBEBEDE8ECF1EBF1F7FFFFE5F2F2F4F3F8FBF9F8F5FEFEFECEA4D6083053000000000100F5F578000002CEA4B4CEA49FF5F57408FF00E5091C48B0A0C18308132A5CC8B0A1C38710234A9C48B1A2C58B18336A1CF86E23454C9F68E9CAF62D5C388F0C2355D1F2A64E9F3E9E701DBBC60D1C386FE0500E5C52A58B1C3A74F008126428942F65CC9ACDE4E6AD9AB46ADD30B61B52058B4F3A76F0E429B4689C3A74E6A039F3C50BD7AD5CC6AC11EB368CA2B72051AC581583F58E1E43C1D49D2B572EECB367C180F58285AAD4268AC484449162650B17316CD8B4D1F36AAF3871D09E39DBBC39D92C5C97285A0253C589942D8ED1B04993461434CC9A9D259B9DECD7AF55C20E4F8C04070C932652A64CE172264D1943C09C3D4B060C98EDE7B350E9AAA8040E1C27BF9F082F73A68C1B57819DCBFFEA35ABFCAC588CDA4E7C47E44D1C272C7E37D13E853BA857B2F2E38FC57F152B469D5014CE0F59C051050B3724D8040E4FE0508620ADA8E2CA84FEB1924A2A8A8CA29E44BAB070451655DCA0428237E060220E7380A2A22A17AAA888228098220D45A4A81085622CA860C38E3B9AC805228824920828421E62E41EB8CC38912429F4E0240B2944B9A30C36CC30C51F83043208218400D225206BD832CD44F51491428E2AA810650A32B429C30C38A041C69C7BFCB1871A6AAC11063114BDB3020929A8990209849270420A27503945185434BA8619909631463514A523820884627AE90823187A42A23808F7C40E53EC606A0E7C282991311F7C70E9AB2274FF8A820C28244AC38938E4906B0E35F8A16A44B5A8290208AD8210EB0828242B430C34345BC30C33D4F02C0CA6504351071D2061840F45B0506B08E09E10C2092FC400C30BE8BE00C3BA2F58C38D458D643041061D6C7044122CD0F0420B25F4DBC2BFFEAE4BC3361A3552C10412483001061BF0000414E6BA6082BF2EB4A003A5114DE308124870B0C1061C70A0C1040B2CD00004109C3CC1041724F1030D119BE005C10FEDE288060FAC3C41051A7CBC41050E2C5080004417C040030C300081041558E0C317B7FCAA10278D6C104103113CD000020838D040051F77A0010613346076030E682076051008CD40051E30B48D2356373041040E20A0F5D60E10FF700002093830C106F562707004116810513B2479B389231E687035D6662780C0010D1C6080DF0774BE33062353A08003712F940E3624A5D38E3BEFB8E34D27907000F4027F777E40029D1B70C000010C60C0E5095080C002083492D037E97CA3BCEAACBF338F3DEF5CD2C8F41B3C70B9ED0618E0BBF603746F4003051050C0020A41B2CB37EEA4CFFA3CF348D308B6D94E0FF9040810E0FBF6BE07F07701FC03E0102490C0863BD8178E616C62128D4082D8E6B58975586312487840F60CD0BBCE15007CE48B482320C18970CCA31EEDA8C6302081844678231EF060073BD6A10D4D3C620381139A030AD0818B386212D868C73CDA110E7BD8031EF058C73A50C8414472144318A7A0C4061AE0112470301D3EA4470A87488E682CA318CB408602752290044E821AF088C70AAB180D725402035C3C88071C918975AC501B1ED8401A1582841BCA718E78CCA31E311210003B"
    ; String mit den Binärdaten von: Programs.gif
    $bData[2] &= "0x4749463839613000300077000021F904010000F7002C0000000030003000871615151C1C1C1F212020222129292A2F2F303131325A5A5E4646645E5E615655745F7173606060666B696A6B6B62617F6E6C737374747679787A7A7B62628268678E6C6C897376877272937A7A937D7D9A7A7AA47E7EAE598668688A7976897C76907F65C26C5D97A65CAA9D6E91807F81807A968A6FA68D86AC7C95AE7281D93C93EB18A5F62884CD5FA1C07EA6E446D7AC67D2AF7C8989898282988E908F829D9187989D8E97978B9C95908C8D928F9194948E93939392959B949B9B9A95979A949A9A9A9A8282A18585AE8A8AA48C8CAA8585B18B8BB38C8CBC8F90AB8F98A69293AC979AAE9A9AAB9494B19393B99A9AB49C9CB986A2968BB49884A8B894A3A091A9A09CA5A69FA7A99EA9A49AA9ADA4959FA89AA3A1A29FA9B29CBEB19DA3A3A3A1A1ADA0AAA6A4ABABA8A3A6ABA6AAABAFA5ABABACA4A4B2A2A2BCA5AAB1A9A9B4ACACBAA5B2ABADB2B5AFB0BAACB9B6ACB9B8B4A8A9B6AAB7B4B4A7B5B9ABBBB2A8B3B3B3B2B2BCB3BCBBBAB1B7BCB3BBBABBBB9393C39999C3A4A4C1A9A9C4ACACC9A6A6D5AAAAD7AEB5C1B4B4C4B2B2CCB7B8C1BABAC4BBBBCBB5B5D2B0B0D9BBBBD3BCBCDAB9B9E5BDBDE9B0CD84ADCCB5BDC3AAB4C4BDB4CDBAB9C6BEB8CABEB5D1BDB6C1C0BDC3C2BACAC2BDD5C4D7B98AD6BC9BC1ACBAC4B6A4C4BDBBD4BEA3E2BB89E1BF90C1BCC2E1BBC6E7BBD1DAC08CD2C098CEC2AAC5C0B9DCC6A8D7C8B8D6D2A5D6D2B5EDC487EAC896F3D589F1D693E6CBA3EDD0A4EED3ADECD9AFEBD7B8F1D3AAF0D8A4F9DEBBE9E7A9F9EEADF6E5B1C6C7C7C4C3D2C3C3DBC6CFD0C9C7DCCAC9D4CDCDDCC5D2CDCED1D2C8DBD0D1C3CCD8C9D5D7D4C9D2D2D3D3D3DCD3D9D7D4D9DBDBDBDCC4C4E3C4C4EECBCBE4CCCCEBCACAF2CDCDFCCFD0E2D4D4E2D2D2EAD7DCE0DADBE3DADAE9D4D4F4D3D3FDDADAF2DCDCFCD2E2D7D5E2DCDDE1E4DFE8E8E5C4C9E3DBCEEDDFCFE1DCDCF5D0C7E2DFE0E5E2DBE4E4E4E4E4ECE6E8EBE8E8E7EAEAEBE3E3F3E3E3FCEBEDF2EBEBFDEEF1F5EFF0FEF0EFEFFFFFE5F3F4F4F3F3FDFEFEFEF5F578000002CEA4B4CEA49FF5F57408FF00EF091C48B0A0C18308132A5CC8B0A14383519CA409C44898356C0F33264CA348912143810001FA930690A25F16B769441868A2224002A15CBB664DD82F468C3E8E4C13250D4F2850A244F90353E31245DC80A51156115EBB76ECA2B2F346151B3460C01A7554142824A0344603716BF4C710206BECDABD7BD70E1EBC7870E37D9BDBAD1B376ED4A8457B2448A3933FD25EF2DC064F6A5AB76FBFC9A55BB75BB56A8F903CE9F330C99F46148BFCC197AF73BE7AF3E6259E4BBAB1634747FC0C7AF290C8C7344988382954D11AE1D09DE7D55B6CFAB19F23D01641699D868810211A10287860410391255100D10626CD1BDCD2D5061931442D4A4627D7E8C9FF1337AC109A24192C50A0600183062144924437C4081AB4BC1C9E406B34FCA1136D9DE9A34F3E03E6630F3BC42462481449143144114938F1C4507F3C614420FCF905A06703E2130E38047A26DA36D848038C478154B04121C248534443F80CC4C435017616CE26975C328E679FD5D3633EF3C4A38F06851043CC2F4730148103413CB3CC1967E07148269A587209259144728C67F580165A5CDFE8F3061A6F2492C8100C31100004F6E893491C715C71430F58A8E1061C9354E24C39B6C8124B2CB99803A63E68848187994430E4000112BCA34F33796A520C26946212071DA1B0A28A2AACA4F2092AA3B0625D9868A051889942300401011338DA8C269914FF638C2FCB9CB3CE3BEADC524B2DABA4B24A279D7C62072B72E9B3061A871E92EA428B4ED08E3ECF64920928A4D0FA8C3B6DE6936B2DB3CC02CB2BA27CC1C934DE188B6C22852CAB9003054CE08E3EC6F071071FA404B34C3AD8EA63CF3AE7DC820B2DDE8EF2090CD37063ACA1A82AC9A83BEBF001C619778062AD3BF8E0634F3ACE2C534B2EB0C0324A2A041BBCC61ABF5CF38BBA0949C0EA3AA480114419F366B2CCB515BBF38C2F992043CBB702C3208DC16F20F2CB2FE92A3C813190A4004417108362CC39EF18B8CE3299C8CB0ACF9FC450B0B16B045DF44211B0CA070B2BA410C4C37CF8F2CC3B169FE38BBC4C7F7BCA17A0FC7C702137A18C10040640FF10C40B2BA880421064DC2133DBEBC47B061941F4F0C92B9C7C220D34D8E8C3C61BBF6C238CDE074960400232D4E1420B219CE043193237734E337CC8D1C50F34C8D0C52B317C62DF34FAE051F236C0706E90040524C0831E6F9831C508221CF28E78EBF8E272EC32E4D045279CD8010C34B8E3318C6DBD33E4F90125902106C45A50910D3EE264335E173900C1C5FB5B90320C1F8D0093FD2FC4F0EE7B410E1870800441E0C10F821084333C251370C8063D48013F1EE4400678004621EA078DDCE14F7F4AFA5C0478A0031AD0400765608B26DA100C7AF84206D1A3C103CF90884330A21115D41DF7F6479009102002B223831CE6E0893D88831ED9D08433FF4C8842153E100C89C08322EA67416660702125180000CBE0093DE8E10C41E08378DA210F7924630E3F28A20C904808432CD1823364481425400A1EDCE10C2ECB41109AD1C5F120C314A5B0030F50588642BCC18C8DB060FE36C790090C0002EBE00118BAC0031AF00062BE10875A96810C72A0831576D8C11A0EA1864098B189DB20060D0712C506D8831425809D0EBA20AFC3E1C31DB362852E7AD18A4320E20A80F0242845C910190CA0016C43"
    $bData[2] &= "210F82708762D22A1D154B873140C10A5EEC821088A802510C81C66D306394022981001AF0AE44C8E06C6F4CDBBDEC818F773CC318A4708524B490071C40E10F819007E6F2670D6CDE238A0EA09830F000FF062F98615E13AB5933D0690529B4C1044A208A36D8803F765CC39E130080031C250E61F8C20C1013E7B5DAB4AF65B4410A060581097CB2D05FA085970C294317D6E60E77C8A319C5CC84B56E25A075C00107201D03083CC084343C830DC3204650ED4990A939C319EF705BB58CF18C5BC1F2A352A88114C400820ED8000AC3580322F0708DEEADE41EDAB886337CE10B63206319B3E283156A600213D4200B1FE8000998908826B0C11A50204221BE5A9062C0CA18E96893368A3189B5B6E1020BF0C012DEC00636CC20097C4D48338AE10B659CE319F6C8473832F186195CC00250C80011D010D986944319AC28873A32311044182711A5D5082B9611DBDA03463620003B"

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

    ; erstellt im TEMPDIR die Datei/-en aus allen vorhandenen $bData Variablen
    Global $bDatanames[2] = ["System.gif","Programs.gif"]
    For $i = 1 To $bData[0]
    Local $sFile = $sPath & $bDatanames[$i -1]
    Local $hFileOut = FileOpen($sFile, 2+8+16)
    FileWrite($hFileOut, Binary($bData[$i]))
    FileClose($hFileOut)
    Next

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

    ; registriert die Funktion "_DelBinaryTempFiles()", damit die temporär erstellten Dateien bei Beendigung wieder gelöscht werden
    OnAutoItExitRegister("_DelBinaryTempFiles")

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

    Func _DelBinaryTempFiles()
    For $i = 1 To $bData[0]
    FileDelete($sPath & $bDatanames[$i -1])
    Next
    EndFunc

    [/autoit]
  • String auslesen.

    • BugFix
    • 12. Juni 2009 um 22:25
    [autoit]

    $s = '<!-- status icon and date -->' & @CRLF
    $s &= '<a name="fakename"><img class="inlineimg" src="http://fake.com/abc.gif" alt="Alt" border="0" /></a>' & @CRLF
    $s &= '25.12.2008, 17:31' & @CRLF & @CRLF
    $s &= '<!-- / status icon and date -->' & @CRLF
    $s &= '</td>'

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

    $ret = StringRegExp($s, '\d{1,2}:\d{1,2}', 1)
    If IsArray($ret) Then MsgBox(0, '', $ret[0])

    [/autoit]
  • Gobby Syntax

    • BugFix
    • 12. Juni 2009 um 21:31

    Diese Datei ist es: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Tabstopp in Worddokument setzen

    • BugFix
    • 12. Juni 2009 um 14:56

    Der einfachste Weg:
    Verwende in der Ausgabe keine TrueType-Schriftart, sondern z.B. Courier. Dann kannst du per Stringlänge den genauen Abstand festlegen, da hier alle Zeichen denselben Platz einnehmen.

  • Gobby Syntax

    • BugFix
    • 11. Juni 2009 um 23:05

    Ich hab jetzt noch nicht weiter nachgeschaut, aber wenn es per XML definiert wird, kann man evtl. die fertigen Files von Notepad++ verwenden. Dort gibt es ebenfalls eine Syntaxunterstützung für AutoIt per XML.

  • ListView iteams verdoppeln sich ?!

    • BugFix
    • 11. Juni 2009 um 09:30

    Du schreibst ja immer wieder die bereits bestehenden Einträge mit ein. Somit mußt du vor dem Befüllen alle Einträge löschen.
    Das machst du mit: _GUICtrlListView_DeleteAllItems($hWnd)

  • ListView: fixe Spaltenbreite

    • BugFix
    • 10. Juni 2009 um 19:23
    Zitat von progandy

    Ein Chatverlauf soll glaube ich auch nicht sortiert werden ;)


    ^^ Wo du Recht hast, hast du Recht. 8o

  • ListView: fixe Spaltenbreite

    • BugFix
    • 10. Juni 2009 um 19:10

    Der Style $LVS_EX_FIXCOLUMNWIDTH = 0x400 steht in AutoIt leider nicht zur Verfügung.
    Aber du kannst es so machen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>

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

    $gui = GUICreate('test')
    $hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 146)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 1 To 10
    GUICtrlCreateListViewItem('Zeile ' & $i & ' Spalte 1|Zeile ' & $i & ' Spalte 2', $hListView)
    Next

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

    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case -12
    _GUICtrlListView_SetColumnWidth($hListView, 0, 146)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]

    @ ChaosKeks: Deine Variante hat den Nachteil, dass die Spaltenbutton nicht mehr für Sortiervorgänge verfügbar sind.

  • Textfarbe einer Beschriftung von einem Tab ändern

    • BugFix
    • 7. Juni 2009 um 15:08

    Färbe doch nur die Tab-Register ein, sieht auch gut aus.

    Spoiler anzeigen
    [autoit]

    #include <TabConstants.au3>
    #include <WinAPI.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiTab.au3>

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

    Global Const $ODT_TAB = 101
    Global Const $ODS_SELECTED = 0x0001
    Global Const $ODA_DRAWENTIRE = 0x1
    Global Const $ODS_FOCUS = 0x0010

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

    Global $aColTabItem[3][2] = [['Item1',0x11AADD],["Item2",0xEEBB99],["Item3",0x4763FF]] ; [[TabItem-Bezeichnung,TabItem-Color]]

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

    $hGUI = GUICreate("Draw Tab", 300, 200)
    $hTab = GUICtrlCreateTab(10, 10, 280, 180, $TCS_OWNERDRAWFIXED)
    $TabItem_1 = GUICtrlCreateTabItem("Item1")
    GUICtrlCreateLabel("", 10, 33, 277, 155)

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

    $TabItem_2 = GUICtrlCreateTabItem("Item2")
    GUICtrlCreateLabel("", 10, 33, 277, 155)

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

    $TabItem_2 = GUICtrlCreateTabItem("Item3")
    GUICtrlCreateLabel("", 10, 33, 277, 155)
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    GUIRegisterMsg($WM_DRAWITEM, "WM_DRAWITEM")

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

    _GUICtrlTab_SetCurSel($hTab, 2)
    _GUICtrlTab_SetCurSel($hTab, 1)
    _GUICtrlTab_SetCurSel($hTab, 0)

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

    Do
    Until GUIGetMsg() = -3

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

    Func WM_DRAWITEM($hWnd, $Msg, $wParam, $lParam)
    Local $DRAWITEMSTRUCT = DllStructCreate("uint cType;uint cID;uint itmID;uint itmAction;uint itmState;" & _
    "hwnd hItm;hwnd hDC;dword itmRect[4];dword itmData", $lParam)
    If DllStructGetData($DRAWITEMSTRUCT, "cType") <> $ODT_TAB Then Return $GUI_RUNDEFMSG
    If DllStructGetData($DRAWITEMSTRUCT, "itmAction") <> $ODA_DRAWENTIRE Then Return $GUI_RUNDEFMSG
    Local $itmID = DllStructGetData($DRAWITEMSTRUCT, "itmID")
    Local $hDC = DllStructGetData($DRAWITEMSTRUCT, "hDC")

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

    Local $itmText = $aColTabItem[$itmID][0], $iBrushColor = $aColTabItem[$itmID][1]

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

    DLLCall("gdi32.dll","int","SetBkMode", "hwnd", $hDC, "int", 1)

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

    Local $iBrush = DLLCall("gdi32.dll","hwnd","CreateSolidBrush", "int", $iBrushColor)
    $iBrush = $iBrush[0]

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

    Local $iBrushOld = _WinAPI_SelectObject($hDC, $iBrush)
    DLLCall("user32.dll","int","FillRect", "hwnd", $hDC, "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "hwnd", $iBrush)
    Local $tBuffer = DllStructCreate("char[256]")
    DllStructSetData($tBuffer, 1, $itmText)
    $itmText = DllStructGetData($tBuffer, 1)

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

    DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 1) + 10, 1)
    DllStructSetData($DRAWITEMSTRUCT, "itmRect", DllStructGetData($DRAWITEMSTRUCT, "itmRect", 2) + 5, 2)

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

    DllCall("user32.dll", "int", "DrawText", "hwnd", $hDC, "str", $itmText, "int", StringLen($itmText), _
    "ptr", DllStructGetPtr($DRAWITEMSTRUCT, "itmRect"), "int", $DT_LEFT)

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

    _WinAPI_SelectObject($hDC, $iBrushOld)
    _WinAPI_DeleteObject($iBrush)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]
  • Problem mit _WordDocPrint - Soll nicht aufs drucken warten

    • BugFix
    • 7. Juni 2009 um 14:44
    Zitat von p_fekonja

    Habe jetzt mal von BugFix das script für pdfcreator verwendet, funzt super, aber wenn MS-Word läuft, druckt er auf dem Standart Drucker und nicht nach PDFCreator.

    Das kann ich nicht nachvollziehen. Mit dieser Sequenz wird der aktuelle Drucker gespeichert und 'PDFCreator' als Standardrucker gesetzt.

    [autoit]

    With $oPDFCreator
    $DefaultPrinter = .cDefaultprinter
    .cDefaultprinter = "PDFCreator"
    .cClearcache
    .cPrinterStop = False
    .cOption('UseAutosave') = 1
    .cOption('AutosaveFormat') = $TargetFormat
    .cOption('UseAutosaveDirectory') = 1
    .cOption('AutosaveDirectory') = $TargetFolder
    .cOption('AutosaveFilename') = $FileSaveName
    EndWith

    [/autoit]
  • Symbiose: Array + Structure = StrucList ; Zugriff kpl. assoziativ

    • BugFix
    • 6. Juni 2009 um 18:18

    Ahh, man das nervt an meinem NoteBook. da kommst du ohne es zu merken auf das Touchpad und schon verschwindet eine Zeile.
    Werde das gleich korrigieren.
    Danke für den Hinweis.

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™