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

  • ToolTip() Formatieren

    • BugFix
    • 5. April 2010 um 18:46

    funkey: Das läßt sich aber nicht formatieren. ;)

    Habe meine Version mal noch aktualisiert und Textmeter integriert. Dann braucht man keine Größe mehr übergeben. Als Position wird standardmäßig die Mausposition (bzw. rechts unterhalb davon) gewählt.
    Hier zu finden: SplashImage / -Text, randlos, formatierbar

  • ToolTip() Formatieren

    • BugFix
    • 5. April 2010 um 17:23

    Mußt du dir dann selbst schreiben: Gui mit Style WS_POPUP, dann kannst du formatieren, wie du lustig bist.

    Ich hatte da mal was:

    Spoiler anzeigen
    [autoit]

    #include-once
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <FontConstants.au3>

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

    _SplashOn('Hello World', 200, 100,-1,-1,-1,-1,-1,0)

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

    ;==================================================================================================
    ; Function Name: _SplashOn($Item, $width=-1, $height=-1, $left=-1, $top=-1, $timeout=-1, $txtCol=-1, $bkCol=-1, $trans=1, $size=-1, $font=-1)
    ; Description:: Show an SplashImage (gif,jpg,bmp) or an SplashText
    ; Parameter(s): $Item - Path picture file or SplashText; Autodetection if file or text
    ; part optional $width - text: width; picture: - by default(-1) use original size of picture
    ; part optional $height - text: height; picture: - by default(-1) use original size of picture
    ; optional $left - left margin (default=-1 horizontal centered)
    ; optional $top - upper margin (default=-1 vertikal centered)
    ; optional $timeout- time how long to show picture/text (default=-1, 3 seconds)
    ; optional $txtCol - SplashText: text color RGB (default=-1, red)
    ; optional $bkCol - SplashText: back color RGB (default=-1, black)
    ; optional $trans - SplashText: background transparency yes/now (default=1, yes)
    ; optional $size - SplashText: font size (default=-1, 30) ; 14 conforms approximately 12 at TimesNewRoman
    ; optional $font - SplashText: font name (default=-1, Arial)
    ; Return: Succes - 1
    ; Failure - 0 set @error: 1= given file doesn't exist; 2= no size given for textarea
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _SplashOn($Item, $width=-1, $height=-1, $left=-1, $top=-1, $timeout=-1, $txtCol=-1, $bkCol=-1, $trans=1, $size=-1, $font=-1) ; picture path or text
    If $timeout < 0 Then $timeout = 3000
    If $txtCol < 0 Then $txtCol = 0xFF0000
    If $bkCol < 0 Then $bkCol = 0x000000
    If $trans < 0 Then $trans = 0
    If $size < 0 Then $size = 30
    If $font = -1 Then $font = 'Arial'
    If StringRegExp(StringLeft($Item, 3), '[a-zA-Z]:\\') Then ; picture
    If Not FileExists($Item) Then Return SetError(1,0,0)
    If ($width = -1) Or ($height = -1) Then
    Local $objShell = ObjCreate("Shell.Application")
    Local $objFSO = ObjCreate("Scripting.FileSystemObject")
    Local $objFile = $objFSO.GetFile($Item)
    Local $FileName = $objFSO.GetFileName($objFile)
    Local $objFolder = $objShell.Namespace($objFSO.GetParentFolderName($objFile))
    For $strFileName In $objFolder.Items
    If $objFolder.GetDetailsOf($strFileName, 0) <> $FileName Then ContinueLoop
    $width = StringRegExpReplace($objFolder.GetDetailsOf($strFileName, 27), '(\d+).*', '$1')
    $height = StringRegExpReplace($objFolder.GetDetailsOf($strFileName, 28), '(\d+).*', '$1')
    Next
    EndIf
    Local $gui = GUICreate("", $width, $height, $left, $top, $WS_POPUP, $WS_EX_TOPMOST)
    Local $ctrl = GUICtrlCreatePic($Item, 0, 0, $width, $height)
    GUISetState(@SW_SHOW)
    Local $pos = WinGetPos($gui), $combined_rgn = _WinAPI_CreateRectRgn(0, 0, 0, 0)
    Local $ctrl_pos = ControlGetPos($gui, "", $ctrl)
    Local $ctrl_rgn = _WinAPI_CreateRectRgn($ctrl_pos[0], $ctrl_pos[1], $ctrl_pos[0] + $ctrl_pos[2], $ctrl_pos[1] + $ctrl_pos[3])
    _WinAPI_CombineRgn($combined_rgn, $combined_rgn, $ctrl_rgn, $RGN_OR)
    _WinAPI_DeleteObject($ctrl_rgn)
    _WinAPI_SetWindowRgn($gui, $combined_rgn)
    Sleep($timeout)
    GUIDelete($gui)
    Else ; text
    If ($width = -1) Or ($height = -1) Then Return SetError(2,0,0)
    If $left = -1 Then $left = Int((@DesktopWidth/2) - ($width/2))
    If $top = -1 Then $top = Int((@DesktopHeight/2) - ($height/2))
    Local $tRECT, $hFont, $hOldFont, $hDC
    $tRECT = DllStructCreate($tagRect)
    DllStructSetData($tRECT, "Left", $left)
    DllStructSetData($tRECT, "Top", $top)
    DllStructSetData($tRECT, "Right", $left + $width)
    DllStructSetData($tRECT, "Bottom", $top + $height)
    $hDC = _WinAPI_GetDC(0)
    $hFont = _WinAPI_CreateFont($size, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, _
    $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, $font)
    $hOldFont = _WinAPI_SelectObject($hDC, $hFont)
    Local $sH = Hex($txtCol,6)
    $txtCol = '0x' & StringRight($sH, 2) & StringMid($sH,3,2) & StringLeft($sH, 2)
    $sH = Hex($BkCol,6)
    $bkCol = '0x' & StringRight($sH, 2) & StringMid($sH,3,2) & StringLeft($sH, 2)
    _WinAPI_SetTextColor($hDC, $txtCol)
    _WinAPI_SetBkColor($hDC, $bkCol)
    If $trans Then _WinAPI_SetBkMode($hDC, $TRANSPARENT)
    Local $timer = TimerInit()
    Do
    _WinAPI_DrawText($hDC, $Item, $tRECT, $DT_CENTER)
    Sleep(20)
    Until TimerDiff($timer) > $timeout
    _WinAPI_SelectObject($hDC, $hOldFont)
    _WinAPI_DeleteObject($hFont)
    _WinAPI_ReleaseDC(0, $hDC)
    _WinAPI_InvalidateRect(0, 0)
    $tRECT = 0
    EndIf
    Return 1
    EndFunc ;==>_SplashOn

    [/autoit]
  • Auswahl einer bestimmten Datei und Ausgabe in ein Textfeld

    • BugFix
    • 5. April 2010 um 17:07

    Das sollte helfen:

    FileOpenDialog()
    FileRead()
    GuiCtrlSetData()

  • Text aus CMD auslesen

    • BugFix
    • 5. April 2010 um 16:10
    Zitat von oetzn

    cmd.exe startet deine *.exe, und woher/wie weis die cmd.exe wie deine *.exe heißt?
    bzw warum startet sie denn deine *.exe überhaupt?


    Dann wär es ja einfach. Nein, eine Fremdanwendung startet in sich eine CMD - und auf diese wollte er Zugriff, was imho nicht machbar ist, da beim Aufruf der CMD die notwendigen Parameter übergeben werden müssen.

  • Ellipsenartige Bewegung um einen Punkt

    • BugFix
    • 5. April 2010 um 15:43

    Diese Form der Berechnung hat allerdings einen Nachteil. Als Basis wird die Gradzahl herangezogen. An den beiden Scheitelpunkten der Ellipse liegen die Punkte am dichtesten, während die auf der übrigen Bahn relativ weit gestreut liegen. Ursache ist die unterschiedliche Bahngeschwindigkeit. Da wäre es vielleicht sinnvoll mit dem Bogenmaß zu rechnen, damit man zwischen 2 Punkten stets dieselbe zurückgelegte Strecke hat. Dann hätten wir auch eine gleichförmige Bahnbewegung.

  • Text aus CMD auslesen

    • BugFix
    • 5. April 2010 um 15:34
    Zitat von Alina

    Wie wäre ein Start über Batch (Call) und da direkt die EXE, die dann sein Nötiges macht?


    Alina, das Problem bleibt gleich: Die CMD wird ja aus einer fremden Anwendung heraus gestartet und diese Anwendung sollte dann Parameter für die Stream-Auswertung übergeben, damit die Auswertung möglich wird.

  • Animierte Button

    • BugFix
    • 5. April 2010 um 14:12

    Hier findest du eine Leer-Dll und die Beschreibung, wie du mit dem Ressource-Hacker eigenen Inhalt einfügen kannst.

  • Animierte Button

    • BugFix
    • 5. April 2010 um 13:51
    Zitat von Rodny_le_lude

    das man nicht für jedes Event ein eignes image File Anlegen muss.


    Schieb die drei Bilder, am besten als Icon, in eine Dll und lade bei entsprechendem Event das zugehörige Pict.

  • letzte zeile bei excel 2003 und 97 finden

    • BugFix
    • 5. April 2010 um 12:11

    Öffne mal VBA in Excel97 (ein Excel-Dokument öffnen, Alt+F11). Dort öffne den Objektkatalog (das Symbol, das aussieht wie ien Pappkarton) und durchsuche mal die dort angegebenen Objekte und Methoden. Vielleicht findest du was Brauchbares.

  • Tesseract soll nur Zahlen auslesen

    • BugFix
    • 5. April 2010 um 11:24

    Hmm, wo ist jetzt der Bezug zu AutoIt? Tesseract ist doch eine OCR-Software?
    Oder hast du eine Anbindung an AutoIt programmiert?
    Dann zeig doch mal, was dein Skript bisher tut und wo es hakt.

  • Text aus CMD auslesen

    • BugFix
    • 5. April 2010 um 11:19
    Zitat von Greek

    Aber da muss man im CMD auch sagen das er es an ConsoleRead.exe senden soll, mit | ConsoleRead.exe am Ende dran hängen.


    Das ist, was ich meinte. Egal welche Verrenkungen man macht - letztendlich muß der aufrufende Prozeß in irgendeiner Form bekanntgeben, dass er Werte bereitstellt. :S

  • Text aus CMD auslesen

    • BugFix
    • 5. April 2010 um 10:38

    Nach meinem Verständnis ist das nicht möglich. Der aufrufende Prozeß muß die entsprechenden Flags (stdout, stderr) beim Aufruf setzen, damit diese Berücksichtigung finden.

    Aber wieso kannst du den Aufruf nicht selbst vornehmen?

  • ZIP - Packen / Entpacken mit Windows eigener Funktion

    • BugFix
    • 5. April 2010 um 09:30

    Danke Oscar für den Tipp. Werde ich sofort anpassen.

  • _FileList*Path*ToArray

    • BugFix
    • 5. April 2010 um 09:28

    Hi,
    die Funktion _FileListToArray() gibt uns nur die Datei-/Ordnernamen zurück. Häufig benötigt man aber die kpl. Pfade.
    Deshalb habe ich diese Funktion erstellt, die identisch funktioniert aber die gesamten Pfade listet.
    Für rekursive Auflistung gibt es ja bereits genügend Lösungen.

    _FilePathListToArray
    [autoit]

    ;===============================================================================
    ; Function Name: _FilePathListToArray($sPath, $sFilter='*', $iFlag=0)
    ; Description: Analog zu _FileListToArray ==> aber es werden die kpl. Pfade ausgegeben
    ; Parameter(s): $sPath Pfad zum Ordner, von dem die Dateiliste erstellt werden soll
    ; $sFilter Dateiendung nach der gefiltert werden soll, Standard ist '*'
    ; $iFlag Rückgabe Dateien und/oder Ordner,
    ; 0 = Dateien u. Ordner (Standard)
    ; 1 = nur Dateien
    ; 2 = nur Ordner
    ; Return Value(s): Erfolg Array mit den Pfaden, $array[0] enthält die Anzahl der Dateien/Ordner
    ; Fehler 0 set @error 1 - Pfad existiert nicht
    ; 2 - Filter ungültig
    ; 3 - Flag ungültig
    ; 4 - keine Dateien/Ordner gefunden
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _FilePathListToArray($sPath, $sFilter='*', $iFlag=0)
    Local $oFSO, $oFolder, $sOut = '', $iLen
    If Not FileExists($sPath) Then Return SetError(1,0,0)
    If StringRegExp($sFilter, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2,0,0)
    If Not StringInStr('0 1 2', $iFlag) Then Return SetError(3,0,0)
    $oFSO = ObjCreate('Scripting.FileSystemObject')
    $oFolder = $oFSO.GetFolder($sPath)
    If StringInStr('0 2', $iFlag) Then
    For $SubFolder In $oFolder.Subfolders
    $sOut &= $sPath & '\' & $SubFolder.Name & @LF
    Next
    EndIf
    If $iFlag < 2 Then
    $iLen = StringLen($sFilter)
    For $File In $oFolder.Files
    If $sFilter <> '*' Then
    If StringRight($File.Name, $iLen) <> $sFilter Then ContinueLoop
    EndIf
    $sOut &= $sPath & '\' & $File.Name & @LF
    Next
    EndIf
    If $sOut = '' Then Return SetError(4,0,0)
    Return StringSplit(StringTrimRight($sOut, 1), @LF)
    EndFunc ;==>_FilePathListToArray

    [/autoit]

    Dateien

    _FilePathListToArray.au3 2,07 kB – 363 Downloads
  • ZIP - Packen / Entpacken mit Windows eigener Funktion

    • BugFix
    • 4. April 2010 um 23:17

    Jetzt Packen und auch Entpacken möglich. - Update s. Post #1

  • ZIP - Packen / Entpacken mit Windows eigener Funktion

    • BugFix
    • 4. April 2010 um 15:16

    Hi,
    hiermit könnt ihr ZIP-Archive mit dem in Windows integrierten ZIP erstellen:

    Parameter $iIndexBase=1 ==> Falls das übergebene Array an Pos 0 einen Zähler führt ist BaseIndex=1 (Standard).
    _FileListToArray kann man leider nicht für das Array verwenden, da diese Funktion nicht den Pfad ausliest.

    Edit:
    NEU - nun auch Entpacken.

    Edit2:
    Fixed - Fehler Variablenname. Beim Zusammenführen der beiden Funktionen hatte ich vergessen die Variablennamen anzugleichen. Und keiner hats gemerkt ;)

    Edit3:
    Fixed - Relative Dateinamen. Der Pfad zur Zip-Datei kann jetzt relativ angegeben werden. Danke Oscar für den Hinweis.

    _BuildInZIP
    [autoit]

    ;===============================================================================
    ; Function Name: _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=True, $iIndexBase=1, $fOverwrite=True)
    ; Description: Erstellt aus einer Datei od. einem Array von Dateien eine ZIP-Datei
    ; mit Hilfe der Windows eigenen ZIP-Funktion
    ; Parameter(s): $sPath Pfad der zu erstellenden ZIP-Datei // Bestehenden ZIP-Datei
    ; $s_a_ToZip String der Einzeldatei oder Array der zu zippenden Dateien
    ; // Pfad des Zielordners, in den entpackt werden soll
    ; $fUnZip=True Entpacken=True, Packen=False (Standard)
    ; $iIndexBase Index Basis (erstes Element mit Pfad) des übergebenen Arrays (0 od.1)
    ; $fOverwrite Falls $sPath existiert ==> Überschreiben (Standard=True)
    ; Return Value(s): Erfolg 1
    ; Fehler set @error 1 - Überschreiben aus, aber Zieldatei existiert
    ; 2 - Zieldatei endet nicht auf ".zip"
    ; 3 - zu komprimierende Datei existiert nicht
    ; @extended: Anzahl der fehlenden Dateien
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _BuildInZIP($sPath, $s_a_ToZip, $fUnZip=False, $iIndexBase=1, $fOverwrite=True)
    Local $fh, $sNul = '', $sZIPHeader, $objShell = ObjCreate("Shell.Application"), $objZipOrdner, $err = 0
    $sPath = FileGetLongName($sPath, 1)
    If $fUnZip Then
    Local $temp, $objZip
    If Not FileExists($s_a_ToZip) Then DirCreate($s_a_ToZip)
    $temp = $objShell.Namespace($s_a_ToZip)
    $objZip = $objShell.Namespace($sPath)
    $temp.CopyHere($objZip.Items)
    Return 1
    EndIf
    If (Not $fOverwrite) And FileExists($sPath) Then Return SetError(1,0,0)
    If StringRight($sPath, 4) <> '.zip' Then Return SetError(2,0,0)
    For $i = 1 To 18
    $sNul &= Chr(0)
    Next
    $sZIPHeader = Chr(80) & Chr(75) & Chr(5) & Chr(6) & $sNul
    $fh = FileOpen($sPath, 10)
    FileWrite($fh, $sZIPHeader)
    FileClose($fh)
    $objZipOrdner = $objShell.Namespace($sPath)
    If Not IsArray($s_a_ToZip) Then
    If Not FileExists($s_a_ToZip) Then Return SetError(3,1,0)
    $objZipOrdner.CopyHere($s_a_ToZip)
    Sleep(1000)
    Return 1
    EndIf
    For $i = $iIndexBase To UBound($s_a_ToZip) -1
    If Not FileExists($s_a_ToZip[$i]) Then
    $err += 1
    ContinueLoop
    EndIf
    $objZipOrdner.CopyHere($s_a_ToZip[$i])
    Sleep(1000)
    Next
    If $err Then Return SetError(3,$err,0)
    Return 1
    EndFunc ;==>_BuildInZIP

    [/autoit]
  • Supreme Auction

    • BugFix
    • 4. April 2010 um 01:00

    Nun, gerade im Internet ist ein gesundes Maß an Mißtrauen angebracht. Und wenn jemand ein "Prepaid-Konto" für mich einrichten will, dann schreit doch das schon sehr laut nach Betrug. Denn dafür gibt es doch nun nicht den geringsten Anlaß. Für sowas verwendet man PayPal und das richtet man nicht über irgendwen, sondern direkt bei PayPal ein.
    Was Vertragsabschlüsse im Internet angeht: Fernabsatzgesetz! Hast du eine Widerrufsbelehrung erhalten? Wenn nein, kannst du dich ganz entspannt zurücklegen. Solange die Belehrung nicht erfolgt ist greift auch keine Kündigungsfrist. Du brauchst nicht mal Mahnungen beachten. Ich habe Ähnliches mit meinem Sohn hinter mir. Hab den Typen dann geschrieben, dass ich den Klageweg beschreite, falls ich weiterhin mit irgendwelchen Mahnungen belästigt werde und darauf verwiesen, dass der Vertrag aufgrund fehlender Widerrufsbelehrung nicht rechtsgültig ist. Zwei Tage später war die Kündigungsbestätigung da. :D
    Die kochen alle nur mit Wasser, laß dich bloß nicht ins Bockshorn jagen.

  • Geht ihr noch oft ins Kino?

    • BugFix
    • 4. April 2010 um 00:19

    Ich gehe vllt. alle 5-6 Jahre einmal ins Kino. Obwohl in Zukunft wohl eher gar nicht. Wüßte nicht wozu.
    Wenn man alles mitbekommen will muß man es eh zu Hause schauen, weil im Kino die Leute zu lange lachen od. schwätzen. :wacko:
    Um die Kohle tut es mir eh leid. Wenn ich da mit Family ins Kino gehe Zahle ich mehr als für die DVD.
    Aber selbst das Geld spare ich mir, da es in der Videothek die Teile sofort nach der Veröffentlichung gibt. Und das für 2,50 pro Tag :)

  • Wie neue Hardware zur VM hinzufügen ?

    • BugFix
    • 3. April 2010 um 13:29

    Hab es außer mit VMWare nun auch noch mit VirtualBox probiert. Dasselbe Ergebnis. Es werden ausschließlich Basisperipheriegeräte erkannt. :(

    Edit:
    Ich werd die VM's wieder runterkicken. Das ist eh die Hölle, mit 600x800 er Auflösung rumzuwurschteln

  • Wie neue Hardware zur VM hinzufügen ?

    • BugFix
    • 3. April 2010 um 11:01

    Habe mir mal testweise eine VM installiert (schon etwas ältere Version, 5.0).
    Hauptgrund: Hab mir dadrin Ubuntu installiert, weil der Kaffeine Player besser funktioniert als alle käufliche Windows-Software für DVB.
    Problem: Die VM hat meine DVB-Karte nicht "übernommen" und somit steht sie für Ubuntu auch nicht zur Verfügung. :wacko:
    Ubuntu selbst erkennt sie übrigens problemlos, wenn ich mit der Live-CD starte.

    Jemand 'ne Idee?


    Edit:
    Den Punkt "VM - Settings" habe ich natürlich gefunden, aber der Hardwarewizard gibt nur eine kleine Liste an Hardwaretypen vor - eine TV-Karte kann man darüber nicht einbinden.

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™