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

Beiträge von name22

  • Datei infos ändern oder definieren

    • name22
    • 2. Mai 2010 um 18:41

    Das kann man unter anderem auch über Parameter machen. Ich habe dafür mal was geschrieben.

    Spoiler anzeigen
    [autoit]

    #RequireAdmin

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

    $PathSource = FileOpenDialog("Script auswählen", @ScriptDir, "Au3 Scripts (*.au3)")
    $IconPath = FileOpenDialog("Icon auswählen", @ScriptDir, "Icons (*.ico)")
    $Complevel = InputBox("Kompressionslevel", "0 - 4", 2)
    $UPXPack = InputBox("UPX", "Mit UPX packen? 1 = Ja; 0 = Nein", 1)
    If $UPXPack = 1 Then
    $UPXPack = "/pack"
    Else
    $UPXPack = "/nopack"
    EndIf
    $ANSI_Unicode = InputBox("ANSI/Unicode", "1 = ANSI; 2 = Unicode", 2)
    If $ANSI_Unicode = 1 Then
    $ANSI_Unicode = "/ansi"
    Else
    $ANSI_Unicode = "/unicode"
    EndIf
    $Console = InputBox("Konsole/GUI", "1 = Konsole; 2 = GUI", 2)
    If $Console = 1 Then
    $Console = "/console"
    Else
    $Console = "/gui"
    EndIf
    $PathDest = FileSaveDialog("Speichern unter", @ScriptDir, "Exe (*.exe)")
    RunWait(StringTrimRight(@AutoItExe, 11) & "Aut2Exe\Aut2exe.exe /in " & $PathSource & " /out " & $PathDest & ".exe /icon " & $IconPath & " /comp " & $Complevel & " " & $UPXPack & " " & $ANSI_Unicode & " /x86 " & $Console)
    RunWait(StringTrimRight(@AutoItExe, 11) & "Aut2Exe\Aut2exe.exe /in " & $PathSource & " /out " & $PathDest & "_x64.exe /icon " & $IconPath & " /comp " & $Complevel & " " & $UPXPack & " " & $ANSI_Unicode & " /x64 " & $Console))

    [/autoit]


    Es gibt aber auch andere Möglichkeiten.

  • Bestimmten Wert aus Programm auslesen

    • name22
    • 2. Mai 2010 um 18:35
    Zitat

    Kann ich auch gleich den handle von dem Programm, das ich gestartet habe, auslesen?


    Ein Programm hat kein Handle, sondern nur dessen Fenster ;).
    Du musst über den Titel mit WinGetHandle die Handles der Fenster herausfinden.

  • ListItems gehen nicht. Fenster "einfrieren".

    • name22
    • 2. Mai 2010 um 18:29
    Zitat

    Wie kann ich jetzt ein ListItem in eine Variable fassen?


    Gar nicht. ;) Du musst einen Klick auf die Liste abfragen und dann mit GUICtrlRead arbeiten.
    Und zum Thema einfrieren: GUISetState(@SW_DISABLE) bzw. WinSetState(@SW_DISABLE).

  • Notebook an die Wand

    • name22
    • 2. Mai 2010 um 18:25
    Zitat

    Spieglein, Spieglein an der Wand, wer ist das beste Notebook an der Wand? LOL


    :rofl: Off-Topic, aber lustig. ^^

  • InetMail() gibt unbekannte PID´s zurück ????

    • name22
    • 2. Mai 2010 um 18:05
    Zitat

    Ich brauche den Titel um mit WinWaitActive () darauf zuzugreifen...

    Hat jemand eine Idee, den in der Hilfe gibt es keine fertigen Funktionen um über die PId oder Hwnd an den Fenstertitel zu kommen...?


    Lern lesen.... :rolleyes:

    Zitat

    Weiß ich nicht, aber du wolltest doch die Fenster des Prozesses oder?

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <Process.au3>
    #include <Array.au3>

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

    $Process = _ProcessGetName(_INetMail("", "", ""))
    MsgBox(0, "", $Process)

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

    $aResult = _ProcessGetWindows($Process)
    _ArrayDisplay($aResult)

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

    Func _ProcessGetWindows($sProcessName)
    $aWinList = WinList()
    $sWindowsFound = ""
    If IsInt($sProcessName) Then
    For $i = 1 To $aWinList[0][0]
    If WinGetProcess($aWinList[$i][0]) = $sProcessName And $aWinList[$i][0] <> "" Then $sWindowsFound &= $aWinList[$i][0] & '|'
    Next
    Else
    For $i = 1 To $aWinList[0][0]
    If _ProcessGetName(WinGetProcess($aWinList[$i][0])) = $sProcessName And $aWinList[$i][0] <> "" Then $sWindowsFound &= $aWinList[$i][0] & '|'
    Next
    EndIf
    If $sWindowsFound = "" Then Return -1
    Return StringSplit(StringTrimRight($sWindowsFound, 1), "|", 2)
    EndFunc ;==>_ProcessGetWindows

    [/autoit]


    Das zeigt mir alle Thunderbird Fenster an. ;)

    Alles anzeigen
  • [Anfrage]Script

    • name22
    • 2. Mai 2010 um 18:03

    So RiseAgainst... Hast PN. :D

  • InetMail() gibt unbekannte PID´s zurück ????

    • name22
    • 2. Mai 2010 um 16:25
    Zitat

    Weil du ProcessList() schon VOR _INetMail() aufrufst welche erst das Mailprogramm startet?


    Oh, das ist mir gar nicht aufgefallen. :D

  • Hilfe mit _VersionCompare etc. (updater)

    • name22
    • 2. Mai 2010 um 16:24

    Hier findest du einiges zum Thema. :D
    Da gibt es auch einen Thread in dem genau das gleiche gefragt wird wie hier. ;)

  • Notebook an die Wand

    • name22
    • 2. Mai 2010 um 16:20
    Zitat

    und ich meinte ob man mit autoit nen tool schreiben kann um zb den Bass per klick zu konfigurieren


    Klar kann man das machen. Z.B. über die BASS.au3. Das ist allerdings nicht ganz so einfach. ;)
    Wieso benutzt du nicht einfach den VLC Media Player oder den Windows Media Player? Das wäre doch viel einfacher. :D

  • InetMail() gibt unbekannte PID´s zurück ????

    • name22
    • 2. Mai 2010 um 16:17
    Zitat

    Warum taucht die PID in dem von ProcessList() erstelltem Array nicht auf?


    Weiß ich nicht, aber du wolltest doch die Fenster des Prozesses oder?

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <Process.au3>
    #include <Array.au3>

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

    $Process = _ProcessGetName(_INetMail("", "", ""))
    MsgBox(0, "", $Process)

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

    $aResult = _ProcessGetWindows($Process)
    _ArrayDisplay($aResult)

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

    Func _ProcessGetWindows($sProcessName)
    $aWinList = WinList()
    $sWindowsFound = ""
    If IsInt($sProcessName) Then
    For $i = 1 To $aWinList[0][0]
    If WinGetProcess($aWinList[$i][0]) = $sProcessName And $aWinList[$i][0] <> "" Then $sWindowsFound &= $aWinList[$i][0] & '|'
    Next
    Else
    For $i = 1 To $aWinList[0][0]
    If _ProcessGetName(WinGetProcess($aWinList[$i][0])) = $sProcessName And $aWinList[$i][0] <> "" Then $sWindowsFound &= $aWinList[$i][0] & '|'
    Next
    EndIf
    If $sWindowsFound = "" Then Return -1
    Return StringSplit(StringTrimRight($sWindowsFound, 1), "|", 2)
    EndFunc ;==>_ProcessGetWindows

    [/autoit]


    Das zeigt mir alle Thunderbird Fenster an. ;)

  • Notebook an die Wand

    • name22
    • 2. Mai 2010 um 16:10

    Was hältst du davon?
    Und was meinst du mit Sound-Anlage?

  • InetMail() gibt unbekannte PID´s zurück ????

    • name22
    • 2. Mai 2010 um 16:04

    Wieso ungültig? :P

    Spoiler anzeigen
    [autoit]

    #include <Inet.au3>
    #include <Process.au3>

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

    MsgBox(0, "", _ProcessGetName(_INetMail("", "", "")))

    [/autoit]


    In der MsgBox steht bei mir: "thunderbird.exe".

  • Mein erster Skript/Eine Wette ums Recht

    • name22
    • 2. Mai 2010 um 14:59
    Zitat

    also was bringt es wenn der ne halbe sekunde schläft?


    Geringere Prozessorauslastung ;). In diesem Fall ist es aber einfach nicht nötig alle paar tausendstel Sekunden zu überprüfen ob der Prozess existiert. Deshalb das Sleep.

  • Anfänger: WoW Makro-Konverter StringSplit/Array(?)

    • name22
    • 2. Mai 2010 um 14:28

    Versuch es mal so:

    Spoiler anzeigen
    [autoit]

    $sString = ""
    For $i = 0 To UBound($FileList) -1
    $sString &= $FileList[$i] & "=" & $i + 1 & @CRLF
    Next
    FileWrite($hFile, $sString)

    [/autoit]
  • Client Position eines Fensters!

    • name22
    • 2. Mai 2010 um 12:35

    Ich habe gerade diesen Befehl hier entdeckt:

    Spoiler anzeigen
    [autoit]

    $tRect = _WinAPI_GetClientRect($hWnd)

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

    $iLeft = DllStructGetData($tRect, "Left")
    $iTop = DllStructGetData($tRect, "Top")
    $iRight = DllStructGetData($tRect, "Right")
    $iBottom = DllStructGetData($tRect, "Bottom")

    [/autoit]


    Vielleicht hilft er dir ja weiter.

  • Wie wird @YDAY errechnet ?

    • name22
    • 2. Mai 2010 um 01:36
    Zitat

    Wieso sollte man dann da das Jahr benötigen ?


    Deswegen:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    MsgBox(64, "YDay", "Im Jahr 2008 seit dem 5.5. vergangene Tage: " & _DateToDaysOfYear(5, 5, 2008))
    MsgBox(64, "YDay", "Im Jahr 2010 seit dem 5.5. vergangene Tage: " & _DateToDaysOfYear(5, 5, 2010))

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

    Func _DateToDaysOfYear($iDay, $iMonth, $iYear)
    Local $iYDays = $iDay
    For $i = 1 To $iMonth - 1
    $iYDays += _DateDaysInMonth($iYear, $i)
    Next
    Return $iYDays
    EndFunc ;==>_DateToDaysOfYear

    [/autoit]


    Deine Version ist nicht immer ganz korrekt.

  • Anfänger: WoW Makro-Konverter StringSplit/Array(?)

    • name22
    • 2. Mai 2010 um 01:29
    Zitat

    brauche ja eine art datenbank wo drin steht Spell_ChargeNegative = 1 usw.


    Ja da bietet sich eine ini an. ;)
    Du kannst dann mit StringReplace die Namen durch ihre entsprechenden Nummern ersetzen.

    Zitat

    es muß also innerhalb eines mehrzeiligen makros hinter jede zeile ein \n gesetzt werden. wie kann ich das jetzt noch weiter splitten um überall /n einzufügen und wie krieg ich das dann wieder zusammen?


    Mit

    Spoiler anzeigen
    [autoit]

    $aResult = StringSplit($sSpell, "/", 2)
    $sSpell = ""
    For $i = 0 To UBound($aResult) -1
    $sSpell &= "/" & $aResult[$i] & "\n"
    Next
    $sSpell = StringTrimRight($sSpell, 2)

    [/autoit]
  • Wie wird @YDAY errechnet ?

    • name22
    • 2. Mai 2010 um 01:19
    Zitat

    alle vergangenen tage dieses jahres zusammen rechnen


    Das geht z.B. so:

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>

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

    MsgBox(64, "YDay", "Im Jahr 2010 seit dem 5.5. vergangene Tage: " & _DateToDaysOfYear(5, 5, 2010))

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

    Func _DateToDaysOfYear($iDay, $iMonth, $iYear)
    Local $iYDays = $iDay
    For $i = 1 To $iMonth - 1
    $iYDays += _DateDaysInMonth($iYear, $i)
    Next
    Return $iYDays
    EndFunc ;==>_DateToDaysOfYear

    [/autoit]


    Aber ein Jahr muss man natürlich angeben, sonst stimmt es nicht mehr. ;)

  • Mein erster Skript/Eine Wette ums Recht

    • name22
    • 2. Mai 2010 um 00:37
    Zitat

    name22: hatten wir uns nichtmal darauf geeinigt, das ShellExecute viel besser ist als Run? :whistling:


    Du Pedant... :rolleyes:

    Spoiler anzeigen
    [autoit]

    While Sleep(500)
    If ProcessExists("Firefox.exe") Then
    ShellExecute("Pfad zu Programm 1")
    ShellExecute("Pfad zu Programm 2")
    ShellExecute("Pfad zu Programm 3")
    ShellExecute("Pfad zu Programm 4")
    ExitLoop
    EndIf
    WEnd

    [/autoit]


    In diesem Fall ist es aber vollkommen egal. :D

  • gui problem

    • name22
    • 1. Mai 2010 um 20:07

    Mir gefällt der Avatar zwar auch nicht, aber solange er nicht völlig abstoßend oder nicht Jugendfrei ist können wir nichts dagegen unternehmen.

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™