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

  • array an array hängen

    • BugFix
    • 7. April 2011 um 22:20

    Ja, geht in einer Schleife. Größe? - Schau dir UBound() an.

  • TAE-Dose "rückwärts" nutzen

    • BugFix
    • 3. April 2011 um 21:08

    Meine Zeit als "Telefoner" war vor über 20 Jahren und rein analog geprägt. Damals war es zwingend notwendig a und b richtig zu beschalten, da du nur so die "R"-Taste zum Funktionieren bringen konntest. Da war Polarität maßgebend.
    Digitale Geräte habe ich bei mr zu Haus auch selbst angeschlossen und da war es völlig egal wie ich a und b angeschlossen habe. Die von mir verwendeten Anlagen hatten a/b mittig im Stecker. Ich habe aber bei einem Bekannten mal einen Anschluß gesehen (Marke weiß ich nicht) mit a/b auf Pin 1/2 (Blick auf die Anschlüsse von vorn, Nase oben, 1=links)
    Aber die Beschaltung wirst du über den Hersteller ergoogeln können.

  • TAE-Dose "rückwärts" nutzen

    • BugFix
    • 3. April 2011 um 20:43
    Zitat von FKFK

    Wie ist denn den Standard-Belegung beim RJ11-Stecker?


    Ich hab da schon verschiedene "Herstellerlösungen" gesehen, aber im Regelfall sind die mittigen Kontakte des Steckers belegt. Wenn du a und b verwechselst, spielt das normalerweise keine Rolle. Bei älteren analogen Anlagen war das noch von Bedeutung.

  • Liste Thread-IDs zu einem Prozeß (32Bit)

    • BugFix
    • 3. April 2011 um 13:50

    Gewissermaßen als "Nebenprodukt" für eine Problemlösung brauchte ich die einem Prozeß zugehörigen Thread-IDs.
    Vielleicht kann es noch jemand anders gebrauchen.

    Edit:
    - Habe die Hilfsfunktionen jetzt in die Funktion eingebunden.
    - Bug bei Integerrückgabe gefixt

    _GetThreadsList
    [autoit]

    #include <Array.au3>
    $a = _GetThreadsList('autoit3.exe')
    ;~ $a = _GetThreadsList('autoit3.exe', 0) ; Thread-IDs als Integer
    _ArrayDisplay($a)

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

    ;===============================================================================
    ; Function Name....: _GetThreadsList
    ; Description......: Gibt alle Thread-IDs zu einem übergebenen Prozeß zurück
    ; Parameter(s).....: $vPID Prozeß-ID/-Name, dessen Thread-IDs ermittelt werden sollen
    ; $fHex Rückgabe der Thread-IDs als 8-stellige Hexzahl (True=Standard) od. Integer
    ; Return Value(s)..: Erfolg
    ; Ein 2D-Array, [0][0] enthält Anzahl der Threads, [0][1] die PID
    ; [n][0] = Thread-ID, [n][1] = Kernel base priority level des Threads.
    ; Die Priorität ist eine Zahl von 0 bis 31, wobei 0 der kleinst möglichen Threadpriorität entspricht.
    ; Fehler
    ; 0 @error=1 Prozeß nicht vorhanden
    ; -1 @error=Fehlerwert DllCall DllCall fehlgeschlagen
    ; Author(s)........: BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _GetThreadsList($vPID, $fHex=True)
    If Not IsNumber($vPID) Then
    Local $pL = ProcessList($vPID)
    If Not IsArray($pL) Then Return SetError(1,0,0)
    $vPID = $pL[1][1]
    EndIf
    Local Const $TH32CS_SNAPTHREAD = 0x00000004
    Local $ret, $SnapProcHandle, $NextProc, $TThreadEntry, $sThreads = '', $aTmp, $aCol, $thID
    Local $tTHREADENTRY32 = DllStructCreate( _
    'DWORD dwSize;' & _
    'DWORD cntUsage;' & _
    'DWORD th32ThreadID;' & _
    'DWORD th32OwnerProcessID;' & _
    'LONG tpBasePri;' & _
    'LONG tpDeltaPri;' & _
    'DWORD dwFlags;')
    DllStructSetData($tTHREADENTRY32, 'dwSize', DllStructGetSize($tTHREADENTRY32))
    $ret = DllCall('Kernel32.dll', 'int', 'CreateToolhelp32Snapshot', 'dword', $TH32CS_SNAPTHREAD, 'dword', 0)
    If @error Then Return SetError(@error,0,-1)
    $SnapProcHandle = $ret[0]
    $ret = DllCall('Kernel32.dll', 'int', 'Thread32First', 'hwnd', $SnapProcHandle, 'ptr', DllStructGetPtr($tTHREADENTRY32))
    If @error Then Return SetError(@error,0,-1)
    $NextProc = $ret[0]
    While $NextProc
    If DllStructGetData($tTHREADENTRY32, 'th32OwnerProcessID') = $vPID Then
    $thID = DllStructGetData($tTHREADENTRY32, 'th32ThreadID')
    If $fHex Then $thID = Hex($thID, 8)
    $sThreads &= $thID & Chr(1) & String(DllStructGetData($tTHREADENTRY32, 'tpBasePri')) & @LF
    EndIf
    Local $ret = DllCall('Kernel32.dll', 'int', 'Thread32Next', 'hwnd', $SnapProcHandle, 'ptr', DllStructGetPtr($tTHREADENTRY32))
    If @error Then Return SetError(@error,0,-1)
    $NextProc = $ret[0]
    WEnd
    $aTmp = StringSplit(StringTrimRight($sThreads, 1), @LF)
    Local $aOut[$aTmp[0]+1][2] = [[0,$vPID]]
    For $i = 1 To $aTmp[0]
    $aCol = StringSplit($aTmp[$i], Chr(1), 2)
    $aOut[$i][0] = $aCol[0]
    $aOut[$i][1] = $aCol[1]
    $aOut[0][0] += 1
    Next
    Return $aOut
    EndFunc ;==>_GetThreadsList

    [/autoit]

    Dateien

    _GetThreadsList.au3 2,86 kB – 198 Downloads
  • Neue Betrugsmasche: Ermittlungsverfahren..

    • BugFix
    • 3. April 2011 um 09:28

    Hi,
    z.Zt. ist mal wieder eine neue Internetbetrugswelle am Laufen. In Eurem Mail-Eingang findet Ihr dann z.B. Folgendes:

    Betreff: Ermittlungsverfahren bei Sta Stuttgart
    Absender: Rechtsanwaltskanzlei O. Kaltbrenner < conestogamf4 @ roy-iris.com > [spätestens bei der Absenderadresse bepißt man sich vor Lachen ;)]
    Body: (Kurzform) Zahle 100 EUR und deine illegalen Musikdown- u. Uploads werden nicht strafrechtlich verfolgt

    kpl. Nachricht

    Guten Tag,

    in obiger Angelegenheit zeigen wir die anwaltliche Vertretung und Interessenwahrung der Firma Sony Music Entertainment Deutschland GmbH an.

    Gegenstand unserer Beauftragung ist eine von Ihrem Internetanschluss aus im sogenannten Peer-to-Peer-Netzwerk
    begangene Urheberrechtsverletzung an Werken unseres Mandanten. Unser Mandant ist Inhaber der ausschliesslichen
    Nutzungs- und Verwertungsrechte im Sinne der §§ 15ff UrhG bzw. § 31 UrhG an diesen Werken, bei denen es sich um
    geschutzte Werke nach § 2 Abs 1 Nr. 1 UrhG handelt.

    Durch das Herunterladen urherberrechtlich geschutzer Werke haben sie sich laut § 106 Abs 1 UrhG i.V. mit
    §§ 15,17,19 Abs. 2 pp UrhG nachweislich strafbar gemacht.
    Bei ihrem Internetanschluss sind mehrere Downloads von musikalischen Werken dokumentiert worden.

    Aufgrund dieser Daten wurde bei der zustandigen Staatsanwaltschaft am Firmensitz unseres Mandanten Strafanzeige
    gegen Sie erstellt.

    Aktenzeichen: 240 Js 419/04 Sta Stuttgart

    Ihre IP Adresse zum Tatzeitpunkt: 178.200.132.102

    Illegal heruntergeladene musikalische Stucke (mp3): 11

    Illegal hochgeladene musikalische Stucke (mp3): 37

    Wie Sie vielleicht schon aus den Medien mitbekommen haben, werden heutzutage Urheberrechtverletzungen
    erfolgreich vor Gerichten verteidigt, was in der Regel zu einer hohen Geldstrafe sowie Gerichtskosten fuhrt.
    Genau aus diesem Grund unterbreitet unsere Kanzlei ihnen nun folgendes Angebot:
    Um weiteren Ermittlungen der Staatsanwaltschaft und anderen offiziellen Unannehmlichkeiten wie Hausdurchsuchungen und Gerichtsterminen aus dem Weg zu gehen, gestatten wir ihnen den Schadensersatzanspruch
    unseres Mandanten aussergerichtlich zu lösen.
    Wir bitten Sie deshalb den Schadensersatzanspruch von 100 Euro bis zum 29.03.2011 sicher und unkompliziert
    mit einer UKASH-Karte zu bezahlen. Eine Ukash ist die sicherste Bezahlmethode im Internet und
    fur Jedermann anonym an Tankstellen, Kiosken etc. zu erwerben.
    Weitere Informationen zum Ukash-Verfahren erhalten Sie unter: http://www.ukash.com/de

    Nachdem Sie den Ukash oder Paysafecard* Voucher gekauft haben, geben sie den auf unserer Homepage ein.

    * alternativ konnen Sie auch mit Paysafecard zahlen
    Link: http://www.paysafecard.com/de

    Geben Sie bei Ihrer Zahlung bitte ihr Aktenzeichen an!

    Sollten sie diesen Bezahlvorgang ablehnen bzw. wir bis zur angesetzten Frist keinen 19- stelligen
    Ukash PIN-Code im Wert von 100 Euro erhalten haben(oder gleichwertiges Paysafecard Coupon), wird der Schadensersatzanspruch offiziell
    aufrecht erhalten und das Ermittlungsverfahren mit allen Konsequenzen wird eingeleitet. Sie erhalten
    dieses Schreiben daraufhin nochmals auf dem normalen Postweg.

    Hochachtungsvoll,
    Rechtsanwalt Olaf Kaltbrenner


    Sehr originell finde ich, dass ich im Schreiben nicht angesprochen werde (logisch in Unkenntnis meiner Identität) - aber angeblich dieses Schreiben mir auch auf dem Postweg zugeht. :rofl:
    Auch zum Brüllen ist die "IP zum Tatzeitpunkt", da hat man sich mal eben im Adresspool der "UNITYMEDIA-POOL-NET" bedient, die aber - ach wie seltsam - mir gar keine IP erteilen könnte.
    Die Deutsche Sprache hat bekanntlich ihre Tücken, aber dass Umlaute sooo schwierig sind... alle "ü" wurden als "u" geschrieben. :D

    Ich persönlich würde eigentlich Niemanden für so ängstlich halten, dass er auf solchen Bockmist reagiert. Aber sicherheitshalber stelle ich es mal der Allgemeinheit zur Verfügung, und sei es nur zur Belustigung.

  • Neue AutoIt Version

    • BugFix
    • 3. April 2011 um 08:40

    Ich denke, dass zum Einen AutoIt inzwischen so gut bestückt ist, dass es schwerfällt sinnvolle Erweiterungen zu finden und zum Anderen werden einige sinnvolle Dinge, die von verschiedenen Usern weltweit vorgeschlagen wurden aufgrund einer mir absolut unerklärlichen Sturheit weiterhin ignoriert. (Mir fällt z.B. meine Lösung zu _GUICtrlListView_SimpleSort ein, die auch eine Sortierung von IParam enthält, wodurch z.B. die Item-Checkboxen mitsortiert werden. Standardmäßig unmöglich)
    Ich würde aber nicht unbedingt zu anderen Sprachen schielen um zu sehen, was da geht und hier nicht. AutoIt ist nunmal AutoIt. ;)

  • Wie sortiere ich mein ListView

    • BugFix
    • 2. April 2011 um 09:52

    Ich finde es mal wieder berauschend, welche Faulheit einige User an den Tag legen. :thumbdown:
    Sollen wir dir vielleicht noch ein Nußtörtchen backen?!
    10 Sekunden Aufwand bringen dir detaillierte und vollständige Skriptlösungen, ohne dass du User des Forums beleidigen musst!!

  • [APRIL APRIL] Autoit Version 4 nächste Woche [APRIL APRIL]

    • BugFix
    • 2. April 2011 um 09:42

    Abschließende Beurteilung: Der Scherz war gut gelungen. :thumbup: Wenn doch einige Leute draufreinfallen, zeugt das von seiner Qualität. :P
    Wer sich grämt, dass er der "Depp" war, kann ja in einem Jahr mal selbst einen platzieren. 8o

  • Arrays: Auf Zelle zugreifen

    • BugFix
    • 1. April 2011 um 17:32

    He Ilse,
    was ist dir da noch unklar?
    Da du sagtest, deine Daten liegen in CSV-Files vor, bin ich davon ausgegangen, dass du damit umgehen kannst und auch deren Struktur kennst. ;)
    Am Besten, du gibst mal deinen Wissensstatus in diesem Bereich an und dann kann man davon ausgehend gezielt erklären.

  • Combobox Indexwert auslesen

    • BugFix
    • 31. März 2011 um 13:23

    Ich habe mal ein Bsp. anhand der Combo Stadt erstellt.
    Unklar ist mir deine INI-Gestaltung. Wird das für jede Stadt eine eigene? Dann ist das OK, anderenfalls macht es keinen Sinn.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    ; ich gehe hier davon aus, dass die Combos (Stadt, Bundesland) befüllt sind

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

    ; unklar ist noch:
    ; Wird für jede Stadt eine eigene INI geschrieben?
    ; Falls nicht sollte die Sektion nicht Stadt heißen,
    ; sondern den Namen der Stadt tragen und alle zugehörigen Werte als Keys dieser Sektion
    Global $sPathINI = 'Pfad_INI.ini' ; eine? - für jede Stadt eine?

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

    Global $aStadt, $sPathStadt = 'Pfad_Stadt.csv'
    Global $sSeparatorCSV = ';' ;<== falls kein Semikolon, hier ändern
    Global $aKeys[11] = ['Stadt'] ; Array mit Keys für INI erstellen
    For $i = 1 To 10
    $aKeys[$i] = 'Wert' & $i
    Next
    _FileReadToArray($sPathStadt, $aStadt) ; Stadt.csv einlesen in Array
    ; Element1 ist Zähler, Element2 enthält Spaltenüberschriften
    ; in 2D-Array übertragen
    Global $aStadt2D[$aStadt[0]-1][11]
    Local $aTmp
    For $i = 2 To $aStadt[0]
    $aTmp = StringSplit($aStadt[$i], $sSeparatorCSV)
    For $j = 1 To $aTmp[0]
    $aStadt2D[$i-2][$j-1] = $aTmp[$j]
    Next
    Next

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

    ;...
    ;...

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Start
    _WriteINI()
    EndSwitch
    WEnd

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

    Func _WriteINI()
    Local $sStadt = GUICtrlRead($Combo1)
    Local $index = _ArraySearch($aStadt2D, $sStadt, 0, 0, 1, 0, 1, 0)
    If @error Then Return
    Local $sToWrite = ''
    For $i = 0 To 10
    $sToWrite &= $aKeys[$i] & '=' & $aStadt2D[$index][$i] & @LF
    Next
    IniWriteSection($sPathINI, 'Stadt', StringTrimRight($sToWrite, 1))
    EndFunc

    [/autoit]
  • Ausführliches Logfile

    • BugFix
    • 31. März 2011 um 09:53

    Nun, da befindest du dich in einem Dilemma. Das hört sich so an wie: Wasch mich, aber mach mich nicht naß.
    Wenn du sicher gehen willst, dass dein Log auch vorliegt, nachdem irgendein Vorgang versagt hat und evtl. dein Programm abgeschossen ist, bleibt dir tatsächlich nur ein finales Schreiben in die Log-Datei nach jedem Vorgang. Das dauert natürlich seine Zeit.
    Ich würde daher auch empfehlen, deine Programmabläufe in kritische Zonen zu unterteilen.
    Z.B. grob in relevant und wenig relevant. Dann legst du fest: wenig relevante Ereignisse sammeln und mit dem nächsten relevanten Ereignis final schreiben. Somit kannst du sicher schon einige Zeit sparen.
    Sag deinem Chef mal, er kann nicht verlangen, dass du ab sofort Sitzungsprotokolle wortwörtlich auf Papier schreibst aber gleichzeitig den Papierverbrauch senkst. :P

  • Inputbox beim schreiben auswählen

    • BugFix
    • 31. März 2011 um 09:30

    Ich habe mein Bsp. mal auf 2 Inputs mit verschiedenen Listboxinhalten erweitert. Kannst du jetzt auf beliebig viel ausbauen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ListBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListBox.au3>
    #Include <WinAPI.au3>
    #include <Misc.au3>
    Opt("GUICloseOnESC", 0)

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

    #region - Deklarationen für Sense
    Global $show = False
    Global $indexB = -1
    Global $SenseGui, $SenseCtrl, $guiBox, $box, $tmp, $currCtrl = 'Edit1' ; <== bei Start erstes Input (Achtung Anzahl Edit-Class, s. Input Create)
    Global $POSSenseGui[2]

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

    ; unterschiedliche Boxinhalte festlegen
    Global $aData1[10] = ['Birne','Alligator','Auto','Dank','Automat','Bett','Garten','Bettler','Danke','Danksagung']
    Global $aData2[12] = ['Blech','Anagramm','Arie','Dolomiten','Artist','Berlin','Domino','Balearen','Atomausstieg','Debakel','Anker','Borelie']

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

    #Region Box
    ; bei Start mit Data1 befüllen
    $guiBox = GUICreate('', 150, 85, 0, 0, BitOR($WS_SIZEBOX,$WS_POPUP), $WS_EX_TOPMOST)
    $box = _GUICtrlListBox_Create($guiBox, '', 0, 0, 150, 86, BitOR($LBS_SORT, 0x00B00002))
    ; ListBox muß 1 Pixel höher als GUI sein - sonst fehlerhafte Darstellung
    _ListBoxFill($aData1)
    #EndRegion Box

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

    Func _ListBoxFill($aData)
    For $i = 0 To UBound($aData) -1 ; falls Daten mit _FileReadToArray gelesen werden: StartIndex=1
    _GUICtrlListBox_AddString($box, $aData[$i])
    Next
    EndFunc

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

    GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND")
    GUIRegisterMsg($WM_MOVE, "_WM_MOVE")
    GUIRegisterMsg(0x231, "_WM_ENTERSIZEMOVE")
    #EndRegion - Deklarationen Sense

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

    #Region Main
    $Form1 = GUICreate('Intelli Sense Box', 400, 300, 200, 50)
    $SenseGui = $Form1 ; <== Für Allgemeingültigkeit Zuweisung an $SenseGui
    $Input1 = GUICtrlCreateInput('', 10, 10, 380, 21) ; wenn Fokus ==> "Edit1" ! - die Ziffer kann variieren, wenn noch andere Edit-Class Elemente erstellt wurden!!
    $SenseCtrl = $Input1 ; <== bei Start ist Input1 das $SenseCtrl, wechselt bei Fokusverlust
    $Input2 = GUICtrlCreateInput('', 10, 40, 380, 21) ; wenn Fokus ==> "Edit2" !
    GUISetState()
    #EndRegion Main

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

    While True
    _ChooseBox()
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
    ; Fokus abfragen:
    $tmp = ControlGetFocus($Form1)
    If StringInStr('Edit1 Edit2', $tmp, 1) Then ; hat eines der beiden Inputs den Fokus?
    If $tmp <> $currCtrl Then
    $currCtrl = $tmp
    Switch $currCtrl ; das Input mit Fokus als SenseCtrl zuweisen
    Case 'Edit1'
    $SenseCtrl = $Input1
    _GUICtrlListBox_ResetContent($box)
    _ListBoxFill($aData1)
    Case 'Edit2'
    $SenseCtrl = $Input2
    _GUICtrlListBox_ResetContent($box)
    _ListBoxFill($aData2)
    EndSwitch
    EndIf
    EndIf
    WEnd

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

    #region - SenseFunc's
    Func _ChooseBox()
    If Not $show Then Return
    If _IsPressed('0D') Then ; ENTER
    ControlSetText($SenseGui, '', $SenseCtrl, _GUICtrlListBox_GetText($box, $indexB))
    GUISetState(@SW_HIDE, $guiBox)
    $show = False
    ElseIf _IsPressed('1B') Then ; ESC
    GUISetState(@SW_HIDE, $guiBox)
    $show = False
    ElseIf _IsPressed('26') Then ; UP
    If $indexB > 0 Then
    $indexB -= 1
    _GUICtrlListBox_SetCurSel($box, $indexB)
    Sleep(90)
    EndIf
    ElseIf _IsPressed('28') Then ; DOWN
    If $indexB < _GUICtrlListBox_GetCount($box)-1 Then
    $indexB += 1
    _GUICtrlListBox_SetCurSel($box, $indexB)
    Sleep(90)
    EndIf
    EndIf
    EndFunc

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

    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $hCtrl = $lParam
    Local $hSenseCtrl = $SenseCtrl
    If Not IsHWnd($hSenseCtrl) Then $hSenseCtrl = GUICtrlGetHandle($hSenseCtrl)
    If ($nNotifyCode = 1024 Or $nNotifyCode = 6) And $hCtrl = $hSenseCtrl Then
    Local $str = ControlGetText($SenseGui, '', $SenseCtrl)
    $indexB = _GUICtrlListBox_FindString($box, $str)
    _GUICtrlListBox_SetCurSel($box, $indexB)
    $caret = _CaretPos()
    If Not @error And Not $show Then
    If $caret[3] + $caret[4] - 95 < 0 Then ; Platz für Liste über dem Ctrl ausreichend?
    WinMove($guiBox, '', $caret[0], $caret[1] +25) ; Versatz 25 (Ctrlhöhe+5) unter y vom Ctrl
    Else
    WinMove($guiBox, '', $caret[0], $caret[1] -95) ; Versatz 95 (Boxhöhe+10) über y vom Ctrl
    EndIf
    GUISetState(@SW_SHOWNOACTIVATE, $guiBox)
    $show = True
    EndIf
    ElseIf $hCtrl = $box And $nNotifyCode = 1 Then
    $indexB = _GUICtrlListBox_GetCurSel($box)
    ControlSetText($SenseGui, '', $SenseCtrl, _GUICtrlListBox_GetText($box, $indexB))
    GUISetState(@SW_HIDE, $guiBox)
    $show = False
    ElseIf $show And $nNotifyCode = 512 And $hCtrl = $lParam And Not $hCtrl = $box Then
    GUISetState(@SW_HIDE,$guiBox)
    $show = False
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func _WM_ENTERSIZEMOVE($hWnd)
    If $hWnd = $SenseGui Then $POSSenseGui = WinGetPos($SenseGui)
    EndFunc

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

    Func _WM_MOVE($hWnd)
    If $hWnd = $SenseGui Then
    Local $pos = WinGetPos($guiBox)
    Local $postemp = WinGetPos($SenseGui)
    WinMove($guiBox,"",$pos[0]-($POSSenseGui[0]-$postemp[0]),$pos[1]-($POSSenseGui[1]-$postemp[1]))
    $POSSenseGui = WinGetPos($SenseGui)
    EndIf
    EndFunc

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

    Func _CaretPos()
    Local $old = Opt("CaretCoordMode", 0) ;relative mode
    Local $c = WinGetCaretPos() ;relative caret coords
    Local $w = WinGetPos("") ;window's coords
    Local $f = ControlGetFocus("","") ;text region "handle"
    Local $e = ControlGetPos("", "", $f) ;text region coords
    Local $h = ControlGetHandle("", "", $f) ;Ctrl-Handle
    Local $t[5]
    If IsArray($c) and IsArray($w) and IsArray($e) Then
    If _WinAPI_IsClassName($SenseCtrl, 'Edit') Then ; Input wird als Edit-Class erkannt
    $t[0] = $c[0] + $w[0] + $e[0]
    ElseIf _WinAPI_IsClassName($SenseCtrl, 'ComboBox') Then
    $t[0] = $w[0] + $e[0]
    EndIf
    $t[1] = $c[1] + $w[1] + $e[1]
    $t[2] = $h
    $t[3] = $w[1]
    $t[4] = $e[1]
    Opt("CaretCoordMode", $old)
    Return $t ;absolute screen coords of caret cursor
    Else
    Opt("CaretCoordMode", $old)
    SetError(1)
    EndIf
    EndFunc
    #endregion - SenseFunc's

    [/autoit]
  • Combobox Indexwert auslesen

    • BugFix
    • 30. März 2011 um 19:10

    Ilse, du kostest mich Nerven. :wacko:
    Schon wieder sagst du, dass du die Werte hast und irgendwo eintragen willst.
    Also mal Step by Step.
    - Werte in deinem Kopf, Combo auswählen, Wert hinzufügen (per Input?), in Datei (csv, ini, ..txt egal) speichern
    - Werte in einer Datei, aus Datei einlesen, Combo.. Rest wie oben

    Sag bitte ganz genau welcher Wert von wo nach wo kommt und gespeichert werden soll.

  • Combobox Indexwert auslesen

    • BugFix
    • 30. März 2011 um 16:33

    Wir reden aneinander vorbei:
    "Ich habe je Stadt 10 unterschiedliche Zahlenwerte "
    Da liegt doch der Hund begraben, wo hast du denn diese Zahlenwerte? Ohne Kenntnis dessen läßt sich schwerlich ein sinnvoller Lösungsvorschlag machen.

  • PDF erstellen + zusammenfügen

    • BugFix
    • 30. März 2011 um 16:10

    Also sc4ry, irgendwie hast du einen Knoten im Hirn. ;)
    Wenn du per Skript festlegst welche Dateien aus welchem Ordner wann gedruckt werden, kannst du in der Zeit Kaffee trinken - manuell brauchst du rein gar nix machen. ^^

  • Tabellennamen aus SQLite-Datenbank auslesen

    • BugFix
    • 30. März 2011 um 15:29
    Zitat von funkey

    so erhalte ich 4 Tabellen wobei die erste den Namen "tbl_name" hat.


    Na das läßt sich doch ändern ;)

    [autoit]

    ;===============================================================================
    ; Function Name: _SQLite_GetTableList
    ; Description:: Gibt alle Tabellen einer geöffneten SQLite.db zurück
    ; Requirement(s): Eine mit _SQLite_Open() geöffnete DB
    ; #include <SQLite.au3>
    ; Return Value(s): Erfolg Ein Array mit den Tabellennamen der DB, an $array[0] die Anzahl
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _SQLite_GetTableList()
    Local $aRow, $hQuery, $sTable = ''
    _SQlite_Query (-1, "SELECT tbl_name FROM sqlite_master WHERE type='table';", $hQuery)
    While _SQLite_FetchData ($hQuery, $aRow, False, False) = $SQLITE_OK
    $sTable &= $aRow[0] & Chr(1)
    WEnd
    _SQLite_QueryFinalize($hQuery)
    Return StringSplit(StringTrimRight($sTable, 1), Chr(1))
    EndFunc ;==>_SQLite_GetTableList

    [/autoit]
  • Combobox Indexwert auslesen

    • BugFix
    • 30. März 2011 um 14:40

    Viel interessanter ist doch dann die Frage, woher die anderen zu schreibenden Werte kommen sollen? Sind die in irgendeiner Tabelle/Ini/Textdatei oder was auch immer. Denn erst wenn man das alles miteinander verknüpft, kommst du zu einer sinnvollen Automatisierung.

  • PDF erstellen + zusammenfügen

    • BugFix
    • 30. März 2011 um 13:12

    Viel zu umständlich, wenn du weiß, wie PDFCreator arbeitet.
    1. PDFCreator als Standard Drucker wählen
    2. (per Skript) alle deine 350 Dateien in die Druckerwarteschlange des PDFCreators drucken
    3. Wenn du willst kannst du jetzt noch immer die Reihenfolge ändern (Listview-Übersicht mit den Druckaufträgen)
    4. alle Druckaufträge zu einem PDF-Dokument drucken - ferddisch

    Ich weiß nicht, ob es evtl. ein Limit für das Datenvolumen der zu verarbeitenden Files gibt, aber 85 Worddateien mit einem Gesamtvolumen von ~100 MB hatte ich auf diese Weise schon verarbeitet.

  • Tabellennamen aus SQLite-Datenbank auslesen

    • BugFix
    • 30. März 2011 um 12:58

    Versuchs mal so:

    [autoit]

    _SQLite_GetTable($hSQL, "SELECT tbl_name FROM sqlite_master WHERE type='table';", $aResult, $iRows, $iColumns)

    [/autoit]
  • Zeitansage (Standard Std:Min und Umgangssprachlich)

    • BugFix
    • 30. März 2011 um 12:21

    Ja, die automatische Erweiterung der Sprachauswahl ist supi.
    Ich verwende auch "Scansoft Steffi" - die ist so.... erotisch. :rofl:

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™