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. Bernd Albrecht

Beiträge von Bernd Albrecht

  • Select Cas in einem Intervall

    • Bernd Albrecht
    • 17. September 2024 um 12:32
    Zitat von BananaJoe

    Probier es mal so:

    If $j >= 0 AND $j <= 150

    ; mach irgendwas

    ElseIf $j >= 150 AND $J <= 300

    ; mach etwas anderes

    Else

    ; hier gibt es einen Fehler oder es wird wiederum etwas anderes gemacht

    ENDIF

    Alles anzeigen

    Danke, das hat geklappt, musste noch Then hinzufügen. Danke auch an SOLVE-SMART , dein Vorschlag wäre auch eine Lösung.

  • Select Cas in einem Intervall

    • Bernd Albrecht
    • 17. September 2024 um 11:55

    Hi, wie kriege ich es hin, dass in den Fällen $j = 0 bis 150, ein bestimmter Mausklick gemacht wird, und in den Fällen von 151 bis 300 ein anderer Mausklick gemacht wird. Es ist sehr aufwändig $j = 0 or $j = 1 or $j = 2... zu schreiben. Wenn ich bspw. schreibe $j = 0 to 150 klappt das auch nicht.

    Select
    Case $j = 0 bis 150
    MouseClick("left" ,0 ,0 , 1)
    Case $j = 151 bis 300
    MouseClick("left" ,0 ,0 , 1)
    Case Else
    End Select

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 10. August 2022 um 15:11
    Zitat von misterspeed

    1. Verzichte auf jegliche Art von simulierten Tastatureingaben und Bildschirmabhängigen Funktionen. In deinem Script Ausschnitt sind das alle "send" Befehle... ersetze diese durch Alternativen der Excel UDF und dein Problem ist gelöst

    2. Teste wie oben beschrieben ob eine RDP Verbindung mit dem Paramater "console" zum selben Ergebnis führt wie bei einer KVM Sitzung:
    "mstsc -v:MACHINE_NAME /F -console"

    3. Verwende Alternativen zu Microsoft RDP für den Serverzugriff. Das Stichwort ist VNC. Auch hier hast du in der Regel eine Konsolensitzung wie bei der KVM Lösung des Serveranbieters, bist aber nicht auf einen Webbasierten Client hierfür angewiesen.

    misterspeed vielen dank für deine ausführliche Analyse und Erklärung. Punkt zwei habe ich nun ausprobiert, doch leider bleibt das Problem immer noch. Ich arbeite vorerst über den Webbrowser; in Zukunft werde ich mal "VNC" vielleicht ausprobieren. Vielleicht passe ich mal meine Scripte an, wie du es in Punkt 2 beschreibst.

    gmmg Ich danke auch dir und den anderen für eure Hilfe.

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 9. August 2022 um 17:30
    Zitat von MojoeB

    Die Maschine läuft ja dort über den Browser normal weiter so als würde sie physisch vor dir stehen.

    Es (Windows Server) läuft quasi non Stopp, außer ich fahre es über das Control Panel herunter. Es läuft auch, wenn ich den Browser schließe. Gerade läuft Autoit; gestartet über den Browser; seit 2 h fehlerfrei und ganz normal und ich kann den Browser schließen oder meinen physischen Rechner herunter fahren; ohne das es Auswirkungen darauf hätte. Mit einer Remoteverbindung ist dies für mich so aktuell nicht möglich.

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 9. August 2022 um 15:28
    Zitat von MojoeB

    nun ja ich denke eher das hier die send befehle dein Problem sind.

    Wie gesagt, über den Browser Zugang habe ich keinerlei Probleme.

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 9. August 2022 um 14:13
    Zitat von gmmg

    Startest du dein Script per Taskplaner/Aufgabenplanung?

    Nein, ich starte das Scipt und lasse es quasi unendlich lang laufen. Ich kann mir vorstellen, dass deine Lösung so funktioniert; nur in meinem Fall passt es eher nicht. Trz, danke. Außerdem, wenn ich das Skript auf deine Methode starte, und dann bloß mich während des laufenden Skriptes mich über Remote anmelde; kommt wieder der Fehler.

    Zitat von gmmg

    Hast du die Remote mal mit den Schalter "mstsc -v:MACHINE_NAME /F -console" verbunden?

    Nein, für was ist dass? Was muss ich dafür genau tun? Hat das auch mit dem Aufgabenplaner zu tun? Wenn ja, wird mir das nicht weiterhelfen

    Ich möchte von der Remoteverbindung mein Skript starten, weil die Remoteverbindung viel besser ist als die Desktop Verbindung über Netcup.

    Ich bin mir ziemlich sicher, dass es mit der Auflösung und dem Display zu tun hat. Wenn ich das Autoitskript in einer Remoteverbindung starte, dann ist die Grundlage für das Ausführen des Skriptes die Auflösung und das Display meines aktuellen Monitors. Ich besitze 3 Monitore und schiebe die Remoteverbindung auf einen davon. Diese Auflösung ist unterschiedlich zu der eigentlichen Auflösung des Servers im "Ruhemodus", also ohne Remoteverbindung. Die Remoteverbindung passt sich ja dem Display und der Auflösung des aktuellen Monitors an.

    Sobald dann die Remoteverbidnung getrennt wird oder sogar zum Server hergestellt wird, während das Skript läuft; sodann entstehen Programmfehler bei Autoit.

    Ich habe nun mein Skript in der Remoteverbindung laufen lassen, und es kam schon zu fehlerhaften Ausführung; als nur sich das Display nach 3 Minuten ausgeschaltet hat und der Rechner und die Verbindung an sich nicht gestört wurden. Daher vermute ich stark die Ursache im Display und der Auflösung.

    Oder liegt die Ursache darin, dass ich 3 Monitore an meinem Rechner verbunden habe?

    Wenn irgendjemand eine Idee hat, wie dieses Problem lösbar ist; wäre das toll.

    Gruß Bernd

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 5. August 2022 um 22:13

    Wenn einige von euch auch Autoit über einen Windows Server über eine Windows-Remote Verbindung benutzen: Habt ihr auch dieses Problem von mir oder nicht? Wenn bei euch alles funktioniert, könnt ihr mir euren Server Anbieter und das auf eurem Server installierte Betriebssystem bitte nennen? Oder könnt ihr Remote Programme nennen, bei denen dieses Problem nicht auftritt?

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 5. August 2022 um 18:26

    Das Script funktioniert auch normal bei dem Windows Root Server über die Remote Verbindung von Windwos; nur wenn ich dann die Verbindung abtrenne, damit das Script im Server im Hintergrund läuft; kommen Fehler, wie dass er die Tasten nicht drückt. Ich habe dabei bemerkt, dass Autoit ganz normal weiterläuft und die Schleifen sich immer weiter wiederholen, während ich das Fenster schließe; aber anscheinend mit fehlerhafter Tastatureingaben(Keine). Bei der Browser Nutzung des gleichen Severs habe ich das Problem nicht.

  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 5. August 2022 um 18:23
    C
    #Region Range
    #AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
    Opt('MustDeclareVars', 1)
    #include <Excel.au3>
    Global $oExcel_1 = _Excel_Open()
    Global $var = "C:\Users\1992j\OneDrive\Desktop\Test.xlsx"
    WinActivate("Test - Excel")
    sleep(500)
    Global $oWorkbook = _Excel_BookOpen($oExcel_1,$var)
    Global $aArray = _Excel_RangeRead($oWorkbook)
    sleep(3000)
    WinSetState("Test - Excel", "", @SW_MAXIMIZE)
    sleep(3000)
    WinSetState("Test - Excel", "", @SW_MINIMIZE)
    
    Global $_readA, $_readB, $_readC......
    Global $aRanges =        [    ['B2',....'B224' ], _
    ...
    [    ['HP2',....'HP224' ] _
    
    For $i= 0 To 0 Step 1
    For $j = 81 To 223 Step 1 ; Maximal bis 223
    $_readA = _Excel_RangeRead($oWorkbook, Default, $aRanges[$j][0], 1, True)
    $_readB = _Excel_RangeRead($oWorkbook, Default, $aRanges[$j][1], 1, True)
    ....
    ....
    $_readHQ = _Excel_RangeRead($oWorkbook, Default, $aRanges[$j][222], 1, True)
    ExEEEl Schreiben($RandomNumber,...)
    
    Next
    Next
    Func ExEEEl Schreiben($RandomNumber,...)
    Send($_readA)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readB)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readC)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readD)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readE)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readF)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readG)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readH)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    Send($_readI)
    sleep(10)
    Send("{ENTER}")
    sleep(10)
    ....
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    sleep(7)
    ....
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    sleep(7) 
    Send("{UP}")
    
    sleep(1000)
    Send("{RIGHT}")
    sleep(1000)
    Send("{DOWN}")
    
    EndFunc
    Alles anzeigen
  • Autoit läuft Fehlerhaft bei Remote Verbindung über Windows auf einen Windows Root Server; aber fehlerlos über den Browserzugang

    • Bernd Albrecht
    • 5. August 2022 um 15:46

    Hi Leute,

    ich habe mir testweise einen Root Server bei "Netc****" für einen Monat bestellt. Wenn ich mein Skript für Excel (Befehle: "Send(Text, Enter, Right, Left, Down)) über die Remote Verbindung vom Windows 11 Betriebssystem auf meinen Windows Root Sever laufen lasse, läuft mein Skript fehlerhaft, ab dem Moment, wo ich das Remote-Fenster minimiere, meinen PC mit dem ich verbunden bin runterfahre oder die Remoteverbindung beende; sodass bspw. die Tasten nicht gedrückt werden können. Es scheint so, als würde hier mein Root Server sein Bildschirm oder seine Tastatur verlieren, wenn ich bspw. die Remote Verbindung abbreche.

    Doch wenn ich meine Skript über den Browser Zugang von meinem Root Server Anbieter starte(über "Bildschirm"/Server Control Panel) , anstatt über die Remote Verbindung von Windows; läuft mein Skript auch dann fehlerfrei, wenn ich das Browser Fenster schließe und meinen Haupt-PC herunterfahre.

    Kennt jemand von euch das Problem und hat eine Lösung dafür? Der Browserzugang ist sehr schlecht und hat viele Nachteile, sodass ich eigentlich lieber diesen vermeiden wollen würde und immer über die Remote Verbindung von Windows auf meinen Root Server zugreifen wollen würde. Wie kann ich es schaffen, dass mein Skript auch bei der Remote Verbindug über Windows fehlerfrei läuft, auch wenn ich bspw. nach dem Start des Skriptes die Verbindung abbreche?

    Ich danke euch im voraus.

    Gruß Bernd

  • Mehrere Intervalle: For $i = 1 To 10 Step 1

    • Bernd Albrecht
    • 6. Oktober 2021 um 20:56
    Zitat von Musashi

    Einzelwerte und Bereiche überspringen :

    Vielen dank

  • Mehrere Intervalle: For $i = 1 To 10 Step 1

    • Bernd Albrecht
    • 6. Oktober 2021 um 15:48
    Zitat von Musashi

    Klingt fast zu trivial, aber meinst Du so etwas :

    Zitat von AspirinJunkie

    Edit: eine Millisekunde zu spät

    Vielen dank für eure Antworten. Ich sollte vielleicht noch etwas über meine Funktion sagen:

    Code
    ....
    For $i = 7 To 50 Step 1 ; Maximal bis 223
    $_readA = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][0], 1, True)
    $_readB = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][1], 1, True)
    $_readC = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][2], 1, True)
    $_readD = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][3], 1, True)
    $_readE = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][4], 1, True)
    $_readF = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][5], 1, True)
    ....

    Ich hab bei euren Varianten bisher Fehlermeldungen bekommen, es kann aber sein das ich es falsch verwendet habe. Dieser Ausdruck "For $i = 7 To 50 Step" beschreibt ja, das es bei 7 anfangen soll und bei 50 enden soll. Nun möchte ich aber, das er bspw. 25,26,29 und 45 nicht ausführt. Logisch wäre es, wenn man mit "and" diese Intervalle verknüpfen könnte, klappt aber leider nicht. In Klammern setzten hat auch bisher nicht funktioniert....

    Vielleicht sind eure Lösungen richtig, ich bin aber nur zu "blöd" um diese umzusetzen.

    Eine Fehlermeldung Bspw.:

    "Next" statement with no matching "For" statement.:

    Next...

  • Mehrere Intervalle: For $i = 1 To 10 Step 1

    • Bernd Albrecht
    • 6. Oktober 2021 um 14:29

    Hi Leute,


    leider bin ich bisher nicht fündig geworden zu diesem Thema. Ich würde gerne bspw. meine Funktion von For $i = 1 To 10 Step 1 und For $i = 15 To 20 Step 1; in einem Rutsch laufen lassen wollen. Also es soll von 1-10 und dann direkt von 15 bis 20 laufen.

    Wie wäre da die Schreibweise oder ist dies überhaupt möglich? Ich hab's mit "and" versucht, leider erfolglos.

    Ich danke euch im voraus für eure Antworten.

    Gruß Bernd

  • IE.au3; Skript friert ein mit dem "Datei Hochladen" Fenster von Internet Explorer

    • Bernd Albrecht
    • 21. August 2021 um 00:20

    :)

  • IE.au3; Skript friert ein mit dem "Datei Hochladen" Fenster von Internet Explorer

    • Bernd Albrecht
    • 20. August 2021 um 22:33
    Zitat von Musashi

    Möglicherweise funktioniert die Website generell nicht mehr zuverlässig mit dem veralteten Internet Explorer.

    Vielen Dank. Wenn ich auch den Button mit dem das "Datei Hochladen" Fenster erscheint mit einem normalen Mausklick betätige anstatt über den Webdriver, dann friert das Skript nicht ein. Vorerst ist dies für mich ok. Die Fortgeschritteneren Webdriver UDF´s schaue ich mir vielleicht irgendwann an. Wobei ich es "blöd" finde, wenn ein Update von Chrome oder Fire FOx kommt, das dann möglicherweise dieser Webdriver nicht mehr funktionieren könnte.

  • IE.au3; Skript friert ein mit dem "Datei Hochladen" Fenster von Internet Explorer

    • Bernd Albrecht
    • 20. August 2021 um 20:11

    Hi Leute,

    mein Skript friert ein, nach dem Erscheinen vom "Datei zum Hochladen auswählen" Fenster.
    Hier ist ein ähliches Problem gewesen, wo ich aber keine Lösung entdecken konnte:
    https://www.autoitscript.com/forum/topic/14…input-typefile/

    Mein Skript:

    Code
    #include <IE.au3>
    Local $oIE = _IECreate("https://kdp.amazon.com/de_DE/title-setup/paperback/CC7DZBPB8M5/content?redirect=https%3A%2F%2Fkdp.amazon.com%2Fde_DE%2Ftitle-setup%2Fpaperback%2FCC7DZBPB8M5%2Fcontent&__token_="); Eigenschaft 01   oooooooooooooo
    WinSetState("[CLASS:IEFrame]", "", @SW_MAXIMIZE)
    $oSubmit = _IEGetObjById($oIE, "data-print-book-publisher-interior-file-upload-browse-button"); Manuskript hochladen
    sleep(2000)
    _IEAction($oSubmit, "click")
    sleep(2000)
    WinSetState("Datei zum Hochladen auswählen", "", @SW_MAXIMIZE)
    sleep(2000)
    MouseClick("left" , 510,667, 1); Dateiname
    sleep(9000)
    Alles anzeigen

    Auch ein normaler Mausklick funktioniert nicht nach dem erscheinen des Datei Hochladen Fensters vom alten Internet Explorer. Hat jemand eine Ideee, was das Problem sein könnte und wie ich es bewältigt bekomme?

    Ich danke euch im vorraus.

    Gruß Bernd

  • _Excel_RangeRead, _ArrayDisplay; Daten im Skript verwenden; Schleife mit Array

    • Bernd Albrecht
    • 18. August 2021 um 19:30

    water vielen, vielen Dank für deine Hilfe.
    MIt "$_readA = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][0], 1, True)" habe ich das Buchstabenproblem lösen können. Und indem ich "Global $aArray = _Excel_RangeRead($oWorkbook)" oben in mein Skript eingefügt habe und sonst nchts weiteres unternommen habe, braucht mein Skript aktuell für jede neue Schleifenur ca. 15 Sekunden und nicht mehr 2-3 minuten. Ich hoffe das bleibt auch so.

    Ihr, besonders aber water, habt mir sehr weitergeholfen. Danke.

  • _Excel_RangeRead, _ArrayDisplay; Daten im Skript verwenden; Schleife mit Array

    • Bernd Albrecht
    • 18. August 2021 um 17:37
    Zitat von water

    $aArray = _Excel_RangeRead($oWorkbook)

    Das liest das gesamte Arbeitsblatt in einen 2D Array ein. Dann brauchst Du Dich nur mehr in Schleifen durch den Array durcharbeiten.

    Vielen dank für deine Hilfe. Ich möchte das die Schleifen Funktionalität weiterhin beibehalten wird in meinem Skript. Also ich möchte nicht bsp. mein Skript 100 mal wiederholen müssen und dort die Werte der einzelenen Reihen reinschreiben müssen, sondern das sich mein Skript weiterhin Reihe für Reihe an meinem Skript abarbeitet.
    Ist dies bei diesem "$aArray = _Excel_RangeRead($oWorkbook)" gegeben oder habe ich dann nur ein einziges riesiges Array wo ich explicit die Reihe und Zeile nennen muss, wenn ich dieses verwenden will?

    Zitat von water

    $_readA = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][0], 1, True)

    Müsste dann anstelle dieser ca. 220 Reihe nur eine Reihe mit "$aArray = _Excel_RangeRead($oWorkbook)" in mein Skript kommen und meine riesige Range müsste noch bleiben? Sorry, ich weis ich bin hier nervig.

  • _Excel_RangeRead, _ArrayDisplay; Daten im Skript verwenden; Schleife mit Array

    • Bernd Albrecht
    • 18. August 2021 um 16:07
    Zitat von water

    die vielen Sleeps

    Wie meinst du das? Das die sleeps zeit beanspruchen, das weis ich. Ich meine das nach der letzten Aktion einer Schleife, 2-3 minuten gewartet wird... Wenn ich einige Sleep befehle streiche oder zusammenfasse oder die "Random" sleeps in normale sleeps umwandle, könnte mein Skript dann etwas schneller werden?

    Zitat von water

    Lies das gesamte Excel Workbook in einen Array und arbeite dann diesen Array ab. Ist natürlich eine größere Anpassung!

    Ich habe schon in meinem bisherigen "Excel Workbook" eingebaut, wie genau meinst du das? Meinst du, das diese Range in meinem Skript verschwinden soll und ich es auf einem "Array" organisieren soll?

    Zitat von water

    Das 255 Zeichen Limit umgehst Du, wenn Du für die Funktion _Excel_RangeRead den Parameter $bForceFunc auf True setzt.

    Sorry..., wie kriege ich das hin? Muss ich in jede Klammer diesen Parameter einfügen? Könntest du mir dies bitte zeigen.

    Code
    $_readA = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][0])
    $_readB = _Excel_RangeRead($oWorkbook, Default, $aRanges[$i][1])
  • _Excel_RangeRead, _ArrayDisplay; Daten im Skript verwenden; Schleife mit Array

    • Bernd Albrecht
    • 18. August 2021 um 15:57
    Zitat von Moombas

    Evtl. solltest du diese nach Möglichkeit überarbeiten und dadurch dann auch eine bessere Abfrage erhalten können.

    Vielen dank für diese Antwort. Ich merke mir diesen Tipp. Aktuell benutze ich nicht dieses "Display Array" sondern, das Skript im Anhang. Dort habe ich keine Probleme damit. Sollte mein neues Skript klappen, würde ich eventuell dann deinen Tipp anwenden. Der Inhalt einiger Zellen soll gleich sein und für meine Zwecke macht dies auch sinn.

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™