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

  • Nach dem compilen, Fehlermeldungen verallgemeinern oder entfernen?

    • BugFix
    • 7. November 2013 um 19:43
    Zitat von attaxx

    kommen wir zurueck zu meiner Frage


    Das war eine Antwort auf deine Frage! Das Vermeiden und Abfangen von Fehlern ist die einzig akzeptable Lösung.
    Du willst doch nicht ernsthaft Fehlbedienungen ermöglichen und wartest jetzt auf die Eierlegende Wollmilchsau, die diese Fehler für dich abstellt.. :wacko:

  • FSK im Internet (Info)

    • BugFix
    • 7. November 2013 um 16:57

    Ich war ein paar Tage nicht on und weiß daher nicht, was genau hier gesagt und als anstößig empfunden wurde.
    Grundsätzlich bin ich gegen überzogene Reglementierung. Ob die Inhalte tasächlich irgendwelche FSK-Kriterien tangiert haben weiß ich nicht, hege aber meine Zweifel daran.
    Wenn in der SB tote Hose ist, stört es mich persönlich nicht wenn artfremde Themen bearbeitet werden. Jedoch sollte sofort bei Auftreten von AutoIt-relevanten Postings darauf gebührend Rücksicht genommen werden.
    Bei allen Themen macht der Ton die Musik. Und ein Gag wird nicht lustiger, wenn man diesen in 30 weiteren Varianten wiedergibt.
    Also bei allem Maß halten und allen ist gedient.
    Ich denke nicht, dass Jugendgefährdung in irgendeiner Weise hier im Raum steht - man kann seine Bewertung von Gelesenem auch mit der falschen Brille betrachten. Extremismus sollte in jeder Richtung unterbleiben.

  • Nach dem compilen, Fehlermeldungen verallgemeinern oder entfernen?

    • BugFix
    • 7. November 2013 um 16:39
    Zitat von attaxx

    aber z.b. dass dann Arrayfehlermeldungen dann nicht als Arrayfehlermeldung erscheinen sondern als z.B: Skript hat ein Fehler -> Crash


    Sorry - aber so etwas DARF in einem kompilierten Skript nicht auftreten. Dann hast du fehlerhaft programmiert.
    Bis zu 60 % macht das ordentliche Errorhandling in einem Programm aus. Du mußt jede noch so absurde Situation vorhersehen und abfangen. Crashen darf ein Skript niemals.
    Die einzig zulässigen Fehlermeldungen sind Infos an den User, wenn er Fehleingaben getätigt hat.

  • SSD - Hilfe bei Kaufentscheidung

    • BugFix
    • 3. November 2013 um 09:58

    Wenn deine Rechner(bzw. deine Hardwarekomponenten) in der Kompatibilitätsliste ist, kannst du auf Win7 ja ein Virtual XP nutzen. Mit HDD ist das relativ lahm beim Laden aber auf einer SSD gehts geschmeidig fix. Insofern habe ich bei mir auf Dualboot verzichtet und nutze XP bei Bedarf in der Virtual - Umgebung.

  • _IENavigate Error bei Lokaler Html

    • BugFix
    • 3. November 2013 um 09:44

    Vielleicht solltest du dein Embedded IE auch mal in eine GUI einbinden? Einfach nur das Objekt erstellen reicht nicht, von allein wird es sich in keine GUI einnisten. ;)
    Schau dir einfach mal das Hilfebsp. an.

  • doppelte Einträge finden, jedoch nur Text bis zu bestimmten Zeichen vergleichen

    • BugFix
    • 3. November 2013 um 09:35
    Zitat von sc4ry

    Kann ich per SQL mitgeben, dass er den a.title nur bis zu der Zeichenfolge " - " vergleichen soll?


    Ja klar, deine Vergleichsmethode ist eigentlich einer SQL-DB unwürdig (mit "="). Damit findet man ja wirklich nur einen sehr fixen Datenbestand. Hast du schonmal was von LIKE gehört? ;) Damit kannst du die Suche wesentlich flexibler gestalten. LIKE und IN sind meine persönlich am Häufigsten genutzten Suchmethoden.

  • Keine E-Mail Benachrichtigung 2

    • BugFix
    • 3. November 2013 um 09:25
    Zitat von Bluesmaster

    Falls letzteres kann ich nur empfehlen es als Standart-Einstellung zu handhaben, so funktionieren 90% aller Foren und wüsste nicht was dagegen spricht.


    Ich bin der Meinung, weniger ist mehr. Wer möchte kann das ja aktivieren. Aber wozu soll ich unnötigen Traffic generieren, wenn es nicht gewollt ist?
    Und ich suche das Forum ja nicht nur auf, wenn es eine Antwort auf ein bestimmtes Thema gegeben hat, dazu bin ich viel zu sehr Forist. ;)

    (übrigens heißt es Standard - einfach an Standardisierung denken ;))

  • Aufhänger bei _sendMessage

    • BugFix
    • 2. November 2013 um 19:28
    Zitat von Bluesmaster

    Frage beantwortet.


    Bitte setze deinen Startpost auf "gelöst".

  • Laustärke einzelner Audiogeräte

    • BugFix
    • 31. Oktober 2013 um 22:48

    Alle AutoIt-Lösungen sind hier leider ein Rumgemurkse.
    Verwende besser NirCmd.

  • Aufhänger bei _sendMessage

    • BugFix
    • 30. Oktober 2013 um 22:04

    Hi,

    ist noch einfacher als ich dachte:

    [autoit]


    #Include <Constants.au3>
    #Include <WinAPI.au3>

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

    $WM_MEINE_MESSAGE = _WinAPI_RegisterWindowMessage("MEINE_MESSAGE")

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

    $hGUI = GUICreate("Test")
    GUISetState()

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

    GUIRegisterMsg($WM_MEINE_MESSAGE , '_WM_MEINE_MESSAGE')

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

    _SendString($hGUI, $WM_MEINE_MESSAGE, 'Test-String')

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

    Func _SendString($hWnd, $iMsg, $sString)
    _SendMessage($hWnd, $iMsg, StringLen($sString), $sString, 0, "wparam", "str")
    ; == als "wParam" übergibst du die Stringlänge, "lParam" wird nicht verwendet sondern "str"
    ; == In der Messagefunktion wird der String als Pointer empfangen
    ; == Mit Hilfe der übergebenen Stringlänge wird der Pointer in eine Struktur entladen und ausgelesen
    EndFunc

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

    Func _WM_MEINE_MESSAGE( $hWnd , $iMsg , $wParam , $lParam)
    Local $sLen = BitAND($wParam, 0xFFFF) ; Low Word
    Local $tMsg = DllStructCreate('char[' & $sLen & ']', $lParam)

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

    ConsoleWrite(DllStructGetData($tMsg, 1) & @LF)
    EndFunc

    [/autoit]

    Edit:
    Wenn du mit deiner eigenen Message unterschiedliche Varianten senden möchtest (also eventuell mal String, mal Struktur), kannst du dazu auch einfach "wparam" nutzen. Du setzt dann z.B. im Lo-Byte die Länge und im Hi-Byte "-1" als Trigger dass ein String übergeben wurde.
    Hier mal im Bsp. beide Versionen

    Spoiler anzeigen
    [autoit]

    #Include <Constants.au3>
    #Include <WinAPI.au3>

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

    Global $tag_MY_SENDSTRUCT = "int size;char timestring[8];char datestring[10];" ; == eigene Struktur-Konstante

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

    $WM_MEINE_MESSAGE = _WinAPI_RegisterWindowMessage("MEINE_MESSAGE")

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

    $hGUI = GUICreate("Test")
    GUISetState()

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

    GUIRegisterMsg($WM_MEINE_MESSAGE , '_WM_MEINE_MESSAGE')

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

    ; == Text senden
    _SendMyMessage($hGUI, $WM_MEINE_MESSAGE, 'Test-String')

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

    ; == Struktur senden
    $tSEND = DllStructCreate($tag_MY_SENDSTRUCT)
    $pSEND = DllStructGetPtr($tSEND)
    DllStructSetData($tSEND, 1, DllStructGetSize($tSEND))
    DllStructSetData($tSEND, 2, @HOUR & ':' & @MIN & ':' & @SEC)
    DllStructSetData($tSEND, 3, @YEAR & '/' & @MON & '/' & @MDAY)
    _SendMyMessage($hGUI, $WM_MEINE_MESSAGE, $pSEND, 0)

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

    Func _SendMyMessage($hWnd, $iMsg, $lParam, $wParamLo=-1, $wParamHi=0)
    Local $s_lParam = 'lparam'
    If $wParamLo = -1 Then ; == lParam ist String
    $wParamLo = StringLen($lParam)
    $wParamHi = -1
    $s_lParam = 'str'
    EndIf
    _SendMessage($hWnd, $iMsg, _WinAPI_MakeLong($wParamLo, $wParamHi), $lParam, 0, "wparam", $s_lParam)
    EndFunc

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

    Func _WM_MEINE_MESSAGE( $hWnd , $iMsg , $wParam , $lParam)
    Local $iLo = BitAND($wParam, 0xFFFF)
    Local $iHi = BitShift($wParam, 16)
    If $iHi = -1 And $iLo > 0 Then ; == String
    Local $sLen = $iLo
    Local $tMsg = DllStructCreate('char[' & $sLen & ']', $lParam)
    ConsoleWrite(DllStructGetData($tMsg, 1) & @LF)
    Else
    Local $tRECEIVE = DllStructCreate($tag_MY_SENDSTRUCT, $lParam)
    ConsoleWrite('Size' & @TAB & DllStructGetData($tRECEIVE, 1) & @LF)
    ConsoleWrite('Time' & @TAB & DllStructGetData($tRECEIVE, 2) & @LF)
    ConsoleWrite('Date' & @TAB & DllStructGetData($tRECEIVE, 3) & @LF)
    EndIf
    EndFunc

    [/autoit]
  • Aufhänger bei _sendMessage

    • BugFix
    • 29. Oktober 2013 um 21:25
    Zitat von Bluesmaster

    Wie versende ich einen String als Window Message?


    Ich habs bisher nicht gebraucht, würde aber versuchen den String in eine Struktur zu packen (0-terminiert) und dann versenden. Dann kannst du den empfangenen Pointer sofort in eine identische Struktur entpacken und hast den Wert.

  • Textbreite ermitteln

    • BugFix
    • 29. Oktober 2013 um 21:17

    Na die Funktion steckt doch drinnen: btMeasureClick() nimmt die Berechnung vor, mit den Werten die in der GUI eingegeben wurden.
    Das su vereinzeln sollte doch kein Problem darstellen.

  • Aufhänger bei _sendMessage

    • BugFix
    • 29. Oktober 2013 um 21:11

    Nun, das kann natürlich nicht funktionieren, da du den Hook auf einem nicht existierenden Fensetr aufsetzt!

    [autoit]

    $autoItWin = WinGetHandle( AutoItWinGetTitle() )

    [/autoit]

    Das gibt es gar nicht zu diesem Zeitpunkt.Verwende einfach mal:

    [autoit]

    $autoItWin = WinGetHandle( WinGetTitle('[ACTIVE]') )

    [/autoit]

    , dann siehst du, dass es funktioniert. ;)

  • Aufhänger bei _sendMessage

    • BugFix
    • 29. Oktober 2013 um 19:08

    Also ich kann einen Crash nur reproduzieren, wenn die Mainloop ohne jede Unterbrechung läuft.
    Ich arbeite viel mit Message-Hooks und hatte bisher noch nie einen permanenten Fehler. AutoIt ist nicht optimal im Umgang mit Callbacks, aber trotzdem sind Crashs recht selten.
    Ich habe z.B. ein Kontextmenü-Ctrl darauf basierend erstellt und das habe ich noch nie gecrasht.

  • Textbreite ermitteln

    • BugFix
    • 29. Oktober 2013 um 18:31

    Guckst du: Textmeter

  • Aufhänger bei _sendMessage

    • BugFix
    • 29. Oktober 2013 um 18:23

    Funktioniert tadellos, wenn du deine Programmschleife mal aus der Dauerlast nimmst und Sleep oder GuiGetMsg einbaust. ;)

    Spoiler anzeigen
    [autoit]

    #Include <Constants.au3>
    #Include <WinAPI.au3>
    #Include <WindowsConstants.au3>

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

    $hDateGuiWrapper = GUICreate( "" )
    GUISetState() ; SOBALD DAS AUSKOMMENTIERT WIRD HÄNGT SICH DAS SKRIPT AUF OHNE FEHLERMELDUNG !!!!!

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

    $hHook = DllCallbackRegister( '_WinProc' , 'ptr' , 'hwnd;uint;long;str' ) ; 1 - Callback vorbereiten:
    $pHook = DllCallbackGetPtr( $hHook )

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

    $autoItWin = WinGetHandle( AutoItWinGetTitle() )
    $hProc = _WinAPI_SetWindowLong( $autoItWin , $GWL_WNDPROC, $pHook ) ; 2 - Window Proc austauschen

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

    $WM_TEST = _WinAPI_RegisterWindowMessage( "testMessage" ) ; 3 - eigene Window-Message-Art erstellen:

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

    _SendMessage( $autoItWin , $WM_TEST , 55 , "Test" , 0 , "wparam" , "str" ) ; 4 - Testnachricht schicken

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

    While 1
    Switch GUIGetMsg()
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func _WinProc( $hWnd , $iMsg , $wParam , $lParam )
    Local $Res = _WinAPI_CallWindowProc( $hProc, $hWnd, $iMsg, $wParam, $lParam )
    if $wParam == 55 Then
    ;~ Beep( 500, 200 )
    ConsoleWrite('BLA' & @LF)
    EndIf
    Return $Res
    EndFunc

    [/autoit]


    NB: "==" ist für sensitiven Vergleich bei Strings, für alle anderen Vergleiche reicht das "=".

  • SciTE - Hotkeys unlimited, Neue Funktionen (Run selected Code, Move selection left/right/up/down u.a.)

    • BugFix
    • 29. Oktober 2013 um 12:14
    Zitat

    Excellent! Völlig unterschätzter Thread imo.


    :rolleyes: Danke.
    Ich hoffe, du hast die im Startpost verlinkte AddOn-Variante (OwnHotKeys) verwendet. Die ist noch komfortabler und umfangreicher als die Variante aus diesem Thread hier. ;)

  • SciTE-AddOn: OwnHotKeys (inkl. Installer) EDIT: neu "DebugAU3.lua"

    • BugFix
    • 29. Oktober 2013 um 12:10

    Neue Funktion: OHK.ShellExecute() - beliebige Dateien mit ihrem verknüpften Programm ausführen
    Vorerst noch nicht in der Datei enthalten, zur Integration siehe Post #1.

  • Alien und VCLua für SciTE

    • BugFix
    • 29. Oktober 2013 um 11:56
    Zitat von progandy

    Download und Dokumentation für die SciTE-ru GUI befinden sich hier:
    http://scite-ru.googlecode.com/svn/trunk…/LuaLib/gui.dll
    http://scite-ru.googlecode.com/svn/trunk…i/docs/gui.html

    Ich habe heute erstmals versucht die gui.dll anzuwenden. Aber das ist leider eine Nullnummer. Die Dokumentation enthält ebenso, wie die Examples, Funktionen, die in der dll gar nicht existieren.

    Wenn man die gui.dll einbindet werden folgende Funktionen nach SciTE exportiert:

    gui.dll - Export
    Code
    add					
    add_buttons			
    add_column			
    add_item			
    add_tab				
    autosize			
    bounds				
    clear				
    client				
    context_menu		
    count				
    delete_item			
    get_item_data		
    get_item_text		
    get_selected_item	
    get_selected_items	
    get_text			
    hide				
    insert_item			
    on_close			
    on_double_click		
    on_focus			
    on_key				
    on_select			
    on_show				
    position			
    remove				
    selected_count		
    set_list_colour		
    set_memo_colour		
    set_selected_item	
    set_text			
    show				
    size
    Alles anzeigen
    Inhalt lt. Doku - aber nicht exportiert
    Code
    colour_dlg   -- Farbauswahl
    list         -- Listview
    memo         -- Richedit
    message      -- MessageBox
    open_dlg     -- FileOpenDialog
    panel        -- SeitenPanel
    prompt_value -- InputBox
    run          -- analog zu ShellExecute
    tabbar       -- Tab Ctrl
    toolbar 
    window
    Alles anzeigen

    Und gerade bei diesen fehlenden Punkten sind die Grafik-Objekte.
    Die gui.dll ist somit leider nicht einsetzbar.

    EDIT 19.01.2014
    Ich muss mich korrigieren - die Dll ist einsetzbar. Allerdings ist sie (aus meiner Sicht) mit einem Syntax-Fehler behaftet, aus dem meine Verwirrung resultierte.
    Bibliotheken lassen sich in Lua wie folgt einbinden:

    Code
    -- Variante 1:
    Variable = require "Modul"
    -- Elemente des Moduls lassen sich mit "Variable.Element/Methode" ansprechen
    
    
    -- Variante 2:
    require "Modul"
    -- Elemente des Moduls lassen sich mit "Modul.Element/Methode" ansprechen


    Die gui.dll ermöglicht den Zugriff auf die Elemente nur mit Variante 2, wohingegen die Methoden auch mit Variante 1 exportiert werden. Da wurde wohl in der Dll geschlampt und vergessen die Objekte zu exportieren. Wenn man weiß, dass dem so ist, ist es ja nicht dramatisch. Aber diese Tatsache ist in der (sowieso unterirdisch mangelhaften) Doku nicht erwähnt.
    Im Allgemeinen ist es empfehlenswert, Module mit Variante 1 zu laden, um diese in den Lokalen Space importieren zu können. Mit Variante 2 bin ich gezwungen immer den Globalen Space zu nutzen - und das ist eine Performancebremse. Lua hat die beste Performance im Lokalen Space.

  • vordefinierte Boxen in schwarz (BK) darstellen?

    • BugFix
    • 28. Oktober 2013 um 20:16
    Zitat von sc4ry

    Eine Inputbox selber basteln ist zwar nicht so schwer, allerdings dürfte das bei FileSelectFolder schon wieder anders aussehen.


    Nö, ist nicht schwer - solltest auch du auf die Reihe bekommen.

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™