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

Beiträge von Moombas

  • RUN startet Datei mit Teilnamen des gewünschten Dateinamens

    • Moombas
    • 17. Januar 2022 um 08:40

    Naja Windoof will halt die " haben. Also einfach Run('"test neu.exe"') machen und alles ist schick. Funktioniert zumindest bei mir Einwandfrei.

  • IniWrite Problem

    • Moombas
    • 14. Januar 2022 um 13:11

    Bzw. ich würde für solche Dateien immer eine Global Const setzen.

    Das direkte auslesen des einzelnen Wertes hatte ich jetzt nicht vorgeschlagen, da ich nicht wusste, ob später noch mehr Werte zu der Sektion hinzukommen, die so behandelt werden sollen.

    Aber ich würde wie Velted sonst auch einfach den Wert direkt ansprechen, als eine ganze Sektion.

  • IniWrite Problem

    • Moombas
    • 14. Januar 2022 um 11:44

    Korrektur: siehe oben, dem Pfad fehlte das Drive -.-

  • IniWrite Problem

    • Moombas
    • 14. Januar 2022 um 11:41

    Den Array brauch ich nicht abfangen, der Wert wird in die angegebene Variable übergeben und wird bei mir auch vernünftig gefüllt.

    Und auch die Ini Datei wird bei mir nach den Änderungen einwandfrei neu geschrieben.

  • IniWrite Problem

    • Moombas
    • 14. Januar 2022 um 11:28

    Versuchs mal so:

    AutoIt
    Opt('MustDeclareVars', 1)
    #include <File.au3>
    #include <FileConstants.au3>
    
    Global $sDrive = "", $pExcelFilePath = "", $sFileName = "", $sExtension = ""
    Global $aExcel = IniReadSection(@ScriptDir & "\test.ini", "EXCEL" )
    Global $pExcelDir = $aExcel[ 1 ][ 1 ]
    Global $sExcelFile = FileOpenDialog( "Select Excel-File", $pExcelDir, "Excel-File (*.xlsx; *.xls)", $FD_FILEMUSTEXIST )
    _PathSplit( $sExcelFile, $sDrive, $pExcelFilePath, $sFileName, $sExtension)
    $pExcelFilePath = $sDrive & $pExcelFilePath
    ;~ Global $pExcelFilePath = _PathSplit( $sExcelFile, $sDrive, $sDir, $sFileName, $sExtension)[ 1 ] & _PathSplit( $sExcelFile, $sDrive, $sDir, $sFileName, $sExtension)[ 2 ]
    
    ConsoleWrite( $pExcelDir & @CRLF & $pExcelFilePath & @CRLF & StringCompare( $pExcelDir, $pExcelFilePath ) & @CRLF )
    If StringCompare($pExcelDir, $pExcelFilePath) <> 0 Then; And Not @error And Not $sExcelFile == "" Then
       IniDelete(@ScriptDir & "\test.ini", "EXCEL" )
       IniWrite(@ScriptDir & "\test.ini", "EXCEL", "ExcelDir", $pExcelFilePath )
       $pExcelDir = $pExcelFilePath
    EndIf
    Alles anzeigen

    SciTe 3.7.3

  • IniWrite Problem

    • Moombas
    • 14. Januar 2022 um 11:20

    error: _PathSplit() called with Const or expression on ByRef-param(s).

  • GUI zerschießt sich beim Minimieren

    • Moombas
    • 14. Januar 2022 um 10:30

    Hallo JBO, bei deinem Beispiel zerschießt sich das GUI beim verschieben.

  • AD Attribute

    • Moombas
    • 14. Januar 2022 um 09:49

    Hast du mal geschaut, was dir _AD_GetObjectsInOU zurück gibt (danach _ArrayDisplay($aUserIDs)) bzw. Casesensitiv ist das nicht oder (DisplayName <> displayName)?

  • GUI zerschießt sich beim Minimieren

    • Moombas
    • 14. Januar 2022 um 09:24

    Also, ich habe das Beispiel von Velted mal probiert und bei mir zerschießt sich die GUI nicht.

  • Pfad eines laufenden Programms ermitteln

    • Moombas
    • 13. Januar 2022 um 11:47

    AspirinJunkie dein link funzt bei mir nicht. Daher hier nochmal: https://www.autoitscript.com/autoit3/docs/l…essFileName.htm

    JBO: Das müsste auch gehen, da der komplette Pfad zurück gegeben wird. Bräuchtest also nur den Dateinamen entfernen, wenn du nur den Pfad brauchst.

  • Pfad eines laufenden Programms ermitteln

    • Moombas
    • 13. Januar 2022 um 11:35

    Mit den richtigen Google "Begriffen" (autoit pfad eines programms über pid) gefunden :P

    Thema

    Anwendungspfad anhand der PID ermitteln

    Hi,
    hier mal eine Möglichkeit mit der PID den Pfad der Anwendung zu ermitteln.
    Wird keine PID übergeben, gibt die Funktion den Pfad für die Anwendung des aktiven Fensters zurück.

    (Versteckter Text)

    Edit: Es gibt ja kaum was, was nicht schon jemand getan hat ;(
    Habe gerade eine ähnliche Lösung (1 Monat alt) im EN-Forum gefunden. Link
    Naja, ich habs als Zweiter getan - der andere als Vorletzter. :rofl:
    BugFix
    1. April 2009 um 19:18
  • Zum Programmanfang zurückkehren...

    • Moombas
    • 12. Januar 2022 um 13:30

    Das kannst du doch (wie bereits hier von water veranschaulicht als Code) immer mit einer Funktion realisieren (der ggf. die gescannte Seriennummer mitgegeben wird).

    Aber die entsprechenden Variablen (die jedes mal am Anfang Gleich sein sollen) müssen natürlich Local definiert sein und nicht global.

    Dann funktioniert das auch ohne Probleme.

  • GUI zerschießt sich beim Minimieren

    • Moombas
    • 11. Januar 2022 um 10:02

    Ohne Code, keine hilfe möglich.

  • Script für Software Pro_Medico

    • Moombas
    • 7. Januar 2022 um 16:00

    Wüsste nicht das es geht per Platzhalter, ggf. aber versuch mal folgende Änderung (ab Zeile 7):

    AutoIt
    Global Const $Handle = FindWindowHandle()
    WinClose($Handle) 
    sleep(5000) 
    if ProcessExists($ExeName) Then 
        winactivate($Handle)
  • Frage

    • Moombas
    • 7. Januar 2022 um 11:22

    Also ich rate bei Gaming zu Alienware (was ja die Dell Marke fürs Gaming ist).

    Aber wenn wirklich nur reine Office Sachen (incl. Mail und Surfen) nutzt sind die meisten Dell einfach vom Kosten/Nutzen Faktor zu hoch angesetzt. Außer man legt Wert auf die gute Verarbeitung. Support kann ich leider nichts zu sagen, brauchten wir bisher noch nie :)

    "Vergleichbar" wird halt schwer. Doof gesagt jeder aktuelle 0815 Laptop reicht dafür aus, wenn denn nicht doch noch mehr damit gemacht werden soll.

  • Script für Software Pro_Medico

    • Moombas
    • 7. Januar 2022 um 11:14

    Support ist zu viel gesagt und das alles geschieht ohne Garantie oder Haftung! Alles auf deinen Angaben basierend und ohne jedes Recht auf Richtigkeit.

    Nutzung (incl. Generierung der Exe) und Tests sind alle in Eigenverantwortung durchzuführen.

    Siehe Kommentare!

    AutoIt
    Opt('MustDeclareVars', 1)
    #include <WinAPISysInternals.au3>
    #include <WindowsConstants.au3>
    
    Global Const $ExeName = 'PMWIN.EXE'
    
    WinClose(FindWindowHandle())         ;Laufendes Programm schließen ohne Force. Eine Meldung vom Programm sollte das schließen verhindern und den Dialog zeigen
    sleep(5000)                            ;Warten umdem Programm zeit zum schließen zu geben
    if ProcessExists($ExeName) Then        ;Prüfen ob das Programm noch läuft, denn dann ist der Dialog hoch gekommen.
        Send("{ENTER}")                    ;Den Dialog mit Enter bestätigen
        ;hier müsste der Code zum Starten der Datensicherung rein, ist ja scheinbar nicht direkt über den Dialog startbar.
        ;Die Information zum starten der Datensicherung müsstest du nachreichen, da ich das Programm selber nicht habe ginge das nur über Tastatureingaben durchs Menü hangeln
        ;Wird nach dem Abschluss der Datensicherung das Programm selbstständig beendet?
        While ProcessExists($ExeName)    ;Warten bis das Programm beendet wurde.
            Sleep(60000)                ;Jede Minute prüfen ob Datensicherung bzw. der Prozess noch läuft, basierend auf deiner Annahme das dies über das Programm selber läuft.
        WEnd
    EndIf
    Shutdown($SD_SHUTDOWN)
    
    
    Func FindWindowHandle()
    Local $i, $hWnd
    Local Const $ProcessList = ProcessList()
        For $i = 1 to $ProcessList[0][0]
            if StringInStr($ProcessList[$i][0], $ExeName) Then
    ;~             $PID = $ProcessList[$i][1]
                $hWnd = _WinGetByPID($ProcessList[$i][1], 1)
                If BitAND(WinGetState($hWnd), $WIN_STATE_EXISTS) then ExitLoop
            EndIf
        Next
        if $hWnd = "" then
            Return -1
        Else
            Return $hWnd
        EndIf
    EndFunc
    
    ;from https://www.autoitscript.com/forum/topic/136271-solved-wingethandle-from-wingetprocess/
    Func _WinGetByPID($iPID, $iArray = 1) ; 0 Will Return 1 Base Array & 1 Will Return The First Window.
        Local $aError[1] = [0], $aWinList, $sReturn
        If IsString($iPID) Then
            $iPID = ProcessExists($iPID)
        EndIf
        $aWinList = WinList()
        For $A = 1 To $aWinList[0][0]
            If WinGetProcess($aWinList[$A][1]) = $iPID And BitAND(WinGetState($aWinList[$A][1]), 2) Then
                If $iArray Then
                    Return $aWinList[$A][1]
                EndIf
                $sReturn &= $aWinList[$A][1] & Chr(1)
            EndIf
        Next
        If $sReturn Then
            Return StringSplit(StringTrimRight($sReturn, 1), Chr(1))
        EndIf
        Return SetError(1, 0, $aError)
    EndFunc   ;==>_WinGetByPID
    Alles anzeigen
  • Script für Software Pro_Medico

    • Moombas
    • 6. Januar 2022 um 14:02

    Kannst du mir den exe-Namen der Software nennen und den Fenstertitel von der Datensicherungsabfrage (Screenshot?)?

  • Script für Software Pro_Medico

    • Moombas
    • 6. Januar 2022 um 10:19

    Ist das wirklich eine Anfrage für Gegenleistung?

    Warum ich Frage:

    1. Müsste mit ProcessClose() gehen (killen wäre ProcessTerminate()) aber korrigiert mich wenn ich mich hier irre. Diese Annahme war Falsch. Es ist WinClose()

    2. Könnte man mit einer Abfrage nach dem Fenster hin bekommen, bei der Bestätigung bin ich mir gerade nicht sicher. Aber Sicherung abwarten sollte über While ProcessExists() gehen (ich gehe davon aus das eine separate exe dafür genutzt wird).

    3. wird über 4. normalerweise automatisch gemacht, wenn noch offene Programme da sind.

    4. Wäre Shutdown()

    Das Programm dann über den Taskplaner zur gewünschten Uhrzeit ausführen lassen.

  • Vivaldi Tab schließen

    • Moombas
    • 3. Januar 2022 um 14:29

    Ich habe das auch gefunden aber mir jetzt nicht die verfügbaren Schalter angeschaut ob da ein passender dabei wäre.

  • Vivaldi Tab schließen

    • Moombas
    • 3. Januar 2022 um 13:07

    Kannst du nicht einen Schalter für die Silent-Installation setzen, das diese Webseite am Ende nicht aufgerufen wird?

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™