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

Beiträge von Magma

  • Doppelter Prozess - Programm startet zwei mal?

    • Magma
    • 21. September 2014 um 22:33

    Vielen Dank misterspeed, du hast den richtigen Riecher gehabt. :thumbup:


    [Blockierte Grafik: http://www.fotos-hochladen.net/uploads/fehler05el6infxzrb.jpg]

    Nach dem ich im AVAST! Antivierenprogramm DEEPSCREEN abgehakt habe, laufen die Programme mit nur einen Prozess.


    Andy, ich sehe es auch so, dass es bei einem normalen Programm keine signifikanten Unterschiede geben wird, aber in dem von mir gemachten und getesteten Programm laufen Audios, die diese Unterschiede wahrscheinlich verursachen. Aber das ist ja jetzt kein Problem mehr. :)

  • Doppelter Prozess - Programm startet zwei mal?

    • Magma
    • 21. September 2014 um 00:05

    Vielen Dank für eure Einschätzungen.

    misterspeed, ich habe im Compile-Dialog kein UPX angehakt. Daran kann es eigentlich nicht liegen.

    [Blockierte Grafik: http://www.fotos-hochladen.net/uploads/compile64bc2sh1i78t.jpg]

    Das Beenden des Programmfensters passiert bei der 32 Bit-Version genau so wie bei der 64 Bit-Version. Starte doch mal die Demo und warte einfach mal 30 Sekunden.

    Spoiler anzeigen
    Code
    #include <GUIConstantsEx.au3>
    
    
    Example()
    
    
    Func Example()
        ; Create a GUI with various controls.
        Local $hGUI = GUICreate("Example", 300, 200)
    
    
        ; Create an animation control.
        Local $idAnimation = GUICtrlCreateAvi(@SystemDir & "\shell32.dll", 165, 15, 0, 300)
        Local $idStart = GUICtrlCreateButton("Start", 60, 150, 85, 25)
        Local $idStop = GUICtrlCreateButton("Stop", 160, 150, 85, 25)
    
    
        ; Display the GUI.
        GUISetState(@SW_SHOW, $hGUI)
    
    
        ; Loop until the user exits.
        While 1
            Switch GUIGetMsg()
                Case $GUI_EVENT_CLOSE
                    ExitLoop
    
    
                Case $idStart ; Start the animation.
                    GUICtrlSetState($idAnimation, $GUI_AVISTART)
    
    
                Case $idStop ; Stop the animation.
                    GUICtrlSetState($idAnimation, $GUI_AVISTOP)
    
    
            EndSwitch
        WEnd
    
    
        ; Delete the previous GUI and all controls.
        GUIDelete($hGUI)
    EndFunc   ;==>Example
    Alles anzeigen


    Andy, zum einen werden die Fenster schneller aufgebaut, aber was noch deutlicher zu sehen ist, ist das Blinken des Cursors im Eingabefeld in meinem Programm. Es ist deutlich langsamer in der 32-Bit-Variante. Das führe ich auf erhöhte I/O zurück.

    Bei der 32- Bit-Version sieht man 31,5 MB I/Os Read
    [Blockierte Grafik: http://www.fotos-hochladen.net/uploads/32bitios3xonerv8y0.jpg]

    Bei der 64 Bit-Version sieht man gerade mal 32,0 KB I/Os Read
    [Blockierte Grafik: http://www.fotos-hochladen.net/uploads/64bitiossymz3v6hax.jpg]


    Mich wundert es, dass ich es bei mir auf zwei verschiedenen PC nach vollziehen kann, aber kein anderer es bisher bemerkt hat, dass sich ein Geisterprozess öffnet? :?:

  • Doppelter Prozess - Programm startet zwei mal?

    • Magma
    • 20. September 2014 um 18:15

    Hallo,

    Ich benutze Autoit Ver 3.3.12.0 und SciTE Ver 3.4.4. Nun habe ich folgendes Problem:

    Ich starte Ein Autoit-Skript aus SciTE heraus (mit Taste F5) und es wird scheinbar ordnungsgemäß ausgeführt.

    Wenn ich das Skript im x86-Mode compiliere, wird es auch scheinbar ordnungsgemäß ausgeführt.

    Wenn ich das Skript im x64-Mode compiliere, wird das Programm gestartet und es poppt nach einer kurzen Weile weg um dann gleich nochmal zu starten.

    Der Process Explorer zeigt für die drei verschieden Fälle jeweils zwei Prozesse an. Bei den compilierten Programmen verschwindet der untergeordnete Prozess nach einer Weile. Selbst die in diesem Prozess extra angelegte Logdatei wird nicht angelegt oder gespeichert, obwohl es auf dem Bildschirm ausgegeben wird. Erst der Verbleibende Prozess legt die Log korrekt an.

    Auch mit dem Beispiel <GUICtrlCreateAvi> aus der Hilfe kann man diesen Effekt provozieren.


    Kann man diesen Fehler abschalten? Ich möchte die x64-Version benutzen, wegen der besten Performance benutzen.

    Autoit-Skript aus SciTE
    [Blockierte Grafik: http://img5.fotos-hochladen.net/uploads/f5runskriptqxw72vfaum.jpg]
    die Beiden Autoit3Wrapper.exe bleiben die ganze Zeit erhalten.

    Skript compiliere im x86-Mode
    [Blockierte Grafik: http://img5.fotos-hochladen.net/uploads/x86mode2xtestjmryf2a5bu.jpg]
    Der Prozess 2688 und der Prozess 5596

    nach ca. 15 sec.
    [Blockierte Grafik: http://img5.fotos-hochladen.net/uploads/x86mode1xtestvmx0dqo2fw.jpg]
    Prozess 5596 ist weg, dafür dauert es ewig bis das Programm gestartet ist.


    Skript compiliere im x64-Mode
    [Blockierte Grafik: http://img5.fotos-hochladen.net/uploads/x64mode2xtestnpsk9ja8um.jpg]
    Der Prozess 5152 und der Prozess 5292

    nach ca. 15 sec.
    [Blockierte Grafik: http://img5.fotos-hochladen.net/uploads/x64mode1xtest2b41crqghx.jpg]
    Prozess 5292 ist weg, das Programm schließt sich und startet scheinbar neu.

    ?(

  • Überprüfen ob die Calc-Datei vollständig geladen wurde

    • Magma
    • 17. September 2014 um 11:25

    Oh sorry das muss natürlich so heißen:

    Andy: Was muss in Zeile 183 hin?

    Code
    $oSave = _ArrayCreate(_OOsetProp("FilterName", $filter))


    (183,59) : error: _ArrayCreate(): undefined function.

  • Überprüfen ob die Calc-Datei vollständig geladen wurde

    • Magma
    • 17. September 2014 um 11:14

    Schnitzel: Am unteren Rand unter den Tabellen ist ein Fortschrittsbalken der sich von links nach rechts füllt.

    Andy: Was muss in Zeile 184 hin?

    Code
    $oSave = _ArrayCreat(_OOsetProp("FilterName", $filter))


    (184,59) : error: _ArrayCreat(): undefined function.

    Und wonach muss ich in deinem Code suchen? kannst du mir bitte noch einen kleinen Tip geben?

  • Video Fehler

    • Magma
    • 17. September 2014 um 10:46

    Vielen Dank für den Hinweis,

    ist es Möglich auch andere Codecs einzustellen?

    Wenn ich im Premiere Pro Videos exportiere möchte ich die gerne mit H.264 ausgeben. Daneben steht mir noch Xvid MPEG 4 Codec und Microsoft Video 1 zur Verfügung.

    Ich habe mein Pr jetzt überredet Microsoft RLE als Codec zu benutzen und das Video wird auch im Autoit angezeigt, aber ich kann leide bei PR den Audio-Codec nicht einstellen.

    Warscheinlich muss ich die Audiodatei extra im Autoit aufrufen. Aber dafür muss Child-Processe generieren und das war ganz schön kompliziert für mich. Hat jemand eine einfachere Lösung?

  • Video Fehler

    • Magma
    • 14. September 2014 um 17:50

    Hallo,

    ich habe mit Koda ein Additional AVI eingefügt. In den Code habe ich <GuiAVI.au3>
    und <AVIConstants.au3> incudiert. Trotzdem bekomme ich kein Video mit <GUICtrlAVI_Play("MeinVideo")> zum laufen.

    Es kommt die Fehlemeldung:Ungültiges Bild ...C:\MeinVideo.avi ist nicht für die Ausführung vorgesehen oder enthält einen Fehler...

    Hat jemand eine Idee warum?

    VG

  • Überprüfen ob die Calc-Datei vollständig geladen wurde

    • Magma
    • 14. September 2014 um 10:31

    Hallo,

    ich habe in meiner Calc-Datei viele Verknüpfungen. Ich habe die Einstellungen so gewählt, dass sie beim Aufruf der Datei automatisch aktualisiert werden. Dazu müssen dann bis zu 12 andere Dateien angefasst werden. Das dauert natürlich. Ich habe versucht herauszufinden wann Calc soweit ist, das man in der Tabelle weiter arbeiten kann. Mit <WinWait> und <WinActivate> wollte ich sicherstellen, dass der Ladevorgang beendet ist und in einer bestimmten Zelle das Datum eintragen und dann zum nächsten Eingabefeld springen.
    Das gelingt mir nur wenn ich ein <Sleep> einbaue. Auf unterschiedlichen Rechnern ist die Zeit dafür dann unterschiedlich lang.

    Hat jemand einen guten Tip für mich wie ich die Wartezeit auf das nötigste beschränken kann?

    Hier der Code auf das wesentliche reduziert

    Spoiler anzeigen
    C
    #include <Date.au3>
    #include <File.au3>
    #include <Clipboard.au3>
    
    
    Global $LOG_DATEI = "log_Example.txt"
    Global $WIN_TIMEOUT = 30
    
    
    Global $SPALTE 		= 0
    Global $ZEILE 		= 3
    
    
    Local $dateiName 	= "MeineCalcDatei.ods"
    
    
    Local $monat 		= @MON
    Local $jahr 		= @YEAR
    Local $paddedMonth 	= StringFormat("%02d", $monat)
    Local $datumString 	= "01." & $paddedMonth & "." & $jahr ; -> 01.09.2014
    
    
    ; in die Zwischenablage speichern
    _ClipBoard_SetData($datumString)
    
    
    ; === H A U P T P R O G R A M M =================
    
    
    ; default Anwendung aufrufen
    ShellExecute($dateiName)
    
    
    If Not initialsiereSpreadsheet($dateiName) Then
    
    
    	meldeEreignis("Datum konnte nicht gesetzt werden, bitte manuel durchführen.")
    
    
    EndIf
    
    
    
    
    ; ===============================================
    
    
    Func initialsiereSpreadsheet($dateiName)
    
    
    	$calcTitel = $dateiName
    
    
    	If WinWait($calcTitel, "", $WIN_TIMEOUT) == 0 Then
    		meldeEreignis("Calc für " & $dateiName & " wurde nicht geöffnet.")
    		Return False
    	EndIf
    
    
    	If WinActivate($calcTitel) == 0 Then
    		meldeEreignis("Calc für " & $dateiName & " kann nicht aktiviert werden.")
    		Return False
    	EndIf
    
    
    	If WinWaitActive($calcTitel, "", $WIN_TIMEOUT) == 0 Then
    		meldeEreignis("Calc für " & $dateiName & " wurde nicht aktiviert.")
    		Return False
    	EndIf
    
    
    ;~ 	Sleep(18000)	; ===> WARTEN BIS DIE AOO-Calc-Datei SO WEIT IST <===  :-(
    
    
    	; datum in die Zelle einfügen
    	geheZuZelle($ZEILE, $SPALTE)
    	Send($datumString)
    	meldeEreignis("Datum für " & $dateiName & " wurde gesetzt.")
    
    
    	; neue Zelle waehlen
    	Send("{TAB}")
    	meldeEreignis("Fokus in" & $dateiName & " wurde auf < B3 > gesetzt.")
    
    
    	; speichern
    	Send("^s")
    
    
    	Return True
    
    
    EndFunc
    
    
    Func geheZuZelle($mZeile, $mSpalte)
    
    
    	Send("^{HOME}")
    	Send("{RIGHT " & $mSpalte & "}")
    	Send("{DOWN " & $mZeile & "}")
    
    
    EndFunc
    
    
    Func meldeEreignis($meldung)
    
    
    	loggen($meldung)
    
    
    	Local $ToolTipX = 800
    	Local $ToolTipY = 700
    
    
    	ToolTip( @CR & $meldung & @CR, $ToolTipX, $ToolTipY)
    	Sleep(3000)
    
    
    
    
    EndFunc
    
    
    
    
    Func loggen($nachricht)
    
    
    	If Not FileExists($LOG_DATEI) Then
    		If (_FileCreate($LOG_DATEI) == 0) Then
    			meldeEreignis("Log-Datei konnte nicht erstellt werden!")
    			Return
    		EndIf
    	EndIf
    
    
    	$logFile = FileOpen($LOG_DATEI, $FO_APPEND)
    	If $logFile == -1 Then
    		meldeEreignis("Log-Datei kann nicht geöffnet werden!")
    		Return
    	EndIf
    
    
    	$zeitstempel = _Now()
    	$logNachricht = $zeitstempel & "|" _
    		& $monat & "|" _
    		& $jahr & "|" _
    		& $nachricht & @CRLF
    	If FileWrite($logFile, $logNachricht) == 0 Then
    		meldeEreignis("In die Log-Datei kann nicht geschrieben werden!")
    	EndIf
    
    
    	FileClose($logFile)
    EndFunc
    Alles anzeigen
  • SciTE aktualiesieren

    • Magma
    • 13. September 2014 um 16:48

    Hallo und vielen Dank für die hilfreichen Antworten.

    Die Option "Open Files Here" ist genau das, wonach ich gesucht habe. Leider bleibt der hacken nicht weg (die neue Instanz setzt den Hacken automatisch) aber das ist eigentlich kein Problem.

    Das Organisieren der Fenster übernehme ich normalerweise manuell doch das Maximieren/Verteilen-Skript probiere ich noch aus. :thumbup:

  • SciTE aktualiesieren

    • Magma
    • 11. September 2014 um 11:05

    Vielen Dank BugFix, das hat ja schon mal sehr gut geklappt. 8)

    Kann man eine zweite Instanz von SciTE öffnen oder die Ansicht so einstellen, dass man zwei Fenster gleichzeitig hat?

  • SciTE aktualiesieren

    • Magma
    • 9. September 2014 um 10:03

    Hallo,

    es wäre nett wenn ihr mir helfen könntet.

    Ich habe SciTE Version 2.28 und möchte den Editor aktualisieren. Jetzt habe ich auf der Seite <scintilla.org>, <Scintilla Release 3.5.0> und <SciTE executable full download> gefunden. Dann habe ich <full download (1200K)> heruntergeladen und die Datei ausgeführt. Das Verzeichnis enthält <wscite> enthhält viele Dateien aber es sieht ganz anders aus als mein <SciTE-Verzeichnis> mit der Version 2.28. Dort sind viele Ordner enthalten z.B. <Koda><SciTEConfig> oder <CodeWizard>.

    Gibt es eine Deutsch Anleitung für die Aktualisierung?
    Kann ich jetzt einfach alles aus <wscite> in mein altes <SciTE-Verzeichnis> kopieren?
    Was muss ich tun um meine alten Einstellungen zu behalten?

    Viele Grüße

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™