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

  • Dllcall geht nur teilweise

    • BugFix
    • 17. Februar 2016 um 13:20
    Zitat von loady2

    Nur anschalten lässt er sich nicht.

    Also die Parameter hast du m. M. richtig übergeben.
    Vielleicht unterstützt dein Tablet diesen Befehl nicht vollständig. Kannst du das vergleichsweise mit einer anderen Hardware testen?

  • Datei Tagging portable

    • BugFix
    • 17. Februar 2016 um 08:59

    Nach einem Jahr mal noch ein Abschlußbericht:

    Wir haben uns dann entschlossen für alle neuen Dokumente mit ELO-office zu arbeiten und dieses Mitte des Jahres dann eingeführt. Die alten Dokumente verbleiben bis zum Ende der Aufbewahrungsfrist in Papierform.
    Der Aufwand alte Dokumente zu digitalisieren steht in keinem Verhältnis zum Nutzen, da Zugriffe auf alte Dokumente keine hohe Häufigkeit haben.

  • Nach Resizing: Listviewspaltenbreite anpassen

    • BugFix
    • 16. Februar 2016 um 15:38

    Hi,
    Ich habe in einem resizeable Window ein Listview mit zwei Spalten. Die zweite Spalte soll immer den gesamten restlichen Platz im Listview einnehmen.
    Wenn ich jedoch die Größe ändere, passt sich die Spaltenbreite nicht an. Erst wenn ich danach auf den Fensterrand klicke passiert es, wie gewünscht.
    Hat jemand eine Idee?

    AutoIt
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    
    
    Global $hGui = GUICreate('Test', 600, 400, -1, -1, $WS_OVERLAPPEDWINDOW)
    Global $cLV = GuiCtrlCreateListView('A|B', 0, 30, 600, 370, -1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER))
    GUICtrlSetResizing(-1, 102) ; $GUI_DOCKBOTTOM=64, $GUI_DOCKTOP=32, $GUI_DOCKRIGHT=4, $GUI_DOCKLEFT=2
    Global $hLV = GUICtrlGetHandle($cLV)
    _GUICtrlListView_SetColumnWidth($hLV, 0, 80)
    _GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER)
    
    
    GUISetState()
    GuiRegisterMsg($WM_ENTERSIZEMOVE, '_WM_ENTERSIZEMOVE')
    
    
    Do
    Until GUIGetMsg() = -3
    
    
    Func _WM_ENTERSIZEMOVE($_hWnd, $_iMsg, $_wParam, $_lParam)
    	Local Static $aWin = WinGetPos($_hWnd)
    	Local $aWinCurrent = WinGetPos($_hWnd)
    	If $aWinCurrent[2] = $aWin[2] Then Return
            $aWin = $aWinCurrent
    	_GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER)
    EndFunc
    Alles anzeigen

    EDIT:
    Saublöd - ich hatte die falsche Message ausgewertet. Für Größenänderung ist WM_MINMAXINFO zuständig. So klappt es:

    AutoIt
    #include <WindowsConstants.au3>
    #include <GuiListView.au3>
    
    
    Global $hGui = GUICreate('Test', 600, 400, -1, -1, $WS_OVERLAPPEDWINDOW)
    Global $cLV = GuiCtrlCreateListView('A|B', 0, 30, 600, 370, -1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER))
    GUICtrlSetResizing(-1, 102) ; $GUI_DOCKBOTTOM=64, $GUI_DOCKTOP=32, $GUI_DOCKRIGHT=4, $GUI_DOCKLEFT=2
    Global $hLV = GUICtrlGetHandle($cLV)
    _GUICtrlListView_SetColumnWidth($hLV, 0, 80)
    _GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER)
    
    
    GUISetState()
    GuiRegisterMsg($WM_GETMINMAXINFO, '_WM_GETMINMAXINFO')
    
    
    Do
    Until GUIGetMsg() = -3
    
    
    Func _WM_GETMINMAXINFO($_hWnd, $_iMsg, $_wParam, $_lParam)
    	Local Static $aWin = WinGetPos($_hWnd)
    	Local $aWinCurrent = WinGetPos($_hWnd)
    	If $aWinCurrent[2] = $aWin[2] Then Return
    	$aWin = $aWinCurrent
    	_GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER)
    EndFunc
    Alles anzeigen
  • Schleifenproblem

    • BugFix
    • 16. Februar 2016 um 13:10
    Zitat von alpines

    also doch lieber mit Booleans.

    Mir ging es ausschliesslich um die Fenstererkennung. PixelSearch sollte nun wirklich niemand ernsthaft verwenden wollen.

  • Schleifenproblem

    • BugFix
    • 16. Februar 2016 um 12:44

    Das Fenster kannst du doch über seinen Namen identifizieren.
    - Dauerschleife zur Überwachung (kleines Sleep nicht vergessen)
    - abfragen If WinActive(Fenstertitel) Then _Mucke_aus_
    Fenstertitel kannst du auch als Teil des Namens verwenden mit Opt('WinTitleMatchMode', 2)

  • svchost verbraucht Internet

    • BugFix
    • 16. Februar 2016 um 09:39

    autoBert: Probiere mal, ob dir Getaktete Verbindung weiter hilft.

    EDIT: Auf diese Weise hast du dann auch automatisch das dreisterweise aktivierte WUDO abgestellt, welches dich ungefragt zum PeerToPeer-Verteiler von WinUpdates macht. :thumbdown:

  • NetzwerkSkript: Ist das mit AutoIt umsetzbar und/oder habe ich was vergessen

    • BugFix
    • 14. Februar 2016 um 15:05
    Zitat von alpines

    aber bis du die ganze IP-Range durchgescannt hast dauert das Ewigkeiten

    Naja, man kann es schon reduzieren. Unter der Annahme, dass ich mich in einem lokalen Netzwerk befinde, dass ordentlich verkabelt ist, kann ich die Anforderungen an Ping senken (Anzahl Pakete, Paketgröße, Wartezeit, TTL). Mit einem derart angepaßten Ping dauert ein kpl. Scan von 254 IP-Adressen etwa 3 min. Das ist immerhin schon Welten besser als ein nativer Ping.
    Dieses Bsp. spuckt die lebenden IPs als Array aus:

    AutoIt
    $aResult = _Scan_IPRange('192.168.178.1')
    
    
    _ArrayDisplay($aResult)
    
    
    
    
    Func _Scan_IPRange($_sIPFullStart, $_sLastByteEnd='254', $iMaxWait=100)
    	Local $sBase, $sLastByteStart, $sResult, $iDotLast = StringInStr($_sIPFullStart, '.', 0, -1)
    	$sBase = StringLeft($_sIPFullstart, $iDotLast)
    	$sLastByteStart = StringTrimLeft($_sIPFullStart, $iDotLast)
    	Local $aPID[Int($_sLastByteEnd)+1 - Int($sLastByteStart)], $iPing = Int($sLastByteStart), $sCmd
    	For $i = 0 To UBound($aPID) -1
    		$sCmd = StringFormat("%s /c ping -n 1 -l 4 -i %i -w %i -4 %s%s", @ComSpec, $iMaxWait, $iMaxWait, $sBase, $iPing)
    		$aPID[$i] = Run($sCmd, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    		$iPing += 1
    	Next
    	$iPing = Int($sLastByteStart)
    	For $i = 0 To UBound($aPID) -1
    		ProcessWaitClose($aPID[$i])
    		If StringRegExp(StdoutRead($aPID[$i]), 'Empfangen = 1') Then $sResult &= $sBase & $iPing & '|'
    		$iPing += 1
    	Next
    	Return StringSplit(StringTrimRight($sResult, 1), '|', 2)
    EndFunc
    Alles anzeigen
  • svchost verbraucht Internet

    • BugFix
    • 13. Februar 2016 um 19:26
    Zitat von Kanashius

    @autoBert
    Windowsupdates kann man doch ausstellen, bzw. auf manuell stellen

    Wie ich autoBert verstanden habe, hat er Windows 10. Meines Wissens hat M$ dort einen Zwangsupdatemodus eingebaut. Für mich ein ganz entscheidener Grund dieses System nicht zu verwenden.

  • Versionsverwaltung von Skripten, @BugFix: Frage machbar?

    • BugFix
    • 13. Februar 2016 um 16:24

    Ja das geht in beide Richtungen. Habe es zwar noch nie so genutzt, aber zumindest sagt das die Beschreibung des SciTE Director Interface.

  • Versionsverwaltung von Skripten, @BugFix: Frage machbar?

    • BugFix
    • 13. Februar 2016 um 13:04
    Zitat von autoBert

    jetzt habe ich wohl keine Ausrede mehr das Projekt aufzuschieben.

    :party:

    Ich denke es ist sinnvoll, dass du deine Versionsverwaltung auf bestimmte Dateitypen begrenzt. Die Abfrage kannst du natürlich in deinem Skript machen, aber einfacher geht das direkt im Lua-Skript und über Properties regelst du, welche Typen berücksichtigt werden. :thumbup:
    Würde dann so aussehen (den Namen der Property kannst du natürlich frei wählen):

    Code
    CallRewriteDataBase = EventClass:new(Common)
    
    
    function CallRewriteDataBase:OnClose(_filename)
    	local sFiletypes = (props['version.management.filetypes']):lower()   -- Eintrag in "SciTEUser.properties": version.management.filetypes=au3|lua|cpp
    	local sExt = (props['FileExt']):lower()                              -- Erweiterung der aktuellen Datei
    	local iMatch = sFiletypes:find(sExt)
    	if not iMatch then return end
    	os.execute('"Lw:\\DER\\PFAD\\zur-Datei.exe" '.._filename)
    end
  • NetzwerkSkript: Ist das mit AutoIt umsetzbar und/oder habe ich was vergessen

    • BugFix
    • 13. Februar 2016 um 11:31

    Da würde ich auf ein fertiges Tool zurückgreifen, z.B. Advanced IP Scanner. Der ist flink, free und deckt einen Großteil deiner Wünsche ab.

  • Versionsverwaltung von Skripten, @BugFix: Frage machbar?

    • BugFix
    • 13. Februar 2016 um 11:01
    Zitat von autoBert

    Ist es möglich mit Hilfe eines LUA-Skriptes beim Schliessen eines Skriptfiles in Scite ein Event abzufeuern, welches dann mein Programm veranlasst das Skript wieder in die DB zurück zu speichern?

    Ja, das ist möglich.
    SciTE feuert folgende Events:

    Code
    Currently, OnOpen, OnClose, OnSwitchFile, OnSave, OnBeforeSave, OnChar, OnKey, OnSavePointReached, OnSavePointLeft, OnDwellStart, OnDoubleClick, OnMarginClick, OnUpdateUI, and OnUserListSelection are supported.

    SciTE beinhaltet das "SciTE Director Interface" (s. <Hilfe zu SciTE> <SciTE4AutoIt3> <SciTE Documentation> <letzte-Zeile-Link: SciTE Director Interface>).
    Ich hatte bereits das SciTE Interface als AutoIt-UDF verfügbar gemacht. Wenn du mehr auf der Lua-Ebene machen möchtest ist das ganz nützlich.

    Um auf das Event zu reagieren brauchst du nur ein Miniskript:

    Bash
    CallRewriteDataBase = EventClass:new(Common)
    function CallRewriteDataBase:OnClose(_filename)
    	-- print('CLOSED',_filename)  -- debug
    	os.execute('"Lw:\\DER\\PFAD\\zur-Datei.exe" '.._filename)
    end

    Speichere das als eine Lua-Datei und lade diese Datei im SciTEStartup.lua an letzter Position. Wichtig bei den Pfaden: Immer doppelten Backslash.
    Wie du siehst, ruft das Luaskript nach dem Schließen einer Datei eine von dir hinterlegte exe auf und übergibt als Parameter den Dateinamen. Das kannst du dann entsprechend weiter verarbeiten.

    (Eine kleine Versionsverwaltung hatte ich ja bereits mal mit Lua erstellt.)

    Wenn noch Fragen sind - melde dich.

    EDIT: Da die geschlossene Datei im Pfad ja auch Leerzeichen enthalten kann ist es besser, den Pfad auch nochmal einzufassen:
    os.execute('"Lw:\\DER\\PFAD\\zur-Datei.exe" "'.._filename..'"')

  • Wechsel zwischen geöffneten Fenstern - Raupi's Script

    • BugFix
    • 12. Februar 2016 um 22:30
    Zitat von AutoMit

    PS: Habe ich es Dir zu verdanken, dass mein "Status" von "Fortgeschrittener" auf "Anfänger" unter dem Avatar zurückgestuft wurde?

    Wie kommst du dadrauf? Übersteigt meine Möglichkeiten.

    Zitat von AutoMit

    Du weißt nicht, woher ich die Fensterhandle als Liste habe, was ich damit tun möchte und warum das mein einziger Weg ist.

    Das ist einer der Hauptgründe, warum hier soviel daneben geht: Fehlende Infos beim Fragestellen. Das Bsp., das du eingestellt hast, gibt darüber keine Auskunft und benötigt die Funktion HWnd daher definitiv nicht. Woher sollen wir riechen, wie du zu deinen Infos kommst.
    Also bevor du hier die beleidigte Leberwurst spielst, wirf mal selbstkritisch einen Blick auf deine Angaben. Dass wir dann irgendwann auch mal genug haben und dann auch die Netiquette flöten geht verwundert nicht.
    Wenn du Zeit hast, lies mal quer durch diverse Threads - du wirst sehen, dass es i.A. hier harmonisch zugeht.

  • Wechsel zwischen geöffneten Fenstern - Raupi's Script

    • BugFix
    • 12. Februar 2016 um 21:56
    Zitat von AutoMit

    ich weiß zwar immer noch nicht, wieso es bei den anderen auch ohne HWnd klappt - aber egal.

    Weil man den Rückgabewert von WinActivate verwendet - das ist Datentyp Handle!
    Niemand ist so bekloppt und versucht eine Hexzahl als Handle zu übergeben - denn das ist nun mal nur Datentyp Hexzahl.
    Aus Hex mach Handle mit Funktion HWnd. Das hat nichts mit meisterlich zu tun, sondern mit Hilfe lesen und umsetzen.
    Thats my 2 cents.

  • UDF Dateiname / Suche austricksen

    • BugFix
    • 12. Februar 2016 um 17:15
    Zitat von AutoMit

    Warum dann nicht auch ein Script, was die Fragestellung aus Post 1 löst.

    Wenn du möchtest, schreib es dir. Dafür siehst aber nur du einen Bedarf.
    Die Fragestellung ergibt sich nämlich aus den bereits mehrfach geschilderten Gründen im Normalfall nicht. Ausnahme: Du verwendest eine UDF, die den Namen nicht verdient und bis über beide Ohren verbugt ist.
    Kopiere doch den Inhalt der Dateien mit in dein Skript, statt zu includen. Nicht schick, aber dann hast du eine direkte Zuordnung beim Debug.

  • UDF Dateiname / Suche austricksen

    • BugFix
    • 12. Februar 2016 um 16:50
    Zitat von AutoMit

    Warum ist es bloß so schwer, zielführende Antworten zu erhalten?

    Warum ist es so schwer, Fragen zu stellen, die die tatsächlichen Gegebenheiten berücksichtigen statt eines Wunschdenkens?
    Auch nicht bös gemeint. Aber du verweigerst dich permanent unseren Antworten, wie ein Kind, das sagt: Ich will, ich will, ich will.

  • UDF Dateiname / Suche austricksen

    • BugFix
    • 12. Februar 2016 um 15:33
    Zitat von AutoMit

    Wundert es Euch nicht, dass die Zeilennummer richtig über die Funktion in die Console geschrieben wird (Zeilennummer der Funktion in der UDF), der Dateiname jedoch nicht stimmt?

    DER DATEINAME STIMMT! Wie oft denn noch: Es gibt nur EINE Datei: das startende Skript. Andere Dateien, die per #Include eingebunden sind, sind zur Laufzeit des Skriptes ein Bestandteil davon, so als ob man deren Inhalt einfach in dein Skript einfügt.

  • Shutdown Abfrage Ja/Nein mit GUI

    • BugFix
    • 12. Februar 2016 um 14:28
    Zitat von moooep

    ein Bild vollflächig anzeigen

    GUISetState(@SW_MAXIMIZE)
    Wenn du es im Style $WS_POPUP erstellst, sind dann auch keine Schaltflächen zum Schließen vorhanden.
    Über die Fensterverwaltung (Win+Tab) kann man das aber übergehen. Jemanden dazu zu zwingen, unbedingt auf diesem Fenster einen Button zu klicken ist etwas umfangreicher. Da mußt du neben der Fensterverwaltung auch noch den Taskmanager sperren. Nichts, was ich dir bei deinem AutoIt-Wissensstand empfehlen würde.

  • StringRegExp Buchstaben Zahlen

    • BugFix
    • 12. Februar 2016 um 09:02
    Zitat von AutoMit

    noch was vergessen?

    In Texten können auch vorkommen: : < > | # * + - / \ ´` ' " ^ ° usw., müßig alle Zeichen aufzuführen zu wollen.
    Du solltest eher definieren, was genau NICHT enthalten sein darf. Sollte einfacher zu definieren sein. Lesbarer Text darf schließlich jedes beliebige druckbare Zeichen enthalten, somit würde sich das reduzieren auf Steuerzeichen - und die sind in der Regel in Textdaten eh nicht enthalten.

  • Übersichtliche SQL Inserts programmieren bzw. formatieren

    • BugFix
    • 12. Februar 2016 um 08:54

    So schnell gebe ich StringFormat nicht auf:
    Generiere doch Teilstrings:
    $sFields_1 = StringFormat("%s,%s,......", $Field_1 ... $Field_32)
    $sFields_2 = StringFormat("%s,%s,......", $Field_33 ... $Field_64)
    $sFields_3 = StringFormat("%s,%s,......", $Field_65 ... $Field_71)
    $sFields = StringFormat("%s,%s,%s", $sFields_1, $sFields_2, $sFields_3)

    Analog mit $sValue vorgehen.

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™