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

Beiträge von Schnuffel

  • IE-Tabs im Gui

    • Schnuffel
    • 15. Februar 2009 um 13:06

    Hallo Apfeltasche,

    ich hätte da einen Ansatz für Dich.
    Hab das jetzt nicht mit Tab's probiert, geht aber bestimmt auch.
    Ist natürlich nur ein Ansatz und weit entfernt davon perfekt zu sein.
    Ich denke aber das kann man ausbauen...

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>
    #include <GuiTab.au3>
    #include <Misc.au3>

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

    Opt("MustDeclareVars", 1)
    Opt("GUIOnEventMode", 1)
    Const $main_gui_width = 860
    Const $main_gui_height = 710
    Const $child_gui_width = 860
    Const $child_gui_height = 660
    Const $btn_bkcol = 0xd4d0c8
    Const $btn_col = 0x000000
    Const $btn_bkcol_a = 0x0a246a
    Const $btn_col_a = 0xffffff
    Global $dll = DllOpen("user32.dll")
    Global $btn_child[6]
    Global $btn_shown = 1
    Global $strg_t = 0
    Global $title = "Demo für Child-Fenster"
    Global $dummy = GUICtrlCreateLabel("", 0, 0, 1, 1)
    Global $main_gui = GUICreate($title, $main_gui_width, $main_gui_height, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
    Global $child1_gui, $child2_gui, $child3_gui, $child4_gui, $child5_gui, $child_akt, $child_old
    $btn_child[1] = GUICtrlCreateButton("Button 1", 10, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    $btn_child[2] = GUICtrlCreateButton("Button 2", 180, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    GUICtrlSetState(-1, $GUI_HIDE)
    $btn_child[3] = GUICtrlCreateButton("Button 3", 350, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    GUICtrlSetState(-1, $GUI_HIDE)
    $btn_child[4] = GUICtrlCreateButton("Button 4", 520, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    GUICtrlSetState(-1, $GUI_HIDE)
    $btn_child[5] = GUICtrlCreateButton("Button 5", 690, 0, 160, 30)
    GUICtrlSetFont(-1, 10, 300)
    GUICtrlSetOnEvent(-1, "child_show")
    GUICtrlSetState(-1, $GUI_HIDE)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")

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

    child1_gui()
    child2_gui()
    child3_gui()
    child4_gui()
    child5_gui()

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

    $child_akt = $child1_gui ; um letzten aktiven Button wieder neutral zu färben
    GUICtrlSetBkColor($btn_child[1], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[1], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    GUISetState(@SW_SHOW, $main_gui)
    GUISetState(@SW_SHOW, $child1_gui)

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

    While 1
    If _IsPressed("11", $dll) And _IsPressed("54", $dll) Then
    show_btn()
    EndIf
    Sleep(1)
    WEnd

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

    Func show_btn()
    If $btn_shown = 5 Then Return
    GUICtrlSetState($btn_child[$btn_shown + 1], $GUI_Show)
    $btn_shown += 1
    $strg_t = 0
    Sleep(500)
    EndFunc ;==>show_btn

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

    Func child_show()
    $child_old = $child_akt
    Switch @GUI_CtrlId
    Case $btn_child[1]
    If $child_akt <> $child1_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child1_gui)
    $child_akt = $child1_gui
    GUICtrlSetBkColor($btn_child[1], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[1], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[2]
    If $child_akt <> $child2_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child2_gui)
    $child_akt = $child2_gui
    GUICtrlSetBkColor($btn_child[2], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[2], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[3]
    If $child_akt <> $child3_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child3_gui)
    $child_akt = $child3_gui
    GUICtrlSetBkColor($btn_child[3], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[3], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[4]
    If $child_akt <> $child4_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child4_gui)
    $child_akt = $child4_gui
    GUICtrlSetBkColor($btn_child[4], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[4], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    Case $btn_child[5]
    If $child_akt <> $child5_gui Then
    GUISetState(@SW_HIDE, $child_akt)
    GUISetState(@SW_SHOW, $child5_gui)
    $child_akt = $child5_gui
    GUICtrlSetBkColor($btn_child[5], $btn_bkcol_a)
    GUICtrlSetColor($btn_child[5], $btn_col_a)
    GUICtrlSetState($dummy, $GUI_FOCUS)
    EndIf
    EndSwitch
    If $child_old <> $child_akt Then
    Switch $child_old
    Case $child1_gui
    GUICtrlSetBkColor($btn_child[1], $btn_bkcol)
    GUICtrlSetColor($btn_child[1], $btn_col)
    Case $child2_gui
    GUICtrlSetBkColor($btn_child[2], $btn_bkcol)
    GUICtrlSetColor($btn_child[2], $btn_col)
    Case $child3_gui
    GUICtrlSetBkColor($btn_child[3], $btn_bkcol)
    GUICtrlSetColor($btn_child[3], $btn_col)
    Case $child4_gui
    GUICtrlSetBkColor($btn_child[4], $btn_bkcol)
    GUICtrlSetColor($btn_child[4], $btn_col)
    Case $child5_gui
    GUICtrlSetBkColor($btn_child[5], $btn_bkcol)
    GUICtrlSetColor($btn_child[5], $btn_col)
    EndSwitch
    EndIf

    EndFunc ;==>child_show
    Func child1_gui()
    $child1_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 1", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child1_gui)
    EndFunc ;==>child1_gui
    Func child2_gui()
    $child2_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 2", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child2_gui)
    EndFunc ;==>child2_gui
    Func child3_gui()
    $child3_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 3", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child3_gui)
    EndFunc ;==>child3_gui
    Func child4_gui()
    $child4_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 4", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child4_gui)
    EndFunc ;==>child4_gui
    Func child5_gui()
    $child5_gui = GUICreate("", $child_gui_width, $child_gui_height, 0, 10, BitOR($WS_CHILD, $WS_TABSTOP), $WS_EX_CONTROLPARENT, $main_gui)
    GUICtrlCreateLabel("Dies ist Seite 5", 50, 200, 200, 30)
    GUICtrlSetFont(-1, 12, 600)
    GUISetState(@SW_HIDE, $child5_gui)
    EndFunc ;==>child5_gui

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

    Func CLOSEClicked()
    Exit 0
    EndFunc ;==>CLOSEClicked

    [/autoit]
  • Fernsteuerung mit @SW_HIDE funzt nicht?

    • Schnuffel
    • 15. Februar 2009 um 11:46

    Hallo MatthiasG,

    ich habe das mal nachgestellt.
    Also ich würde das folgendermaßen machen:
    Wenn Du das Malware-Removal-Tool laufen läßt, erstellt das Programm einen temporären Ordner in einem lokalen Laufwerk mit einer wirren Zahlen-Buchstaben Kombination.
    In diesem Ordner befindet sich auch die mrt.exe.
    Die ist es, auf die es ankommt.
    Diese kopierst Du dir in Deinen Tools-Ordner unter "\mrt".
    So kannst Du Updates auch einfach austauschen, ohne das Script nochmal anpassen zu müssen.
    (Ich habe den WinText Zusatz "Jan 2009" mal weggelassen.)
    Und hier das angepasste Script:

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #include <WindowsConstants.au3>
    #include <ProgressConstants.au3>
    #include <SendMessage.au3>

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

    $ProgressGUI = GUICreate("Form1", 545, 25, -1, -1, $WS_POPUP, BitOr($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST))
    $Progress = GUICtrlCreateProgress(0, 0, 545, 25)

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

    $Risiko = 3
    $win = "Microsoft Windows-Tool zum Entfernen bösartiger Software"
    Run(@ScriptDir & "\Tools\mrt\mrt.exe",@ScriptDir&"\Tools\mrt",@SW_HIDE)
    GUISetState(@SW_SHOW)
    WinWait($win)

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

    ControlClick($win, "", 12324)

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

    If $Risiko < 3 Then
    ControlClick($win, "", 1034)
    Else
    ControlClick($win, "", 1033)
    EndIf

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

    ControlClick($win, "", 12324)

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

    $ProgressHandle = ControlGetHandle($win,"",1021) ; Handle zur 1. Progressbar des Fensters "Fenstertitel" holen
    $LowLimit = _SendMessage($ProgressHandle,$PBM_GETRANGE,True)
    $HighLimit = _SendMessage($ProgressHandle,$PBM_GETRANGE,False)

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

    Do
    $progressbarPOS = _SendMessage($ProgressHandle,$PBM_GETPOS) ; mit dem Handle kann dann mit _SendMessage die Position abgefragt werden.
    $prozent = ($progressbarPOS-$LowLimit)/($HighLimit-$LowLimit)*100
    GUICtrlSetData($Progress, $prozent)
    Sleep(100)
    Until $prozent = 100

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

    WinWait($win,"",5)
    ControlClick($win,"", 12325)

    [/autoit]


    PS: ich würde aber nicht nur den Scrollbalken anzeigen, sondern darunter schon immer noch einen Text, was Dein Prog gerade macht.
    Lass die User doch nicht dumm sterben... ;)

  • Fernsteuerung mit @SW_HIDE funzt nicht?

    • Schnuffel
    • 14. Februar 2009 um 18:18

    zumindest erstellt er eine UNDO-Datei :D

  • Fernsteuerung mit @SW_HIDE funzt nicht?

    • Schnuffel
    • 14. Februar 2009 um 17:59

    Hier die Optionen von RegClean:

    Zitat

    REGCLEAN: Windows Registry Analysis and Correction Version 4.1-a (7364.0001)
    Copyright (C) 1994-1997 by Microsoft Corporation. All rights reserved.

    USAGE:
    REGCLEAN
    REGCLEAN [mode] [options]
    Mode:
    <none> : Standard mode
    /A : Automatic (standard mode only, no prompting)
    /S : Silent mode (no UI)
    /D : Detail mode (full UI)

    Options:
    /? : Display RegClean options
    /Help : Display RegClean options

    /L [file] : Log all activity to file (default is REGCLEAN.LOG)

    Alles anzeigen

    Script geändert, verwende WinGetText:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>

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

    $ProgressGUI = GUICreate("Form1", 545, 25, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW)
    $Progress = GUICtrlCreateProgress(0, 0, 545, 25)
    GUISetState(@SW_SHOW)

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

    Run(@ScriptDir & "\Tools\regclean\Regclean.exe /S",@ScriptDir & "\Tools\regclean")

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

    Global $ControlText = StringSplit("Loading Component Categories...|Loading Interface Identifiers...|Loading Type Library Identifiers...|Scanning Class Identifiers for errors...|Scanning Type Library Identifiers for errors...|Finished checking. Waiting to Fix Errors.", "|")

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

    For $i = 1 To 6
    Do
    Sleep(100)
    Until WinGetText("Microsoft RegClean", 1013) = $ControlText[$i]
    GUICtrlSetData($Progress, $i * 10)
    Next

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

    ControlClick("Microsoft RegClean", "", 1009)

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

    Do
    Sleep(100)
    Until WinGetText("Microsoft RegClean", 1013) = "Saving corrections to the registry..."
    GUICtrlSetData($Progress, $Progress + 10)

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

    While WinExists("Microsoft RegClean")
    ControlClick("Microsoft RegClean", "", 1008)
    WEnd

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

    MsgBox(0, "", "fertig")

    [/autoit]
  • Dienst läuft nicht richtig

    • Schnuffel
    • 14. Februar 2009 um 17:25

    Danke :P

  • Dienst läuft nicht richtig

    • Schnuffel
    • 14. Februar 2009 um 17:10

    was hast Du den ändern müssen?

    Ich hatte es ausprobiert unter XP und bei mir habe ich nur einen Klang gehört von der MsgBox.
    Gesehen habe ich sie auch nicht.

  • _Singleton funktioniert nicht

    • Schnuffel
    • 14. Februar 2009 um 13:56

    probier diesen Code mal aus.

    Spoiler anzeigen
    [autoit]

    #include "Misc.au3"
    If _Singleton("blablabla",1) = 0 Then
    Msgbox(0,"Warning","An occurence of test is already running")
    Exit
    Else
    Msgbox(0,"OK","the first occurence of test is running")
    EndIf

    [/autoit]


    das geht ...

  • _Singleton funktioniert nicht

    • Schnuffel
    • 14. Februar 2009 um 13:35

    ich habe es gerade selbst versucht.
    Geht wunderbar.
    Wenn Du das "\"-Zeichen entfernst, und compilierst und dann die exe 2x startest geht das selbstverständlich.

  • _Singleton funktioniert nicht

    • Schnuffel
    • 14. Februar 2009 um 13:12

    probier das mal ohne das "\" - Zeichen. Ich denke da kommt _Singleton durcheinander...

    Spoiler anzeigen
    [autoit]

    #include "Misc.au3"
    if _Singleton("testtest",1) = 0 Then
    Msgbox(0,"Warning","An occurence of test is already running")
    Exit
    EndIf
    Msgbox(0,"OK","the first occurence of test is running")

    [/autoit]
  • Chat: Nachricht an alle Server schicken ?!?

    • Schnuffel
    • 14. Februar 2009 um 00:48

    sorry, Begriffsverwechslung.

    ich ging natürlich von einem Funktionsaufruf aus :)

  • Chat: Nachricht an alle Server schicken ?!?

    • Schnuffel
    • 14. Februar 2009 um 00:07

    wenn die Func einen Wert zurückgibt, gegen den du prüfen kannst klar....

    Spoiler anzeigen
    [autoit]

    If myfunc() Then
    MsgBox(0,"","geht doch ;-)")
    EndIf

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

    Func myfunc()
    Return(1)
    EndFunc

    [/autoit]
  • Einzelne Zeile in einem Edit ersetzen

    • Schnuffel
    • 13. Februar 2009 um 23:41

    was meinst Du mit "in einem Edit ersetzen" ?(

  • Bug oder was ist daran falsch?

    • Schnuffel
    • 13. Februar 2009 um 23:19

    Hast Du eine Funktion Ende deklariert?

  • brauche hilfe

    • Schnuffel
    • 13. Februar 2009 um 22:47

    sorry,

    Zitat

    Folgende Inhalte sind nicht erwünscht oder gar komplett verboten. Das Team behält es sich ausdrücklich vor, die Umsetzung der Regeln je nach Schweregrad zu verwarnen, zu löschen oder gar komplett zu sperren.

    - Bots für Spiele jeglicher Art, insbesondere Onlinespiele und ganz besonders Silkroad Online sowie World of Warcraft
    - Tools, um Nachrichten unerwünscht oft zu versenden (Spamming-Tools)
    - Programme, die anderen, auch Freunden, einen Schreck einjagen sollen oder sich sonst über andere Nutzer lustig machen ("Spaßviren")
    - Automatisierung von Webseiten oder Tools, die das in ihren AGBs verbieten
    - Viren
    - Malware, Spyware
    - Keylogger
    - Umgehen von Captchas

    Alles anzeigen
  • Progress-Bar Leerlauf + Kommandozeilenprogramme

    • Schnuffel
    • 13. Februar 2009 um 17:35

    vielleicht ist das so etwas was du meinst?

    Spoiler anzeigen
    [autoit]

    #include<SliderConstants.au3>
    #include<StaticConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<ProgressConstants.au3>

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

    Global $hGui = GUICreate('Klassische Progressbar', 420, 280, -1, -1)

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

    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 0) ; auf den klassischen Style umschalten
    Global $hProgress1 = GUICtrlCreateProgress(15, 20, 384, 20, $PBS_SMOOTH) ; obere Progressbar erstellen
    GUICtrlSetColor(-1, 0x22FF22)
    GUICtrlSetBkColor(-1, 0xEEEEEE)
    GUICtrlCreateLabel('|', 18, 40, 20, 16) ; Anzeige von 0%
    GUICtrlCreateLabel('0%', 11, 56, 25, 16, $SS_CENTER)
    GUICtrlCreateLabel('|', 396, 40, 20, 16) ; Anzeige von 100%
    GUICtrlCreateLabel('100%', 389, 56, 25, 16, $SS_CENTER)

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

    Global $hLabel1 = GUICtrlCreateLabel('0%', 190, 24, 30, 14, $SS_CENTER) ; Prozentanzeige innerhalb der Progressbar
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) ; Transparenter Hintergrund für das Label

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

    Global $hProgress2 = GUICtrlCreateProgress(15, 160, 384, 20, $PBS_SMOOTH) ; untere Progressbar erstellen
    GUICtrlSetColor(-1, 0xC83131)
    GUICtrlSetBkColor(-1, 0xEEEEEE)
    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 7) ; zurück zum Standard-Windowsstyle

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

    For $i = 0 To 100 Step 10 ; die Anzeige für die Prozentwerte der unteren Progressbar erstellen
    GUICtrlCreateLabel('|', 16 + $i * 3.8, 180, 20, 16)
    GUICtrlCreateLabel($i & '%', 9 + $i * 3.8, 196, 25, 16, $SS_CENTER)
    Next

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

    Global $hSlider = GUICtrlCreateSlider(5, 130, 404, 28, BitOR($TBS_TOOLTIPS, $TBS_AUTOTICKS))
    GUICtrlSetData(-1, 33) ; Sliderwert auf 33% setzen (als Beispiel)

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

    Global $hClose = GUICtrlCreateButton('Close', 180, 240, 60, 24)
    GUISetState(@SW_SHOW)

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

    Global $iAddend = 1 ; globale Variable (dient als Summand für _SetProgress)
    AdlibEnable('_SetProgress', 30)

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

    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE, $hClose
    Exit
    EndSwitch
    WEnd

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

    Func _SetProgress()
    Local $iPercent = GUICtrlRead($hProgress1) ; Prozentwert der oberen Progressbar auslesen
    If $iPercent = 100 Or $iPercent = 0 Then $iAddend = -$iAddend ; wenn 100 oder Null, dann den Summand negieren
    GUICtrlSetData($hProgress1, $iPercent + $iAddend) ; neuen Wert der oberen Progressbar schreiben
    GUICtrlSetData($hLabel1, $iPercent + $iAddend & '%') ; neuen Wert für das Label schreiben
    GUICtrlSetData($hProgress2, GUICtrlRead($hSlider)) ; und den Wert vom Slider in die untere Progressbar schreiben
    EndFunc ;==>_SetProgress

    [/autoit]
  • Splash vor dem Strg+Alt+Entf

    • Schnuffel
    • 12. Februar 2009 um 19:28

    Hallo wurbo,

    Zitate aus diversen Foren (gefunden mit Google...)
    Programme vor der Anmeldung zu starten:
    Start - Ausführen - "gpedit.msc" - ok. Dann auf Computerkonfiguration - Windows Einstellungen - Skripts (Start/Herunterfahren) - Start (Doppelklick).
    Dort kannst du mit "Hinzufügen..." jedes beliebige Programm automatisch beim Hochfahren starten lassen (muss kein Skript sein).


    Alles was im Verzeichnis C:\WINNT\SYSTEM32\AutoExRun
    liegt wird jedesmal beim hochfahren gestartet.

    Erstell Dir einfach ein kleines Programm in AutoIt nur mit einer MsgBox. ;)

    EDIT: nehme alles zurück und behaupte das Gegenteil :(
    Hab mir noch etwas Zeit genommen und mal genauer recherchiert.
    Vor der Anmeldung können definitiv nur Dienste gestartet werden.

    oliverh hat schon recht.
    Hier ein HowTo:
    http://www.howtodo-it.de/howtos/Softwar…-Dienst-starten

  • Tabelle ausdrucken

    • Schnuffel
    • 9. Februar 2009 um 19:03

    Hallo FireFlyer,

    Mit dem Script kannst Du pdf-Dateien erstellen. :thumbup:
    hab ich mal irgendwo "gefunden".
    Kann leider nicht mehr sagen, von wem das ist...

    Ich verwende das Script ohne GUI, mit eigener Formatierung.
    Das Kriegst Du sicher auch hin ;)
    Erstellt zwar "nur" Version 1.4, aber Du brauchst es ja nur zum formatierten ausdrucken...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    GUICreate("PDF-Creator",500,520)
    GUICtrlCreateGroup("Seitenformat",10,30,170,70)
    GUICtrlCreateGroup("Rand (mm)",190,30,105,70)
    GUICtrlCreateGroup("Schriftformat",315,30,175,70)
    GUICtrlCreateRadio("Querformat",20,70)
    GUICtrlCreateLabel("Autor:",10,475,100,20)
    GUICtrlCreateLabel("Titel:",120,475,100,20)
    GUICtrlCreateLabel("links:",200,50,30,20)
    GUICtrlCreateLabel("oben:",200,75,30,20)

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

    $Start = GUICtrlCreateButton("erzeuge PDF",370,480,120,30)
    GUICtrlSetFont(-1,11,600)
    $Autor = GUICtrlCreateInput("",10,490,100,20)
    $Titel = GUICtrlCreateInput("",120,490,100,20)
    $Text = GUICtrlCreateEdit("Bitte geben sie hier Ihren Text ein.",10,120,480,345)
    $Schrift = GUICtrlCreateCombo("8",325,48,45,20)
    GUICtrlSetData(-1,"9|10|11|12|14|16|18|20|22|24|26|28|36|48|72","12")
    $Schriftart = GUICtrlCreateCombo("Times-Roman",380,48,100,20)
    GUICtrlSetData(-1,"Helvetica|Courier","Times-Roman")
    $Size = GUICtrlCreateCombo("A4",110,60,50,20)
    GUICtrlSetData(-1,"A3","A4")
    $Format = GUICtrlCreateRadio("Hochformat",20,50)
    GUICtrlSetState(-1,$GUI_CHECKED)
    $Rand_y = GUICtrlCreateInput("24",240,48,45,20)
    GUICtrlCreateUpdown(-1)
    GUICtrlSetLimit(-1,999,0)
    $Rand_x = GUICtrlCreateInput("25",240,72,45,20)
    GUICtrlCreateUpdown(-1)
    GUICtrlSetLimit(-1,999,0)
    $Fett = GUICtrlCreateCheckbox("Fett",325,73,35,20)
    $Kursiv = GUICtrlCreateCheckbox("Kursiv",370,73,60,20)

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

    GUISetState ()
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then Exit
    If $msg = $Start Then ExitLoop
    WEnd

    $Pfad = FileSaveDialog("Speichern",@DesktopDir,"PDF (*.pdf)",16)
    If StringRight($Pfad,4) = ".pdf" Then
    Else
    $Pfad = $Pfad & ".pdf"
    EndIf

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

    $Fett = GUICtrlRead($Fett)
    $Kursiv = GUICtrlRead($Kursiv)
    $Schriftart = GUICtrlRead($Schriftart)
    $Rand_x = GUICtrlRead($Rand_x)
    $Rand_y = GUICtrlRead($Rand_y)
    $Format = GUICtrlRead($Format)
    $Autor = GUICtrlRead($Autor)
    $Titel = GUICtrlRead($Titel)
    $Size = GUICtrlRead($Size)
    $Text = GUICtrlRead($Text)
    $Schrift = GUICtrlRead($Schrift)
    FileDelete($Pfad)
    $File = FileOpen($Pfad, 1)
    $Zeilen = 1

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

    If $Size = "A4" Then
    $Size_x = 210
    $Size_y = 297
    ElseIf $Size = "A3" Then
    $Size_x = 297
    $Size_y = 420
    EndIf

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

    If $Fett = $GUI_CHECKED Or $Kursiv = $GUI_CHECKED Then
    If $Schriftart = "Times-Roman" Then
    If $Fett = $GUI_CHECKED Then
    $Schriftart = "Times-Bold"
    ElseIf $Kursiv = $GUI_CHECKED Then
    $Schriftart = "Times-Italic"
    EndIf
    If $Fett = $GUI_CHECKED And $Kursiv = $GUI_CHECKED Then $Schriftart = "Times-BoldItalic"
    ElseIf $Schriftart = "Helvetica" Then
    If $Fett = $GUI_CHECKED Then
    $Schriftart = "Helvetica-Bold"
    ElseIf $Kursiv = $GUI_CHECKED Then
    $Schriftart = "Helvetica-Oblique"
    EndIf
    If $Fett = $GUI_CHECKED And $Kursiv = $GUI_CHECKED Then $Schriftart = "Helvetica-BoldOblique"
    Else
    If $Fett = $GUI_CHECKED Then
    $Schriftart = "Courier-Bold"
    ElseIf $Kursiv = $GUI_CHECKED Then
    $Schriftart = "Courier-Oblique"
    EndIf
    If $Fett = $GUI_CHECKED And $Kursiv = $GUI_CHECKED Then $Schriftart = "Courier-BoldOblique"
    EndIf
    EndIf

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

    If $Format = $GUI_UNCHECKED Then
    $Size = $Size_x
    $Size_x = $Size_y
    $Size_y = $Size
    EndIf

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

    If $Schrift = 8 Then
    $Abstand = 9
    ElseIf $Schrift = 9 Then
    $Abstand = 11
    ElseIf $Schrift = 10 Then
    $Abstand = 12
    ElseIf $Schrift = 11 Then
    $Abstand = 13
    ElseIf $Schrift = 12 Then
    $Abstand = 15
    ElseIf $Schrift = 14 Then
    $Abstand = 17
    ElseIf $Schrift = 16 Then
    $Abstand = 19
    ElseIf $Schrift = 18 Then
    $Abstand = 21
    ElseIf $Schrift = 20 Then
    $Abstand = 24
    ElseIf $Schrift = 22 Then
    $Abstand = 26
    ElseIf $Schrift = 24 Then
    $Abstand = 28
    ElseIf $Schrift = 26 Then
    $Abstand = 30
    ElseIf $Schrift = 28 Then
    $Abstand = 32
    ElseIf $Schrift = 36 Then
    $Abstand = 41
    ElseIf $Schrift = 48 Then
    $Abstand = 55
    Else
    $Abstand = 83
    EndIf

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

    If Not StringInStr($Text,@CRLF) = 0 Then
    $Text = StringSplit($Text,@CRLF)
    $Zeilen = $Text[0] / 2 + 1
    EndIf

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

    ; Umrechnung
    $Wert = 2.834175
    $Size_y = Round($Size_y * $Wert)
    $Size_x = Round($Size_x * $Wert)
    $Rand_x = Round($Rand_x * $Wert)
    $Rand_y = Round($Rand_y * $Wert)

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

    FileWriteLine($File,"%PDF-1.2")
    FileWriteLine($File,"%âãÏÓ")

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

    FileWriteLine($File,"1 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Author ("&$Autor&")")
    FileWriteLine($File,"/CreationDate (D:"&@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC&")")
    FileWriteLine($File,"/Creator (Ahnungslos)")
    FileWriteLine($File,"/Producer (Ahnungslos)")
    FileWriteLine($File,"/Title ("&$Titel&")")
    FileWriteLine($File,">>")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"4 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Type /Font")
    FileWriteLine($File,"/Subtype /Type1")
    FileWriteLine($File,"/Name /F1")
    FileWriteLine($File,"/Encoding 5 0 R")
    FileWriteLine($File,"/BaseFont /"&$Schriftart)
    FileWriteLine($File,">>")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"5 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Type /Encoding")
    FileWriteLine($File,"/BaseEncoding /WinAnsiEncoding")
    FileWriteLine($File,">>")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"6 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File," /Font << /F1 4 0 R >>")
    FileWriteLine($File," /ProcSet [ /PDF /Text ]")
    FileWriteLine($File,">>")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"7 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Type /Page")
    FileWriteLine($File,"/Parent 3 0 R")
    FileWriteLine($File,"/Resources 6 0 R")
    FileWriteLine($File,"/Contents 8 0 R")
    FileWriteLine($File,"/Rotate 0")
    FileWriteLine($File,">>")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"8 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Length 9 0 R")
    FileWriteLine($File,">>")
    FileWriteLine($File,"stream")
    FileWriteLine($File,"BT")

    If $Zeilen = 1 Then
    FileWriteLine($File,"/F1 "&$Schrift&" Tf")
    FileWriteLine($File,"1 0 0 1 "&$Rand_y&" "&$Size_y - $Rand_x - $Abstand&" Tm")
    FileWriteLine($File,"(Dies ist mein erster Text, und ich weiß gar nicht, was ich machen soll...) Tj")
    Else
    For $Counter = 1 To $Zeilen
    FileWriteLine($File,"/F1 "&$Schrift&" Tf")
    FileWriteLine($File,"1 0 0 1 "&$Rand_y&" "&$Size_y - $Rand_x - $Abstand * $Counter&" Tm")
    FileWriteLine($File,"("&$Text[$Counter * 2 - 1]&") Tj")
    Next
    EndIf

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

    FileWriteLine($File,"ET")
    FileWriteLine($File,"endstream")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"9 0 obj")
    FileWriteLine($File,"78")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"2 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Type /Catalog")
    FileWriteLine($File,"/Pages 3 0 R")
    FileWriteLine($File,">>")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"3 0 obj")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Type /Pages")
    FileWriteLine($File,"/Count 1")
    FileWriteLine($File,"/MediaBox [ 0 0 "&$Size_x&" "&$Size_y&" ]")
    FileWriteLine($File,"/Kids [ 7 0 R ]")
    FileWriteLine($File,">>")
    FileWriteLine($File,"endobj")

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

    FileWriteLine($File,"0 10")
    FileWriteLine($File,"0000000000 65535 f ")
    FileWriteLine($File,"0000000013 00000 n ")
    FileWriteLine($File,"0000000591 00000 n ")
    FileWriteLine($File,"0000000634 00000 n ")
    FileWriteLine($File,"0000000156 00000 n ")
    FileWriteLine($File,"0000000245 00000 n ")
    FileWriteLine($File,"0000000307 00000 n ")
    FileWriteLine($File,"0000000372 00000 n ")
    FileWriteLine($File,"0000000453 00000 n ")
    FileWriteLine($File,"0000000576 00000 n ")
    FileWriteLine($File,"trailer")
    FileWriteLine($File,"<<")
    FileWriteLine($File,"/Size 10")
    FileWriteLine($File,"/Root 2 0 R")
    FileWriteLine($File,"/Info 1 0 R")
    FileWriteLine($File,">>")
    FileWriteLine($File,"startxref")
    FileWriteLine($File,"712")
    FileWriteLine($File,"%%EOF")

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

    FileClose($File)

    [/autoit]
  • MouseClick in Inputbox feststellen

    • Schnuffel
    • 20. Januar 2009 um 23:28

    Oscar,
    ich danke Dir.

    ich denke besser geht es nicht. :)

  • MouseClick in Inputbox feststellen

    • Schnuffel
    • 20. Januar 2009 um 21:06

    Hallo Oscar,

    erstmal Danke für den Tip.

    Auf meine Frage bezogen eigentlich perfekt.
    Hab mich nur leider ungenau ausgedrückt, da Deine Lösung mein Problem nicht löst.
    Bei Deiner Lösung wird der Inhalt auch mit der TAB-Taste gelöscht, und dass möchte ich nicht.

    Ich habe eine GUI, in der ich für jeweils einen Monat Stundenzeiten eintragen möchte.
    D.h. 31 Reihen mit je folgenden Inputboxen.
    Kommen Gehen Pause ......
    Ich hab da mal Dein Beispiel auf meine Situation angepasst...

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <EditConstants.au3>

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

    Global $dll_user32 = DllOpen("user32.dll")
    Global $inhalt, $inhalt_pur, $nID
    GUICreate('Test', 300, 180)
    $hInput1 = GUICtrlCreateInput(' :', 10, 10, 40, 20)
    $hInput2 = GUICtrlCreateInput(' :', 60, 10, 40, 20)
    $hInput3 = GUICtrlCreateInput(' :', 120, 10, 40, 20)
    $hInput4 = GUICtrlCreateInput(' :', 10, 60, 40, 20)
    $hInput5 = GUICtrlCreateInput(' :', 60, 60, 40, 20)
    $hInput6 = GUICtrlCreateInput(' :', 120, 60, 40, 20)
    GUISetState()

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

    GUIRegisterMsg($WM_COMMAND, 'MY_WM_COMMAND')

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

    Do
    Until GUIGetMsg() = -3

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

    Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
    Local $nNotifyCode = BitShift($wParam, 16)
    Local $nID = BitAND($wParam, 0x0000FFFF)
    $inhalt = GUICtrlRead($nID)
    $inhalt_pur = StringReplace(StringReplace($inhalt, " ", ""), ":", "")
    If $nNotifyCode = $EN_CHANGE Then
    zeit_pruefen($nID, $inhalt_pur)
    Return
    EndIf
    If $nNotifyCode = $EN_KILLFOCUS Then
    en_killfocus($nID, $inhalt_pur)
    Return
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func zeit_pruefen($nID, $inhalt_pur)
    If _IsPressed("08", $dll_user32) Then
    GUICtrlSetData($nID, StringTrimRight($inhalt, 1))
    Return
    EndIf
    Switch StringLen($inhalt_pur)
    Case 1
    Switch $inhalt_pur
    Case 1 To 2
    GUICtrlSetData($nID, $inhalt_pur & " :")
    Send("{LEFT 2}")
    Case 3 To 9
    GUICtrlSetData($nID, "0" & $inhalt_pur & ":")
    EndSwitch
    Case 2
    Switch $inhalt_pur
    Case 0 To 23
    GUICtrlSetData($nID, $inhalt_pur & ":")
    Case Else
    GUICtrlSetData($nID, "")
    GUICtrlSetState($nID, $GUI_FOCUS)
    Return
    EndSwitch
    Case 3
    Switch StringRight($inhalt_pur, 1)
    Case 0 To 5
    GUICtrlSetData($nID, StringLeft($inhalt_pur, 2) & ":" & StringRight($inhalt_pur, 1))
    Case Else
    GUICtrlSetData($nID, StringLeft($inhalt_pur, 2) & ":")
    EndSwitch
    EndSwitch
    EndFunc ;==>zeit_pruefen

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

    Func en_killfocus($nID, $inhalt_pur)
    Switch StringLen($inhalt_pur)
    Case 0
    GUICtrlSetData($nID, " :")
    Case 1
    Switch $inhalt_pur
    Case 0 To 2
    GUICtrlSetData($nID, "0" & $inhalt_pur & ":00")
    Send("{LEFT 2}")
    Case 3 To 9
    GUICtrlSetData($nID, "0" & $inhalt_pur & ":00")
    EndSwitch
    Case 2
    GUICtrlSetData($nID, $inhalt_pur & ":00")
    Case 3
    GUICtrlSetData($nID, StringLeft($inhalt_pur, 2) & ":" & StringRight($inhalt_pur, 1) & "0")
    EndSwitch
    EndFunc ;==>en_killfocus

    [/autoit]


    Die Anwahl der einzelnen Inputboxen erfolgt mit der Tab-Taste, ohne den möglichen Inhalt zu löschen.
    Dies fange ich schon mit "MY_WM_COMMAND($hWnd, $msg, $wParam, $lParam)" ab und schicke den Inhalt an eine Funktion, die die Eingabe auf korrekte Zeiteingabe prüft.

    Da die Inputboxen "vorformatiert" sind in der Form "__:" (Unterstrich = Leerzeichen)
    und bei jeder Eingabe logisch ergänzt werden, ist eigentlich immer ein Inhalt in der Inputbox.
    Ich möchte eigentlich nur erreichen, dass bei einem Mausklick in eine der Inputboxen entweder immer der gesamte Inhalt der Inputbox markiert ist.
    Damit wäre sichergestellt, dass der Cursor nicht irgendwo innerhalb des Inhaltes steht, oder der Doppelpunkt gelöscht wird.

    Ist zwar nur eine optische Sache, wäre aber trotzdem schön, wenn ich das erreichen könnte.

    Um es kurz zu machen, ich brauche eine Möglichkeit aus einem einfachen Mausklick in eine Inputbox automatisch einen Doppelklick zu machen :rolleyes:

    Hat da jemand eine Idee?
    Ich hoffe, ich verwirre niemanden mit meinen Ergüssen ;(

  • MouseClick in Inputbox feststellen

    • Schnuffel
    • 19. Januar 2009 um 21:35

    Hallo zusammen,

    hat jemand von Euch eine Ahnung, wie ich einen MouseClick in eine Inputbox feststellen kann?
    Ich möchte einfach nur, dass bei anklicken einer Inputbox der vorhandene Inhalt automatisch gelöscht wird.

    ich finde gerade nicht den richtigen Windows Message Code.

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™