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

  • Konsoleprogramme einbinden

    • BugFix
    • 7. Februar 2007 um 22:20

    Erklärung zu @ComSpec findest du hier recht gut. ComSpec ist eine Umgebungsvariable - alles weitere beim Link.

  • Konsoleprogramme einbinden

    • BugFix
    • 7. Februar 2007 um 21:21

    Versuchs so:

    [autoit]

    Run($Pfad & "upx.exe -d")

    [/autoit][autoit]

    Run(@ComSpec & " /c " & 'commandName')

    [/autoit]

    wird für DOS-Konsolenprogramme verwendet.

  • alternative zum editfeld ?

    • BugFix
    • 3. Februar 2007 um 22:25

    no problem: Editfeld, Style: $ES_MULTILINE

  • Systemeinstellungen per Cmd-Line

    • BugFix
    • 3. Februar 2007 um 22:14

    Hi,
    wer öfter mal Zugriff auf bestimmte Systemfenster benötigt und sich bisher mit Tastaturbefehlen beholfen hat: in vielen Fällen geht dies auch per Kommandozeile.
    Eigentlich mehr durch Zufall bin ich auf die CPL-Files in Windows gestoßen.
    Ich hab dann mal zu allen verfügbaren Files die Aufrufparameter ermittelt und zusammengestellt.

    Ich denke mal, der eine oder andere wird Verwendung dafür finden.

    Spoiler anzeigen


    Aufruf von Systemeinstellungen per Kommandozeile:

    Aufruf "Systemeigenschaften"
    Registerkarte: "Allgemein" "control.exe sysdm.cpl,,0"
    Registerkarte: "Computername" "control.exe sysdm.cpl,,1"
    Registerkarte: "Hardware" "control.exe sysdm.cpl,,2"
    Registerkarte: "Erweitert" "control.exe sysdm.cpl,,3"
    Registerkarte: "Erweitert" <Button Systemleistung-Einstellungen> "Leistungsoptionen" "control.exe sysdm.cpl,,-1"
    Registerkarte: "Systemwiederherstellung" "control.exe sysdm.cpl,,4"
    Registerkarte: "Automatische Updates" "control.exe sysdm.cpl,,5"
    Registerkarte: "Remote" "control.exe sysdm.cpl,,6"

    Aufruf "Eigenschaften von Anzeige"
    Registerkarte: "Designs" "control.exe desk.cpl,,-1"
    Registerkarte: "Desktop" "control.exe desk.cpl,,0"
    Registerkarte: "Bildschirmschoner" "control.exe desk.cpl,,1"
    Registerkarte: "Darstellung" "control.exe desk.cpl,,2"
    Registerkarte: "Einstellungen" "control.exe desk.cpl,,3"

    Aufruf "Software"
    "Programme ändern oder entfernen" "control.exe appwiz.cpl,,0"
    "Neue Programme hinzufügen" "control.exe appwiz.cpl,,1"
    "Windowskomponenten hinzufügen oder entfernen" "control.exe appwiz.cpl,,2"
    "Programmzugriff und -standards festlegen" "control.exe appwiz.cpl,,3"


    CPL-FILE| FENSTER| PARAMETER-INDEX
    - - -
    ACCESS.CPL "Eingabehilfen" 1-Tastatur, 2-Sound, 3-Anzeige, 4-Maus, 5-Allgemein
    INETCPL.CPL "Eigenschaften von Internet" 0-Allgemein, 1-Sicherheit, 2-Datenschutz, 3-Inhalte, 4-Verbindungen, 5-Programme, 6-Erweitert
    INTL.CPL "Regions- und Sprachoptionen" 0-Regionale Einstellungen, 1-Sprache, 2-Erweitert
    MAIN.CPL "Eigenschaften von Maus" 0-Tasten, 1-Zeiger, 2-Zeigeroptionen, 3-Rad, 4-Hardware, 5-Geräteeinstellungen
    MMSYS.CPL "Eigenschaften von Sounds und Audiogeräte" 0-Lautstärke, 1-Sounds, 2-Audio, 3-Stimme, 4-Hardware
    TELEPHON.CPL "Telefon- und Modemoptionen" 0-Wählregeln, 1-Modems, 2-Erweitert
    TIMEDATE.CPL "Eigenschaften von Datum und Uhrzeit" 0-Datum und Uhrzeit, 1-Zeitzone
    WSCUI.CPL "Windows-Sicherheitscenter" o.Parameter Hauptfenster, 0-Warnungseinstellungen

    Folgende Fenster werden ohne Parameter aufgerufen, also "control.exe *******.cpl"

    FIREWALL.CPL "Windows Firewall" Allgemein (andere Register nicht einzeln ansprechbar)
    HDWWIZ.CPL "Hardware-Assistant"
    JOY.CPL "Gamecontroller"
    NCPA.CPL "Netzwerkverbindungen"
    NETSETUP.CPL "Netzwerkinstallationsassistent"
    NUSRMGR.CPL "Benutzerkonten"
    ODBCCP32.CPL "ODBC-Datenquellen-Administrator"
    POWERCFG.CPL "Eigenschaften von Energieoptionen"

    EDIT

    Hab das ganze jetzt praktikabel in eine GUI eingebettet.
    - Textsuche nach Einstellungsoption ('sys' liefert z.B. alle erreichbaren Systemeigenschaften)
    - Suche-Button ist DEFPUSHBUTTON
    - bei Klick auf gewünschten Parameter wird der Kommandozeilenbefehl angezeigt
    - Testbutton zur Vorschau
    - Übernahme CmdLine-Befehl in Zwischenablage als String pur oder als "Run(Befehl)"
    - alle Button per Tastatur wählbar


    Edit: Jetzt angepaßt auf Version 3.2.10.0

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiListBox.au3>
    #include <Array.au3>
    Opt("GUIOnEventMode", 1)

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

    Dim $arSearch[1] = ['']
    Dim $arCPL[58][3] ; FENSTER| CPL-FILE| PARAMETER-INDEX
    $arCPL[0][0] = "Systemeigenschaften - Allgemein"
    $arCPL[1][0] = "Systemeigenschaften - Computername"
    $arCPL[2][0] = "Systemeigenschaften - Hardware"
    $arCPL[3][0] = "Systemeigenschaften - Erweitert"
    $arCPL[4][0] = "Systemeigenschaften - Erweitert <Button Systemleistung-Einstellungen> Leistungsoptionen"
    $arCPL[5][0] = "Systemeigenschaften - Systemwiederherstellung"
    $arCPL[6][0] = "Systemeigenschaften - Automatische Updates"
    $arCPL[7][0] = "Systemeigenschaften - Remote"
    $arCPL[8][0] = "Eigenschaften von Anzeige - Designs"
    $arCPL[9][0] = "Eigenschaften von Anzeige - Desktop"
    $arCPL[10][0] = "Eigenschaften von Anzeige - Bildschirmschoner"
    $arCPL[11][0] = "Eigenschaften von Anzeige - Darstellung"
    $arCPL[12][0] = "Eigenschaften von Anzeige - Einstellungen"
    $arCPL[13][0] = "Software - Programme ändern oder entfernen"
    $arCPL[14][0] = "Software - Neue Programme hinzufügen"
    $arCPL[15][0] = "Software - Windowskomponenten hinzufügen oder entfernen"
    $arCPL[16][0] = "Software - Programmzugriff und -standards festlegen"
    $arCPL[17][0] = "Eingabehilfen - Tastatur"
    $arCPL[18][0] = "Eingabehilfen - Sound"
    $arCPL[19][0] = "Eingabehilfen - Anzeige"
    $arCPL[20][0] = "Eingabehilfen - Maus"
    $arCPL[21][0] = "Eingabehilfen - Allgemein"
    $arCPL[22][0] = "Eigenschaften von Internet - Allgemein"
    $arCPL[23][0] = "Eigenschaften von Internet - Sicherheit"
    $arCPL[24][0] = "Eigenschaften von Internet - Datenschutz"
    $arCPL[25][0] = "Eigenschaften von Internet - Inhalte"
    $arCPL[26][0] = "Eigenschaften von Internet - Verbindungen"
    $arCPL[27][0] = "Eigenschaften von Internet - Programme"
    $arCPL[28][0] = "Eigenschaften von Internet - Erweitert"
    $arCPL[29][0] = "Regions- und Sprachoptionen - Regionale Einstellungen"
    $arCPL[30][0] = "Regions- und Sprachoptionen - Sprache"
    $arCPL[31][0] = "Regions- und Sprachoptionen - Erweitert"
    $arCPL[32][0] = "Eigenschaften von Maus - Tasten"
    $arCPL[33][0] = "Eigenschaften von Maus - Zeiger"
    $arCPL[34][0] = "Eigenschaften von Maus - Zeigeroptionen"
    $arCPL[35][0] = "Eigenschaften von Maus - Rad"
    $arCPL[36][0] = "Eigenschaften von Maus - Hardware"
    $arCPL[37][0] = "Eigenschaften von Maus - Geräteeinstellungen"
    $arCPL[38][0] = "Eigenschaften von Sounds und Audiogeräte - Lautstärke"
    $arCPL[39][0] = "Eigenschaften von Sounds und Audiogeräte - Sounds"
    $arCPL[40][0] = "Eigenschaften von Sounds und Audiogeräte - Audio"
    $arCPL[41][0] = "Eigenschaften von Sounds und Audiogeräte - Stimme"
    $arCPL[42][0] = "Eigenschaften von Sounds und Audiogeräte - Hardware"
    $arCPL[43][0] = "Telefon- und Modemoptionen - Wählregeln"
    $arCPL[44][0] = "Telefon- und Modemoptionen - Modems"
    $arCPL[45][0] = "Telefon- und Modemoptionen - Erweitert"
    $arCPL[46][0] = "Eigenschaften von Datum und Uhrzeit - Datum und Uhrzeit"
    $arCPL[47][0] = "Eigenschaften von Datum und Uhrzeit - Zeitzone"
    $arCPL[48][0] = "Windows-Sicherheitscenter - Hauptfenster"
    $arCPL[49][0] = "Windows-Sicherheitscenter - Warnungseinstellungen"
    $arCPL[50][0] = "Windows Firewall - Allgemein"
    $arCPL[51][0] = "Hardware-Assistant"
    $arCPL[52][0] = "Gamecontroller"
    $arCPL[53][0] = "Netzwerkverbindungen"
    $arCPL[54][0] = "Netzwerkinstallationsassistent"
    $arCPL[55][0] = "Benutzerkonten"
    $arCPL[56][0] = "ODBC-Datenquellen-Administrator"
    $arCPL[57][0] = "Eigenschaften von Energieoptionen"

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

    $arCPL[0][1] = "SYSDM.CPL"
    $arCPL[1][1] = "SYSDM.CPL"
    $arCPL[2][1] = "SYSDM.CPL"
    $arCPL[3][1] = "SYSDM.CPL"
    $arCPL[4][1] = "SYSDM.CPL"
    $arCPL[5][1] = "SYSDM.CPL"
    $arCPL[6][1] = "SYSDM.CPL"
    $arCPL[7][1] = "SYSDM.CPL"
    $arCPL[8][1] = "DESK.CPL"
    $arCPL[9][1] = "DESK.CPL"
    $arCPL[10][1] = "DESK.CPL"
    $arCPL[11][1] = "DESK.CPL"
    $arCPL[12][1] = "DESK.CPL"
    $arCPL[13][1] = "APPWIZ.CPL"
    $arCPL[14][1] = "APPWIZ.CPL"
    $arCPL[15][1] = "APPWIZ.CPL"
    $arCPL[16][1] = "APPWIZ.CPL"
    $arCPL[17][1] = "ACCESS.CPL"
    $arCPL[18][1] = "ACCESS.CPL"
    $arCPL[19][1] = "ACCESS.CPL"
    $arCPL[20][1] = "ACCESS.CPL"
    $arCPL[21][1] = "ACCESS.CPL"
    $arCPL[22][1] = "INETCPL.CPL"
    $arCPL[23][1] = "INETCPL.CPL"
    $arCPL[24][1] = "INETCPL.CPL"
    $arCPL[25][1] = "INETCPL.CPL"
    $arCPL[26][1] = "INETCPL.CPL"
    $arCPL[27][1] = "INETCPL.CPL"
    $arCPL[28][1] = "INETCPL.CPL"
    $arCPL[29][1] = "INTL.CPL"
    $arCPL[30][1] = "INTL.CPL"
    $arCPL[31][1] = "INTL.CPL"
    $arCPL[32][1] = "MAIN.CPL"
    $arCPL[33][1] = "MAIN.CPL"
    $arCPL[34][1] = "MAIN.CPL"
    $arCPL[35][1] = "MAIN.CPL"
    $arCPL[36][1] = "MAIN.CPL"
    $arCPL[37][1] = "MAIN.CPL"
    $arCPL[38][1] = "MMSYS.CPL"
    $arCPL[39][1] = "MMSYS.CPL"
    $arCPL[40][1] = "MMSYS.CPL"
    $arCPL[41][1] = "MMSYS.CPL"
    $arCPL[42][1] = "MMSYS.CPL"
    $arCPL[43][1] = "TELEPHON.CPL"
    $arCPL[44][1] = "TELEPHON.CPL"
    $arCPL[45][1] = "TELEPHON.CPL"
    $arCPL[46][1] = "TIMEDATE.CPL"
    $arCPL[47][1] = "TIMEDATE.CPL"
    $arCPL[48][1] = "WSCUI.CPL"
    $arCPL[49][1] = "WSCUI.CPL"
    $arCPL[50][1] = "FIREWALL.CPL"
    $arCPL[51][1] = "HDWWIZ.CPL"
    $arCPL[52][1] = "JOY.CPL"
    $arCPL[53][1] = "NCPA.CPL"
    $arCPL[54][1] = "NETSETUP.CPL"
    $arCPL[55][1] = "NUSRMGR.CPL"
    $arCPL[56][1] = "ODBCCP32.CPL"
    $arCPL[57][1] = "POWERCFG.CPL"

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

    $arCPL[0][2] = 0
    $arCPL[1][2] = 1
    $arCPL[2][2] = 2
    $arCPL[3][2] = 3
    $arCPL[4][2] = -1
    $arCPL[5][2] = 4
    $arCPL[6][2] = 5
    $arCPL[7][2] = 6
    $arCPL[8][2] = -1
    $arCPL[9][2] = 0
    $arCPL[10][2] = 1
    $arCPL[11][2] = 2
    $arCPL[12][2] = 3
    $arCPL[13][2] = 0
    $arCPL[14][2] = 1
    $arCPL[15][2] = 2
    $arCPL[16][2] = 3
    $arCPL[17][2] = 1
    $arCPL[18][2] = 2
    $arCPL[19][2] = 3
    $arCPL[20][2] = 4
    $arCPL[21][2] = 5
    $arCPL[22][2] = 0
    $arCPL[23][2] = 1
    $arCPL[24][2] = 2
    $arCPL[25][2] = 3
    $arCPL[26][2] = 4
    $arCPL[27][2] = 5
    $arCPL[28][2] = 6
    $arCPL[29][2] = 0
    $arCPL[30][2] = 1
    $arCPL[31][2] = 2
    $arCPL[32][2] = 0
    $arCPL[33][2] = 1
    $arCPL[34][2] = 2
    $arCPL[35][2] = 3
    $arCPL[36][2] = 4
    $arCPL[37][2] = 5
    $arCPL[38][2] = 0
    $arCPL[39][2] = 1
    $arCPL[40][2] = 2
    $arCPL[41][2] = 3
    $arCPL[42][2] = 4
    $arCPL[43][2] = 0
    $arCPL[44][2] = 1
    $arCPL[45][2] = 2
    $arCPL[46][2] = 0
    $arCPL[47][2] = 1
    $arCPL[48][2] = -99
    $arCPL[49][2] = 0
    $arCPL[50][2] = -99
    $arCPL[51][2] = -99
    $arCPL[52][2] = -99
    $arCPL[53][2] = -99
    $arCPL[54][2] = -99
    $arCPL[55][2] = -99
    $arCPL[56][2] = -99
    $arCPL[57][2] = -99

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

    $guiCPL = GUICreate("Generiere CPL - CmdLine", 625, 513, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "guiCPLClose")
    $Group1 = GUICtrlCreateGroup(" Suche ( OHNE Suchbegriff wird Liste neu geladen )", 8, 8, 609, 49)
    $inSearch = GUICtrlCreateInput("", 40, 26, 433, 21)
    GUICtrlSetTip(-1, 'Mit Suche OHNE Suchbegriff' & @LF & 'wird die Liste wieder neu geladen.')
    $btnSearch = GUICtrlCreateButton("Start", 500, 26, 100, 21, $BS_DEFPUSHBUTTON)
    GUICtrlSetOnEvent(-1, "btnSearchClick")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $List1 = GUICtrlCreateList("", 8, 64, 609, 357)
    GUICtrlSetOnEvent(-1, "List1Click")
    $Group2 = GUICtrlCreateGroup(" Cmd-Line ", 8, 432, 609, 73)
    $inCmdOut = GUICtrlCreateInput("", 40, 448, 433, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    GUICtrlSetColor(-1, 0x00008B)
    $btnShow = GUICtrlCreateButton("&Test", 500, 448, 100, 21, 0)
    GUICtrlSetOnEvent(-1, "btnShowClick")
    $btnRaw = GUICtrlCreateButton("Kopiere &String pur", 68, 477, 150, 21, 0)
    GUICtrlSetOnEvent(-1, "btnRawClick")
    $btnRun = GUICtrlCreateButton("Kopiere String als: &Run( )", 295, 477, 150, 21, 0)
    GUICtrlSetOnEvent(-1, "btnRunClick")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)

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

    Global $hList = GUICtrlGetHandle($List1)
    _setList()

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

    HotKeySet("!t", "btnShowClick")
    HotKeySet("!s", "btnRawClick")
    HotKeySet("!r", "btnRunClick")

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

    While 1
    Sleep(100)
    WEnd

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

    Func _setList()
    For $i = 0 To UBound($arCPL)-1
    GUICtrlSetData($List1, $arCPL[$i][0])
    Next
    EndFunc

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

    Func btnRawClick()
    Local $file = GUICtrlRead($inCmdOut)
    If $file <> '' Then
    ClipPut($file)
    MsgBox(0, '', $file & @LF & @LF & 'wurde in Zwischenablage kopiert' )
    EndIf
    EndFunc

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

    Func btnRunClick()
    Local $file = GUICtrlRead($inCmdOut), $str
    If $file <> '' Then
    $str = "Run('" & $file & "')"
    ClipPut($str)
    MsgBox(0, '', $str & @LF & @LF & 'wurde in Zwischenablage kopiert' )
    EndIf
    EndFunc

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

    Func btnSearchClick()
    Local $toSearch = GUICtrlRead($inSearch)
    ReDim $arSearch[1]
    $arSearch[0] = ''
    _GUICtrlListBoxClear($hList)
    If $toSearch = '' Then
    _setList()
    Else
    For $i = 0 To UBound($arCPL)-1
    If StringInStr($arCPL[$i][0], $toSearch) Then
    If $arSearch[0] = '' Then
    $arSearch[0] = $arCPL[$i][0]
    Else
    ReDim $arSearch[UBound($arSearch)+1]
    $arSearch[UBound($arSearch)-1] = $arCPL[$i][0]
    EndIf
    EndIf
    Next
    For $i = 0 To UBound($arSearch)-1
    GUICtrlSetData($List1, $arSearch[$i])
    Next
    EndIf
    EndFunc

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

    Func btnShowClick()
    Local $file = GUICtrlRead($inCmdOut)
    If $file <> '' Then Run($file)
    EndFunc

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

    Func guiCPLClose()
    Exit
    EndFunc

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

    Func List1Click()
    $currPosIndex = _GUICtrlListBox_GetCaretIndex($hList)
    For $i = 0 To UBound($arCPL)-1
    If $arCPL[$i][0] = _GUICtrlListBox_GetText($hList, $currPosIndex) Then ExitLoop
    Next
    GUICtrlSetData($inCmdOut, _Generate($arCPL[$i][1], $arCPL[$i][2]))
    EndFunc

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

    Func _Generate($CPL, $PARAM)
    Local $cmd = "control.exe "
    If $PARAM <> -99 Then
    $cmd &= $CPL & ",," & $PARAM
    Else
    $cmd &= $CPL
    EndIf
    Return $cmd
    EndFunc

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

    Func _GUICtrlListBoxClear($Handle)
    Do
    Local $rest = _GUICtrlListBox_DeleteString($hList, 0)
    Until $rest = 0
    EndFunc

    [/autoit]

    Dateien

    SystemeinstellungCmdLine.txt 2,79 kB – 2.105 Downloads _GenerateCmdSysSettings.au3 9,34 kB – 676 Downloads
  • Systray Programme beenden.

    • BugFix
    • 1. Februar 2007 um 19:45
    [autoit]

    #NoTrayIcon

    [/autoit]

    am Scriptanfang

  • Morgen wird die Welt ein Stück **********^^

    • BugFix
    • 30. Januar 2007 um 21:35

    Naja, ich hab natürlich aufmerksam verfolgt, was sich da entwickelt hat und nun unter dem Namen Vista unsere Kohle kassieren will. :rofl:
    Ich konnte kein Feature entdecken, dass mich auch nur ansatzweise ernsthaft zu der Frage drängt: besorgen oder nicht.
    Dafür gibt es im Gegenteil eher Ansatzpunkte das Ganze mit etwas gesunder Skepsis zu betrachten. Die Implementierung von Routinen, die überprüfen ob Fremdsoftware den Redmondern "genehm" ist (obwohl dies ja mehr im Hardwarebereich stattfindet) halte ich für den Beginn des Untergangs Freier Software.
    Man wird eh genug überwacht und kontrolliert - ich brauch nicht noch 'nen PC der über die Nutzung von Software entscheidet. Demnächst sagt mir mein Compi noch, mit welcher Frau ich ausgehen darf... :schild4:

    Soweit die Meinung eines Dinosauriers.

  • Ändern Arbeitsgruppe

    • BugFix
    • 28. Januar 2007 um 20:32

    Für eine automatisierte Änderung der Arbeitsgruppe läßt sich die "NetDom.exe" ( per Batch: call netdom.exe member /joinworkgroup ARBEITSGRUPPE ) verwenden. Da man die aber nicht standardmäßig an Bord hat, hier eine Lösung über die Systemeinstellungen mittels "Send" und "Controlclick". Einen direkteren Weg konnte ich nicht finden.
    Also falls es mal jemand braucht. ;)

    Spoiler anzeigen
    [autoit]

    ; Arbeitsgruppennamen ändern
    $NeueArbeitsgruppe = "MSHEIMNETZ" ; festlegen oder per Inputbox während des Ausführens ändern
    ;~ $NeueArbeitsgruppe = StringUpper(InputBox("Arbeitsgruppe", "Bitte neue Arbeitsgruppe eintragen: ", "MSHEIMNETZ"))
    Send("{LWINDOWN}{PAUSE}{LWINUP}")
    WinWaitActive("Systemeigenschaften")
    Send("{RIGHT}")
    Send("!n")
    WinWaitActive("Computernamen ändern")
    ControlFocus("Computernamen ändern", "", "Edit4")
    Send("{SHIFTDOWN}{END}{SHIFTUP}")
    If ControlGetText("Computernamen ändern", "", "Edit4") = $NeueArbeitsgruppe Then
    MsgBox(0, '', "Arbeitsgruppe ist bereits: " & $NeueArbeitsgruppe & ".")
    ControlClick("Computernamen ändern", "", "Button7")
    ControlClick("Systemeigenschaften", "", "Button4")
    Exit
    EndIf
    Send($NeueArbeitsgruppe)
    ControlClick("Computernamen ändern", "", "Button6")
    While 1
    If StringInStr(WinGetText("Computernamen ändern"), "Willkommen in der Arbeitsgruppe " & $NeueArbeitsgruppe) Then
    ExitLoop
    Else
    Sleep(100)
    EndIf
    WEnd
    Send("{ENTER}")
    While 1
    If StringInStr(WinGetText("Computernamen ändern"), "Die Änderungen werden erst wirksam, wenn Sie den Computer neu starten.") Then
    ExitLoop
    Else
    Sleep(100)
    EndIf
    WEnd
    Send("{ENTER}")
    ControlClick("Systemeigenschaften", "", "Button3") ; Systemeigenschaften schließen
    ControlClick("Geänderte Systemeinstellungen", "", "Button1") ; Ja (Neustart) = "Button1", Nein ist "Button2"

    [/autoit]

    Dateien

    ChangeWorkgroup.au3 1,41 kB – 333 Downloads
  • Array Problem...

    • BugFix
    • 28. Januar 2007 um 18:36
    [autoit]

    $Pos = _ArraySearch($arTemp, $tmp1, 0, 0, 0, True)

    [/autoit]


    "True" ? wofür steht das Argument, hab ich in der Hilfe nicht gefunden, dort sind nur: String, Searchstring + 3 Arg. aufgeführt.

  • Array Problem...

    • BugFix
    • 28. Januar 2007 um 17:52

    Check mal ab, ob $arTemp überhaupt Inhalt hat. Mach vor der Schleife _ArrayDisplay( ).

  • txt Dateien in einder kopieren

    • BugFix
    • 28. Januar 2007 um 17:39

    Erneut etwas raten:
    Gesamten Inhalt von $anzahl Dateien in eine Zieldatei schreiben?

  • txt Dateien in einder kopieren

    • BugFix
    • 28. Januar 2007 um 17:21

    Sry, aber du hast noch immer nicht geschrieben WAS als Ergebnis herauskommen soll??

  • Zeile 2 mit StringMid

    • BugFix
    • 27. Januar 2007 um 22:47

    Du hast vergessen, die Variable fürs Ergebnis als Array zu deklarieren:

    [autoit]

    Dim $arErgebnis[1]

    [/autoit]

    Schreib es so, dann klappt es.

  • Zeile 2 mit StringMid

    • BugFix
    • 27. Januar 2007 um 21:31

    Laß dir mal vor _FileWriteFromArray() das Array anzeigen:
    _ArrayDisplay($array, "Titel")

    Mit meinen Testdateien funzt das.

  • Zeile 2 mit StringMid

    • BugFix
    • 27. Januar 2007 um 20:20
    [autoit]

    _FileWriteFromArray($pathMain, $match,1,1)

    [/autoit]

    (nur Eintrag 1) oder

    [autoit]

    _FileWriteFromArray($pathMain, $match,1,0)

    [/autoit]

    (gesamtes Array) ist in diesem Fall identisch, da nur ein Treffer.

    Aber - in jedem Schleifendurchlauf mit Treffer bewirkt dieser Befehl, dass "$pathMain" NEU geschrieben wird. Die alte Datei wird also überschrieben.
    Ich mach dir gleich mal 'ne Variante, die das löst. Kommt im Edit.

    EDIT:

    Spoiler anzeigen
    [autoit]

    For $i = 1 To $string[0] ; Dateiliste abarbeiten
    _FileReadToArray($pfad & $string[$i], $frta)
    If @error <> 0 Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " & $pfad & $string[$i] & @LF & "Fehler: " & @error)
    Else
    $match = _StringBetween($frta[2],"/", ";") ; Wert in Zeile 2 auslesen
    If Not @error Then
    If StringInStr($frta[2], "K;380") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "& $string[$i] & " " & $match[0])
    ;_Rechnung()
    _ArrayAdd($arErgebnis, $match[0])
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    ElseIf StringInStr($frta[2], "K;130") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "& $string[$i] & " " & $match[0])
    ;_EVN()
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    EndIf
    Else
    MsgBox(4096, "", "In Datei: "& $string[$i] & " ist Nummer nicht enthalten.")
    EndIf
    EndIf
    Next
    _FileWriteFromArray($pathMain, $arErgebnis,1)
    Exit

    [/autoit]
  • Zeile 2 mit StringMid

    • BugFix
    • 27. Januar 2007 um 15:38

    So, hab deine Files mal nachgebaut ;) und dann getestet.
    Jetzt funzt es:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <date.au3>
    #include <array.au3>
    #include <string.au3>
    Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info

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

    Dim $pfad = "C:\GLI_Prod\12 2006\"
    Dim $string = _FileListToArray($pfad, "*.INH") ; liest alle *.INH-Files in Array $string
    Dim $match, $frta

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

    If Not IsArray($string) Then
    MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!")
    Exit
    EndIf

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

    For $i = 1 To $string[0] ; Dateiliste abarbeiten
    _FileReadToArray($pfad & $string[$i], $frta)
    If @error <> 0 Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " & $pfad & $string[$i] & @LF & "Fehler: " & @error)
    Else
    $match = _StringBetween($frta[2],"/", ";") ; Wert in Zeile 2 auslesen
    If StringInStr($frta[2], "K;380") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "& $string[$i] & " " & $match[0])
    ;_Rechnung()
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    ElseIf StringInStr($frta[2], "K;130") Then ; Eintrag ist vorhanden
    ;MsgBox(4096, "", "vorhanden bei datei: "&$frta[$i])
    ;_EVN()
    Sleep(1500)
    ;~ ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    EndIf
    EndIf
    Next

    [/autoit]
  • Zeile 2 mit StringMid

    • BugFix
    • 27. Januar 2007 um 14:55
    Zitat

    mit _filewritefromarry schreibe ich dann in eine datei?


    Ja, jeder Eintrag des Arrays wird in eine einzelne Zeile geschrieben.

    Ich hab mal einige Änderungen vorgenommen und entsprechend kommentiert.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <date.au3>
    #include<array.au3>
    Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
    ;~ $frta = _FileListToArray("C:\GLI_Prod\12 2006\", "*.INH") überflüssig -> neue Deklaration in Zeile 7
    Global $string = _FileListToArray("C:\GLI_Prod\12 2006\", "*.INH") ; liest alle *.INH-Files in Array $string
    ;~ Global $frta = _StringBetween($string,"/", ";") ; selektiert aus DATEINAMEN !! -> da kann er nix finden
    Dim $match, $frta

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

    If Not IsArray($string) Then
    MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!")
    Exit
    EndIf
    For $i = 1 To $string[0] ; Dateiliste abarbeiten
    If IsArray(_FileReadToArray("C:\GLI_Prod\12 2006\" & $string[$i], $frta)) Then ; einzelne Datei in Array lesen ($ftra)
    $match = _StringBetween($frta[2],"/", ";") ; Wert in Zeile 2 auslesen
    If StringInStr($frta[2], "K;380") Then ; Eintrag ist vorhanden
    MsgBox(4096, "", "vorhanden bei datei: "& $string[$i] & "" & $match[0])
    ;_Rechnung()
    Sleep(1500)
    ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    ElseIf StringInStr($frta[2], "K;130") Then ; Eintrag ist vorhanden
    ;MsgBox(4096, "", "vorhanden bei datei: "&$frta[$i])
    ;_EVN()
    Sleep(1500)
    ExitLoop ; dann wird Bearbeitung abgebrochen !!!
    EndIf
    Else
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " &"C:\GLI_Prod\12 2006\" & $string[$i] & @LF & "Fehler: " & @error)
    ;~ Exit ; falsch -> dann wird Programm beendet, nächste Datei soll aber bearbeitet werden!
    EndIf
    Next

    [/autoit]
  • Verknüpfung in Quick Start Leiste löschen?

    • BugFix
    • 27. Januar 2007 um 09:44
    Zitat

    wie kann ich das skype-setup starten wenn ich den genauen name nicht kenne?


    Verstehe ich nicht ganz. Du mußt doch die Installationsdateien auf einem Datenträger haben - dann kennst du doch auch den Namen?
    Falls dir nur der Speicherort bekannt ist, könntest du diesen Pfad durchsuchen, also alle Dateinamen (filtern nach EXE-Files) in ein Array laden, Elementweise abfragen ob StringInString($Element, "Skype"). Wenn ja,ist das die gesuchte Datei.

  • Verknüpfung in Quick Start Leiste löschen?

    • BugFix
    • 27. Januar 2007 um 00:24

    Wenn du diese Punkte entfernen möchtest - warum verwendest du dann die Installversion von Foxit Reader? Mit der ZIP-Version hast du die Probs nicht - einfach in einen Zielordner kopieren - fertig.

  • Zeile 2 mit StringMid

    • BugFix
    • 26. Januar 2007 um 21:07

    schau dir mal _StringBetween( ) an

    [autoit]

    $var = _StringBetween($zeile2, "/", ";")
    $nummer = $var[0]

    [/autoit]
  • Zeile 2 mit StringMid

    • BugFix
    • 26. Januar 2007 um 20:32

    Zeile 2 ist auch die zweite Zeile des Array (Leerzeilen inklusive).
    Also: $txtZeile2 = Array[2]

    Was also möchtest du genau machen?

    Edit: Sry, Array hat ja in diesem Fall bei [0] die Anzahl

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™