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

  • WIN NEU-AB-RU Manager

    • BugFix
    • 15. Oktober 2009 um 01:04

    @slin: Das Forum hier heißt Skripte und nicht Links zu Downloads.
    Wenn du uns etwas zeigen willst, kannst du es hier auch posten.

  • Autostart Laufwerke

    • BugFix
    • 12. Oktober 2009 um 00:12
    Zitat von DjDominik

    Mich wundert immer Welche Tollen Ideen du doch Hast.


    Mich auch :rofl:
    Scherz beiseite, ich habe eine Projektliste, in der ich meine Ideen verewige. Und die wird immer länger. Solch kleine Sachen, wie das hier macht man ja mal nebenbei. Aber etwas komplexeres, wie z.B. meine ListviewFormat-UDF hat insgesamt etwa 1/2 Jahr Arbeit geschluckt.
    Und der Tag hat leider nur 24 h. ;)

  • Autostart Laufwerke

    • BugFix
    • 10. Oktober 2009 um 14:54

    Da man im Windows XP Home ja keine Gruppenrichtlinien hat um den Autostart der Laufwerke zu managen, habe ich mal ein kleines Tool dafür erstellt, das den entsprechenden Registryeintrag ausliest und neu setzt.
    Standardmäßig wird auf Eintrag unter HKCU geprüft, falls dort nichts steht, wird HKLM verwendet.
    Gerade für Wechseldatenträger (die meisten USB-Sticks werden als solche erkannt) und USB-Festplatten (werden als Festplatten erkannt) macht es Sinn den Autorun zu deaktivieren.
    Steckt man z.B. eine 500 GB externe Platte an, die auch noch voll ist, kann man Kaffe trinken gehen, bis die vom Autorun eingelesen wurde. :D
    Zum Anderen bietet die autorun.inf gerne Schädlingen Unterschlupf :cursing: (Möchte nicht wissen, wie oft Conficker sich allein durch Anstöpseln von USB-Sticks vermehrt hat.)

    Edit: Nicht vergessen - geänderte Einstellungen werden erst mit einem Neustart aktiv. ;)
    Edit 2: Ich bin grad total perplex. :wacko: Hab das an einem andren PC probiert - ohne Wirkung. ?( Kann jemand von euch Erfolg vermelden?

    Hier der kleine Helfer:

    Spoiler anzeigen
    [autoit]

    #cs
    Bit Wert Bedeutung Standardwert

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

    7 128 reserviert und immer gesetzt 1
    6 64 Autostart für RAM-DISK 0
    5 32 Autostart für CD-ROM 0
    4 16 Autostart für Netzwerklaufwerke 1
    3 8 Autostart für feste Datenträger (Festplatte) 0
    2 4 Autostart für wechselbare Datenträger (z.B. Diskettenlaufwerk) 1
    1 2 Laufwerk ohne Root 0
    0 1 Autostart für unbekannte Laufwerkstypen 1

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

    Hex-Wert: Standard 95
    #ce

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

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt("GUIOnEventMode", 1)

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

    Global $aCB[7][2]
    Global $RegKey = 'HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer'
    Global $Value = "NoDriveTypeAutoRun"
    Global $CurrentSet = RegRead($RegKey, $Value)
    If @error Then $RegKey = 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer'
    $CurrentSet = RegRead($RegKey, $Value)
    If @error Then $CurrentSet = 0x00000095

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

    $GUI = GUICreate("Autorun - Settings", 392, 252, 266, 134)
    GUISetOnEvent($GUI_EVENT_CLOSE, "GUIClose")
    $Group1 = GUICtrlCreateGroup("", 15, 9, 360, 226)
    $aCB[0][0] = GUICtrlCreateCheckbox("RAM-Disk", 45, 39, 80, 17)
    $aCB[1][0] = GUICtrlCreateCheckbox("CD-ROM", 45, 66, 100, 17)
    $aCB[2][0] = GUICtrlCreateCheckbox("Netzlaufwerke", 45, 93, 100, 17)
    $aCB[3][0] = GUICtrlCreateCheckbox("Festplatte", 45, 120, 100, 17)
    $aCB[4][0] = GUICtrlCreateCheckbox("Wechseldatenträger", 45, 147, 140, 17)
    $aCB[5][0] = GUICtrlCreateCheckbox("Laufwerk ohne Root", 45, 174, 140, 17)
    $aCB[6][0] = GUICtrlCreateCheckbox("Unbekannte Laufwerke", 45, 201, 140, 17)
    $btSet = GUICtrlCreateButton("Neu Setzen", 240, 39, 110, 20, $WS_GROUP)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetOnEvent(-1, "btSetClick")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    For $i = 0 To 6
    GUICtrlSetOnEvent($aCB[$i][0], "cbClick")
    $aCB[$i][1] = 2^(6-$i)
    Next
    GUISetState(@SW_SHOW)

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

    _MarkCB()

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

    While 1
    Sleep(100)
    WEnd

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

    Func GUIClose()
    Exit
    EndFunc

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

    Func cbClick()
    If BitAND(GUICtrlGetState($btSet), $GUI_DISABLE) Then GUICtrlSetState($btSet, $GUI_ENABLE)
    EndFunc

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

    Func btSetClick()
    Local $val = 0
    For $i = 0 To 6
    If BitAND(GUICtrlRead($aCB[$i][0]), $GUI_CHECKED) Then
    $val += $aCB[$i][1]
    EndIf
    Next
    RegWrite($RegKey, $Value, 'REG_DWORD', '0x' & Hex($val+128, 8))
    GUICtrlSetState($btSet, $GUI_DISABLE)
    EndFunc

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

    Func _MarkCB()
    For $i = 0 To 6
    If BitAND($CurrentSet, $aCB[$i][1]) Then
    GUICtrlSetState($aCB[$i][0], $GUI_CHECKED)
    Else
    GUICtrlSetState($aCB[$i][0], $GUI_UNCHECKED)
    EndIf
    Next
    EndFunc

    [/autoit]

    Dateien

    Autostart_Drive.au3 2,62 kB – 443 Downloads
  • ListView Item - Rechtsklick Menü öffnen

    • BugFix
    • 7. Oktober 2009 um 21:20

    Tweaky: Bitte keine MsgBoxen in eine WM_Funktion. ;) Das crasht gern.

  • Prozess eindeutig identifizieren

    • BugFix
    • 7. Oktober 2009 um 20:19

    Ein laufender Prozess hat ein eineindeutiges Handle und eine ebenso eineindeutige PID.
    Je nach Funktion wird die PID oder das Handle benötigt.
    Hier mal ein Bsp., wie du das Handle eines Prozesses erhalten kannst. (Die PID zu erhalten ist ja bekannt)

    Edit: Sehe grad, ich habe etwas daneben gelegen ;). Das Handle wird nur erstellt, wenn es angefordert wird und anschließend verworfen. Es ist also nicht geeignet zur Identifikation.

    [autoit]

    Const $PROCESS_QUERY_INFORMATION = 0x400

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

    $PID = Run('calc.exe')
    $hProcess = OpenProcess($PROCESS_QUERY_INFORMATION, False, $PID)
    ConsoleWrite('$hProcess "calc.exe": ' & $hProcess & @CRLF)

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

    Func OpenProcess($dwDesiredAccess, $bInheritHandle, $dwProcessId)
    Local $ret = DllCall("kernel32", 'long', 'OpenProcess', 'long', $dwDesiredAccess, _
    'long', $bInheritHandle, 'long', $dwProcessId)
    Return $ret[0]
    EndFunc

    [/autoit]
  • Alle Unterschlüssel eines Registry Pfades herausbekommen

    • BugFix
    • 5. Oktober 2009 um 22:35

    Es gibt auch noch andere Möglichkeiten ;) Registry-Funktionen per Objekt

  • Wie finde ich raus, ob eine Variable eine IP ist?

    • BugFix
    • 4. Oktober 2009 um 19:43
    [autoit]

    If Not StringRegExp($input, '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b') Then _
    MsgBox(0, '', 'Das ist keine IP!')

    [/autoit]
  • ArrayMore.au3

    • BugFix
    • 4. Oktober 2009 um 18:39
    Zitat von Tweaky

    (meistens ja 1 und nicht 0)


    :D Meine Arrays gehen bei 0 los.
    Werd ich mal noch einbauen, kein Problem.

  • Potenz rechner(brauche verkürzung des scripts)

    • BugFix
    • 3. Oktober 2009 um 09:03

    :D Paßt alles in eine Zeile:

    [autoit]

    MsgBox(0, 'Ergebnis', InputBox('Potenzrechnung', 'Basis') ^ InputBox('Potenzrechnung', 'Exponent'))

    [/autoit]

    und das hier ist auch viel flexibler. 8o

  • Probleme mit nem kleinem Spiel [Wieder so ein "Ich steh voll auf der Leitung Prob" xD]

    • BugFix
    • 2. Oktober 2009 um 22:09

    Hi,
    ich hatte mal eine Stoppuhr gebastelt, da kannst du dir anschauen, wie es geht.
    Der Code ist noch etwas verbugt (hatte nicht weitergemacht), aber das Prinzip wird deutlich.

    Spoiler anzeigen
    [autoit]

    #include<EditConstants.au3>
    #include<GUIConstantsEx.au3>
    Global $start, $UsedTime, $diff_Alt = 0
    Global $SetTime = False, $Break = False, $Pause = False, $Run = True
    Global $colBG = 0x0000FF, $colFont = 0xFFEA00

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

    $GUI = GUICreate('Stoppuhr', 400, 100, -1, -1)
    $Time = GUICtrlCreateInput('00:00:00,000', 100, 20, 200, 20, BitOR($ES_CENTER,$ES_READONLY))
    GUICtrlSetBkColor(-1, $colBG)
    GUICtrlSetColor(-1, $colFont)
    $bStart = GUICtrlCreateButton('Start', 40, 60, 80, 20)
    $bBreak = GUICtrlCreateButton('Unterbrechen', 160, 60, 80, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $bPause = GUICtrlCreateButton('Pause', 280, 60, 80, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState()

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

    While True
    $msg = GUIGetMsg()
    If $SetTime Then $UsedTime = SetTime()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    ExitLoop
    Case $bStart ; Start/Stop Messung absolut
    $Run = Not $Run
    If $Run Then
    $SetTime = False
    SetTime()
    GUICtrlSetData($bStart, 'Start')
    GUICtrlSetState($bBreak, $GUI_DISABLE)
    GUICtrlSetState($bPause, $GUI_DISABLE)
    Else
    GUICtrlSetData($Time, '00:00:00,000')
    $SetTime = True
    $start = TimerInit()
    GUICtrlSetData($bStart, 'Stop')
    GUICtrlSetState($bBreak, $GUI_ENABLE)
    GUICtrlSetState($bPause, $GUI_ENABLE)
    EndIf
    Case $bBreak ; nur Anzeige wird angehalten (z.B. Rundenmessung)
    $Break = Not $Break
    If $Break Then
    $SetTime = False
    GUICtrlSetData($bBreak, 'Fortsetzen')
    GUICtrlSetState($bPause, $GUI_DISABLE)
    Else
    $SetTime = True
    GUICtrlSetData($bBreak, 'Unterbrechen')
    GUICtrlSetState($bPause, $GUI_ENABLE)
    EndIf
    Case $bPause ; Messung wird angehalten (Additionsmessung)
    $Pause = Not $Pause
    If $Pause Then
    $diff_Alt = $UsedTime ; abgelaufene Zeit aufaddieren
    $SetTime = False
    GUICtrlSetData($bPause, 'Weiter')
    GUICtrlSetState($bBreak, $GUI_DISABLE)
    Else
    $SetTime = True
    $start = TimerInit() ; Zeitmessung neu initialisieren
    GUICtrlSetData($bPause, 'Pause')
    GUICtrlSetState($bBreak, $GUI_ENABLE)
    EndIf
    EndSwitch
    WEnd

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

    Func SetTime()
    Local $diff = TimerDiff($start)/1000 + $diff_Alt
    Local $hour = 0
    Local $min = 0
    Local $sec = Floor($diff)
    Local $rest = ($diff-$sec)*1000
    Local $secShow, $minShow, $hourShow
    If $sec > 59 Then
    $min = Floor($sec/60)
    $secShow = Mod($sec, 60)
    ElseIf $sec > 3599 Then ; ???? testen
    $hourShow = Mod(Mod($sec,3600),60)
    $minShow = Floor(Mod($sec,3600)/60)
    $secShow = Floor($sec/3600)
    Else
    $secShow = $sec
    $minShow = $min
    $hourShow = $hour
    EndIf
    GUICtrlSetData($Time, StringFormat('%02u', $hourShow) & ':' & StringFormat('%02u', $minShow) & ':' & StringFormat('%02u', $secShow) & ',' & StringFormat('%03u', $rest))
    Return $diff ; gibt abgelaufene Zeit als absolute Differenz zurück
    EndFunc

    [/autoit]
  • txt daten auslesen

    • BugFix
    • 2. Oktober 2009 um 22:00

    Da gibt es eine einfachere Lösung (statt $text halt "FileRead(deine_Datei)")

    [autoit]

    #include <array.au3>
    $text = _
    '10/02/2009 02:00:00 2 ankauf 12 1 ' & @CRLF & _
    '13/02/2009 08:00:00 2 verkauf 13 0 0' & @CRLF & @CRLF & _
    '14/02/2009 05:00:00 5 ankauf 14 1 ' & @CRLF & _
    '14/02/2009 10:00:00 5 verkauf 12 0 0' & @CRLF & @CRLF & _
    '16/02/2009 06:00:00 6 ankauf 12 1 ' & @CRLF & _
    '18/02/2009 12:00:00 6 verkauf 13 0 0' & @CRLF & @CRLF & _
    '19/02/2009 07:00:00 7 ankauf 12 1 ' & @CRLF & _
    '19/02/2009 08:00:00 8 verkauf 14 0 0'

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

    $pattern = '(\d{2}:\d{2}:\d{2})(?:\s+\d+\s+)(\w+)'
    $ret = StringRegExp($text, $pattern, 3)
    ;~ _ArrayDisplay($ret)

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

    MsgBox(0, 'Letzte Zeile', $ret[UBound($ret)-2] & ' ' & $ret[UBound($ret)-1])

    [/autoit]

    Falls die Leerbereiche evtl. Tabs enthalten, müßte das Pattern im RegEx angepaßt werden.

  • Rechtsklick auf Controls auswerten

    • BugFix
    • 2. Oktober 2009 um 20:46

    Und noch mal zum Sinn:
    Somit kann man auch jedem Control ein Kontextmenü zuordnen (das geht nämlich standardmäßig nur bei wenigen) und das macht sehr viel Sinn.
    Bsp.: Individuelle Gestaltung einer GUI durch den User
    - Rechtsklick auf den Hintergrund: wird ihm Farbwechsel oder Hintergrundbild angeboten
    - Rechtsklick auf Button: Farbwechsel oder Image
    usw.

  • Hilfe für Aito-It Anfänger

    • BugFix
    • 1. Oktober 2009 um 23:26

    Es gibt in AutoIt eine hervorragend dokumentierte Hilfe. Vielleicht solltest du dir mal die Mühe machen und in SciTE 'For' eintippen, mit dem Cursor draufgehen und F1 drücken. Dann kannst du alles nachlesen.

  • Hilfe für Aito-It Anfänger

    • BugFix
    • 1. Oktober 2009 um 23:02

    Du kannst eine Schleife verwenden:

    [autoit]

    For $i = 1 To 5
    ; dein Befehl
    Next

    [/autoit]
  • Hilfe für Aito-It Anfänger

    • BugFix
    • 1. Oktober 2009 um 22:48

    In Bezug auf Send?
    z.B. sende 5 mal 's' : Send('{s 5}')

  • Hilfe für Aito-It Anfänger

    • BugFix
    • 1. Oktober 2009 um 22:30
    Zitat von Keks22

    Send("$deinevariable")

    [autoit]

    Send($deinevariable)

    [/autoit]
  • URL Schnell Öffner

    • BugFix
    • 1. Oktober 2009 um 22:23

    Der Name 'Schnellöffner' ist hier wohl etwas irreführend. ;)

  • Pixelsearch

    • BugFix
    • 1. Oktober 2009 um 22:10

    Mit PixelChecksum solltest du dem Ziel näher kommen.

  • Günstige "Relaiskarte" wo mit AutoIt arbeitet

    • BugFix
    • 1. Oktober 2009 um 18:10

    Die Karte hatte mal irgendwer empfohlen:
    http://www.velleman.eu/product/view/?lang=de&id=351346

    Damit kannst du z.B. Relais ansteuern, die für deine erforderliche Schaltlast ausgelegt sind.

    Edit
    Relaiskarten findest du dort auch. Hier für 3A Ausgang: http://www.velleman.eu/ot/de/product/view/?id=9069

  • Mehr infos zu Fileinstall

    • BugFix
    • 1. Oktober 2009 um 14:25
    Zitat von SchrotterCh

    also ich habe es mit beidem schon mal gemacht und hat einwandfrei geklappt

    Nun, wenn das so ist, solltest du sofort beim Papst für eine Audienz zur Heiligsprechung nachsuchen. :rofl:

    Ich helfe dir gern nochmal auf die Sprünge mit einem Auszug aus der Hilfe

    Zitat

    The source file must be a string and not a variable so that the compiler can extract the filename to include. The source cannot contain wildcards.


    Wenn du sagst, bei dir klappt das: Wow, dann hast du dir wohl einen eigenen Compiler erstellt, der das bringt. :thumbup:

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™