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

Beiträge von Don

  • DLL registrieren mit Rückgabewert

    • Don
    • 3. Februar 2017 um 14:09
    Zitat von Kanashius

    Probier mal StderrRead, Fehler werden oft auch dort hineingeschrieben :)

    Hab die Funktion mal entsprechend erweitert, aber es wird immer noch nichts zurückgeschrieben.

    AutoIt
    Func _getDOSOutput($command)
        Local $etext = ''
        Local $text = '', $Pid = Run('"' & @ComSpec & '" /c ' & $command, 'C:\', @SW_HIDE, 2 + 4)
        While 1
            $text &= StdoutRead($Pid, False, False)
    			If @error Then ExitLoop
    		Sleep(10)
    	WEnd
    	While 1
    		$etext &= StderrRead($Pid)
    			If @error Then ExitLoop
    	WEnd
    	ConsoleWrite("err"& $etext & @CRLF)
        Return StringStripWS($text, 7)
    EndFunc   ;==>_getDOSOutput
    Alles anzeigen
  • DLL registrieren mit Rückgabewert

    • Don
    • 3. Februar 2017 um 12:07

    Hallo,

    ist es möglich eine DLL zu registrieren bzw. deregistrieren und dazu einen Rückgabewert zu erhalten?
    Ich möchte wissen, ob die Ausführung des Befehls erfolgreich war oder ob ein Fehler aufgetreten ist.

    Habe es mit dem folgenden Code probiert, aber da kommt leider nix zurück. Wird wohl nichts nach StdOut geschrieben.
    Alternativen?

    AutoIt
    ConsoleWrite(_getDOSOutput('regsvr32.exe /u /s '& $sFilepath)& @CRLF)
    
    
    Func _getDOSOutput($command)
        Local $text = '', $Pid = Run('"' & @ComSpec & '" /c ' & $command, 'C:\', @SW_HIDE, 2 + 4)
        While 1
                $text &= StdoutRead($Pid, False, False)
                If @error Then ExitLoop
                Sleep(10)
        WEnd
        Return StringStripWS($text, 7)
    EndFunc   ;==>_getDOSOutput
    Alles anzeigen

    Viele Grüße

  • Prozedur in MS Access rufen

    • Don
    • 7. Januar 2014 um 17:52

    Vielen Dank!
    Problem damit gelöst.

  • Prozedur in MS Access rufen

    • Don
    • 6. Januar 2014 um 10:47

    Hallo,

    Habe in einer MS Access DB ein Modul angelegt, nennen wir es MyModule, und darin eine Prozedur geschrieben

    Public Sub MyProcedure()
    ..
    End Sub

    Hat jemand Erfahrung wie man diese Prozedur via AutoIt rufen könnte?
    Habe es mal wie folgt probiert, aber es kommt immer nur der allgemeine Fehler 80020009 zurück (falsche Parameter etc.)

    [autoit]


    $oConn = ObjCreate("ADODB.CONNECTION")
    $oConn.Open('Driver={Microsoft Access Driver (*.mdb)}; DBQ=' & $sADB & ';')
    $oConn.Call "MyProcedure"

    [/autoit]

    Datenbank-Verbindung via AutoIt funktioniert.
    Wenn das Modul in Access gestartet wird, geht es auch.
    Es scheint also an der Art des Aufrufes zu liegen.
    In der Prozedur selbst wird ein Sack von Aktualisierungsabfragen gerufen, um leere Felder mit Schlagworten zu aktualisieren.
    Da der Datenimport via Autoit selbst schon funktioniert, wäre der abschließende Aufruf der Prozedur das Sahnehäubchen auf mein Skript.

    Vielen Dank im Voraus.

  • GrooveLoad - ein Grooveshark Downloader

    • Don
    • 30. Dezember 2013 um 12:01

    Konnte es zuerst gar nicht glauben, dass das funktioniert.
    Tut es aber!
    Bin begeistert.

    Kurze Frage.
    Auf einem Rechner ohne Internetverbindung (oder Verbindungsproblemen) läuft das Programm in einer Art Endlos-Schleife.
    Gibt es da keinen geordneten Rückzug/Ausstieg?

  • Fehlerabfrage bei COM Objekten

    • Don
    • 29. Dezember 2013 um 11:51

    Danke für den Vorschlag.

    Ich habe nun versucht in der Fehlerfunktion MyErrFunc über SetError(1) den Fehlercode @error auf 1 zu setzen und diesen im normalen Coding abzufangen.
    Das funktioniert aber leider nicht.
    Im Debugger hat @error innerhalb von MyErrFunc noch den Wert 1, aber im Hauptprogramm dann -214...
    Was muss ich beachten?

  • Fehlerabfrage bei COM Objekten

    • Don
    • 27. Dezember 2013 um 17:17

    Hallo,

    Lese Daten aus einer CSV-Datei aus und möchte diese in einer Access-DB speichern.
    Funktioniert auch grundsätzlich.
    Dabei kann es aber vorkommen, dass ein Datensatz nicht gespeichert werden kann, weil schon vorhanden (doppelter Datensatz nicht erlaubt).
    Also Fehlerbehandlung für COM Objekte eingefügt.

    [autoit]


    Global $oMyError = ObjEvent("AutoIt.Error","MyErrFunc")

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

    ...

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

    Func MyErrFunc($oMyError)
    Local $HexNumber
    Local $strMsg

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

    $HexNumber = Hex($oMyError.Number, 8)
    $strMsg = "Error Number: " & $HexNumber & @CRLF
    $strMsg &= "Error Description: " & $oMyError.description & @CRLF
    $strMsg &= "Script Line: " & $oMyError.ScriptLine & @CRLF
    MsgBox(0, "ERROR", $strMsg)
    Endfunc

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

    Wie kann ich den Fehler abfangen, damit ich ihn für ein Log wegschreiben kann (Number und Description)?
    Ziel ist, das Skript durchlaufen zu lassen, ohne dass dieser Fehler einen Abbruch macht.
    Zudem habe ich festgestellt, dass die Fehlerfunktion zweimal gerufen wird, einmal beim Recordset.Update und dann beim Recordset.Close.
    Die Infos, die ich brauche stehen im Recordset.Update. Wie kann ich den Fehler bei Recordset.Close ignorieren?

    Vielen Dank im Voraus.

  • Frage zu Combobox und Werteauswahl

    • Don
    • 25. August 2010 um 15:23

    Hallo autoBert,

    Danke für den Tipp, das klappt im Prinzip.
    Hast Du noch eine Idee wie ich bei mehreren ComboBoxen auf einer Gui das Handle der gerade aktiven Combobox kriege?

    Gruß,
    Don

  • Frage zu Combobox und Werteauswahl

    • Don
    • 20. August 2010 um 13:51

    Hallo Bert,

    Du hast natürlich recht.
    Hatte dummerweise ein Komma vergessen :sleeping:

    Aber, das Ergebnis begeistert mich eigentlich auch nicht.
    Man sieht z.B. nicht welche Einträge alle verfügbar wären.
    Was ich eigentlich gerne hätte, sähe so aus.

    Klick auf Combobox -> Liste mit allen Einträgen klappt auf.
    Eintrag eines Buchstabens im ersten leeren Feld -> Selektion des ersten Eintrages, der dieser Ziffer entspricht.
    Eintrag eines weiteren Buchstabens -> Selektion des ersten Eintrages, der dieser Kombination entspricht usw.

    Ginge das?

    Gruß,
    Don

  • Frage zu Combobox und Werteauswahl

    • Don
    • 19. August 2010 um 14:36

    Hi Bert,

    Danke für den Vorschlag.
    Die Änderung zeigt leider auch keine Verbesserung zum bisherigen Verhalten.
    Alles wie gehabt.
    Gruß,
    Don

  • Frage zu Combobox und Werteauswahl

    • Don
    • 19. August 2010 um 13:47

    Mein Coding ist wie folgt (in Auszügen):

    [autoit]


    ;Comobox anlegen
    $hdlcboSys = GUICtrlCreateCombo("", 10, 30)

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

    ;Werte aus einer ini einlesen
    If Not FileExists($strIniDat) Then
    MsgBox(0, "Info", "ini-Datei existiert nicht.")
    Exit
    Else
    $aIni = IniReadSection($strIniDat, "MSSysName")
    For $i = 1 To $aIni[0][0]
    GUICtrlSetData($hdlcboSys, $aIni[$i][1])
    Next
    _GUICtrlComboBox_SetCurSel($hdlcboSys, -1)
    EndIf

    [/autoit]

    Zusätzlich noch einen Screenshot angehängt, der das Gesagte etwas deutlicher macht.

    Dateien

    ai.jpg 23,76 kB – 0 Downloads
  • Frage zu Combobox und Werteauswahl

    • Don
    • 19. August 2010 um 12:01

    Hallo,

    habe eine Gui, auf der eine Combobox mit rund 100 Einträgen liegt.
    Einträge sehen ungefähr so aus
    A3P, ALA,N7Q,PLC etc.
    Problem:
    Wenn ich die Combo aufklappe werden ca. 30 Werte angezeigt.
    Das hat zur Folge, dass das Autocomplete nicht so funktioniert wie ich es gerne hätte.
    Wenn ich z.B. ein "U" über die Tastatur eingebe, steht oben an ersten Stelle ein String, der mit "P" anfängt.
    Das Problem scheint in der fixen Anzahl der aufgeklappten Werte zu liegen, weil eigentlich nicht mehr 30 Werte angezeigt werden sollen, sondern nur noch alle, die nach "U" kommen, also z.B. 10 Werte.
    Bei den oberen Werten, also solche die mit A beginnen ist das noch kein Problem.

    Wie kann man das benutzerfreundlicher gestalten?

    Vielen Dank im Voraus.

    PS: Hoffe das ist verständlich erklärt ?(

  • Ereignisse von dynamisch erzeugten Gui-Elementen verarbeiten

    • Don
    • 28. Juli 2010 um 17:05

    Hallo Darter,
    Danke für die schnelle Antwort.
    Nun bekomme ich das Ereignis :D , aber .. ich lande in einer Endlosschleife ;( , da der selektierte Radiobutton nun endlos prozessiert wird. Mein Wunsch wäre das Ereignis nur einmal zu prozessieren.
    Noch ne Idee?
    Gruß,

  • Ereignisse von dynamisch erzeugten Gui-Elementen verarbeiten

    • Don
    • 28. Juli 2010 um 15:40

    Hallo,

    habe eine Gui, auf der ich dynamisch eine Gruppe von Radio-Buttons anlege

    [autoit]


    For $z = 1 to $i
    $ahdlRadio[$z - 1] = GUICtrlCreateRadio($aRadio[$z - 1], 15, 60 + 30 * $z, 340, 20)
    Next

    [/autoit]

    Wie kann ich jetzt bei der Auswahl eines Radiobuttons ein Ereignis zuordnen?
    Testweise habe ich es mal so versucht, aber es passiert nichts:

    [autoit]


    While 1
    $msg = GUIGetMsg()
    For $z = 1 to $i
    If $ahdlRadio[$z - 1] = $msg Then
    MsgBox(0,"hallo","")
    EndIf
    Next
    WEnd

    [/autoit]

    Danke schon mal im Voraus für Eure Anregungen.
    Gruß,
    Don

  • XML Parser

    • Don
    • 26. Juli 2010 um 14:59

    Ich verneige mich ehrfurchstvoll vor dem Meister und bedanke mich für die kompetente Hilfe :thumbup:

  • XML Parser

    • Don
    • 23. Juli 2010 um 15:30

    Siehe Anhang.
    Vielen Dank.

  • XML Parser

    • Don
    • 23. Juli 2010 um 15:20

    Hallo,

    versuche mich gerade am XML Parser _XMLDomWrapper.au3, komme aber nicht weiter. Habe schon einige Zeit im englischsprachigen Forum gestöbert, aber die verwendeten XML-Datein sind dort ganz anders aufgebaut. Siehe dazu mein Beispiel-XML unten.
    Kann mir jemand verraten wie man auf die Werte der Ports zugreift, also hier die Werte 1080, 1090 und 443.
    Versuche über _XMLGetValue("/..) scheiterten, da nicht klar ist welcher Pfad angegeben werden muss. /section/key/key.. usw ist es auf jeden Fall nicht.
    Schon mal vielen Dank im Voraus für jegliche Tipps.

    Gruß,
    Don

    XML
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE section [
     <!ELEMENT section (key | value)*>
     <!ATTLIST section
           name CDATA #REQUIRED>
     <!ELEMENT key (key | value)*>
     <!ATTLIST key
           name CDATA #REQUIRED>
     <!ELEMENT value (#PCDATA)>
     <!ATTLIST value
           name CDATA #REQUIRED
           type (text|number) #REQUIRED>
     ]> 
    
    
    <section name="WG">
     <key name="LocWg">
      <key name="WG_APACHE">
       <key name="Urls">
    <key name="Url1">
     <key name="Values">
      <value name="Protocol" type="text"/>
      <value name="Host" type="text">HostA</value>
      <value name="Port" type="text">1090</value>
      </key>
    </key>
    <key name="Url2">
     <key name="Values">
      <value name="Protocol" type="text"/>
      <value name="Host" type="text">HostA</value>
      <value name="Port" type="text">1080</value>
      </key>
    </key>
    <key name="Url3">
     <key name="Values">
      <value name="Protocol" type="text">https</value>
      <value name="Host" type="text">HostA</value>
      <value name="Port" type="text">443</value>
      </key>
    </key>
       </key>
      </key>
     </key>
    </section>
    Alles anzeigen
  • Label, Darstellung nach Änderung

    • Don
    • 6. Juli 2010 um 15:29
    Zitat von tuttifrutti

    Die richtige antwort war eigentlich schon genannt >_>

    Lass gut sein, ist schon genug Salz in meiner Wunde :whistling:

  • Label, Darstellung nach Änderung

    • Don
    • 6. Juli 2010 um 15:20

    Pixel! Arg.. ;(
    Asche auf mein Haupt.
    Vielen Dank.

  • Label, Darstellung nach Änderung

    • Don
    • 6. Juli 2010 um 15:07
    Zitat von Ineluki

    Mach die Weite das Labels einfach länger.


    80 vordefinierte Zeichen sollten für einen Text von ca. 25 Zeichen doch reichen!?

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™