Vielen Dank gmmg,
jetzt habe ich das verstanden, wie das funktioniert.
Die Abfrage ist nun weg - vielen vielen Dank.
Vielen Dank gmmg,
jetzt habe ich das verstanden, wie das funktioniert.
Die Abfrage ist nun weg - vielen vielen Dank.
Hallo an alle Experten,
ich habe ein Script, welches eine Webseite aufruft und den HTML-Code für die weitere Bearbeitung speichert. Das lief bisher sehr gut.
Seit heute erfolgt der Start, bei unverändertem Script, nicht mehr. Und ich finde keine Lösung. Deshalb bitte um Unterstützung.
Google Chrome ist in der aktuellen Version 128.0.6613.120 (Offizieller Build) (64-Bit) installiert.
Der ChrimeDriver zeigt diese Meldung an:
Starting ChromeDriver 128.0.6613.119 (6e439cfca4deda5954b0c74cde9b521c03cb31ad-refs/branch-heads/6613@{#1464}) on port 0
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully on port 50287.
Bereits in der ersten Zeile wurde ein Port angezeigt. Jetzt steht dort 0. Die gewünschte Webseite wird nicht aufgerufen.
Im Script sind diese Meldungen dokumentiert:
_WD_UpdateDriver ==> Success [0 / 0] : DriverCurrent = 128.0.6613.119 : DriverLatest = 128.0.6613.119
_WD_Option ==> Success [0] : Parameters: Option=Driver Value=chromedriver.exe
_WD_Option ==> Success [0] : Parameters: Option=Port Value=9515
_WD_Option ==> Success [0] : Parameters: Option=DefaultTimeout Value=1000
_WD_CapabilitiesAdd ==> Browser or feature not supported [21] : Not supported KEY parameter ( must be defined in $_WD_KEYS__*** ). $key = goog:chromeOptions $value1 = debuggerAddress $value2 = localhost:9222
_WD_GetFreePort ==> Success [0 / 9515] : Parameters: MinPort=9515 MaxPort=Default
_WD_IsLatestRelease ==> Success [0] : True
_WD_Startup: OS: WIN_11 X64 22631
_WD_Startup: AutoIt: 3.3.16.1
_WD_Startup: Webdriver UDF: 1.3.1 (Up to date)
_WD_Startup: WinHTTP: 1.6.4.2
_WD_Startup: Driver: chromedriver.exe (32 Bit)
_WD_Startup: Params:
_WD_Startup: Port: 9515
_WD_Startup: Command: "chromedriver.exe"
_WD_Startup ==> Success [0]
__WD_Post ==> Send / Recv error [6] : HTTP status = 0
_WD_CreateSession ==> Webdriver Exception [10]
__WD_Post ==> Send / Recv error [6] : HTTP status = 0
_WD_Navigate ==> Send / Recv error [6] : (hier erfolgt der Aufruf der Webseite)
Mir ist nicht ersichtlich, warum der _WD_Post nun zu einem Fehler führt und damit vermutlich die _WD_CreateSession ebenfalls.
ISt das so verständlich und gibt das einene Hinweis auf die Veränderung einer Komponente? Bisher lief es fehlerfrei.
Vielen Dank für Eure Hilfe !
Vielen Dank!
Kannst Du mir bitte noch einen Hinweis geben, in welcher .au3 ist diesen Abschnitt finde?
Hallo,
ich nutze das WebDriver UDF um Google Chrome zu bedienen.
Mit jeder Nutzung wird einen neue Session angelegt. Neuerdings erscheint die Abfrage nach der Standardbrower Auswahl.
Wie und wo kann diese Abfrage verhindert werden? _WD_CapabilitiesAdd(...) oder _WD_Options....
Bin da absolut ratlos und bitte um Hilfe.
Vielen Dank.
Hallo AspirinJunkie,
oh je, das habe ich befürchtet.
Deshalb vielen vielen Dank für Deine Erläuterungen und dem Script.
Herzlicher Gruß
Bernd
Hallo,
ich bitte mal um Unterstützung, da meine Kenntnisse in der Richtungswinkelberechnung nicht ausreichen.
Mein Ziel ist es, aus GPX-Tracks die Entfernung und die Richtung bis zum nächsten Trackpunkt zu berechnen.
Die Trackpunkte liegen nicht weit auseinander. Ich gehe von maximal 1 km aus, eher im Meterbereich. Also ohne Erdkrümmung-berücksichtigung etc..
Im Anhang habe ich eine Testdatei mit extrahierten GPX Koordinaten beigefügt. In diesem Zahlenformat werden GPX Tracks aufgezeichnet. Diese Werte stammen aus einer Aufzeichnung vom Garmin Oregon.
Ich möchte ermitteln, von der Zeile 1 zur Zeile 2 sind es wie viele Meter und in welcher Richtung liegt der nächste Punkt.
Dann von Zeile 2 zur Zeile 3 sind es wie viele Meter und in welcher Richtung liegt der nächste Punkt und so weiter....
Bei der Richtungsangabe, so haben ich gelesen, wird 0 Grad für Norden, 90 Grad für Osten, 180 Grad für Süden und 270 Grad für Westen verwendet. Das würde ich als Ausgabe so übernehmen mit allen Zwischenwerten.
So, hier mein kleiner Versuch, doch auf Grundlage der beiden verschiedenen "kopierten" Ansätze kommen völlig verschieden Werte heraus, die ich nicht nachvollziehen kann. Jetzt ist ein Sehender gefordert
Was ist falsch an der Berechnung? Oder besser, wie lautet die korrekte Berechnung?
Vielen vielen Dank schon mal im Voraus.
Herzlichen Glückwunsch zum Geburtstag.
Mögen all Deine Wünsche in Erfüllung gehen.
klasse, vielen Dank.
Ja, die MsgBox wird angezeigt, dann folgt diese Fehlermeldung:
C:\AutoIt3\Include\excel.au3 (1063) : ==> The requested action with this object has failed.:
Local $iTemp = $oExcel.ActiveWorkbook.Sheets.Count
Local $iTemp = $oExcel.ActiveWorkbook^ ERROR
Verkürze ich den Titel mit StringTrimRight (um den Zusatz " - Excel" zu entfernen) wird 0 und @error=1 zurückgegeben.
und dann?
In meinem Beispiel habe ich das so versucht. Was ist falsch daran?
Hallo water,
den Umstieg werde ich noch schaffen. Aktuell arbeitet mein Programm mit der "alten" Version. Ich habe nur den betreffenden Auszug dargestellt.
Eigentlich ist es mit _ExcelSheetList kein Problem, wenn der Pfad\Datei.xlsx bekannt ist. Durch WinList() kenne ich nur die Fenstertitel und Handle. Und hier beginnt mein Problem: Wie gebe ich _ExcelSheetList nun bekannt, das der Fenstertitel zum Ermitteln der Arbeitsblätter genutzt wird.
Hallo,
ich bitte um Unterstützung.
In dem folgenden Auszug wird über WinList() die aktuell geöffneten Excelfenster ermittelt. Anschließend sollen die Arbeitsblätter dieses Excelfensters ermittelt werden.
In diesem Moment weiß ich den Pfad der Datei nicht um diese über _ExcelBookOpen zu öffnen. Mit _ExcelBookAttach finde ich auch nicht die funktionierende Lösung.
Ziel ist es, dass die Arbeitsblätter der jeweiligen geöffneten Datei ausgelesen werden.
Vorbereitung: verschiedene Exceldateien öffnen
#include <Array.au3>
#include <Excel.au3>
Local $var = WinList()
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $var[0][0]
; Listet nur die sichtbaren Fenster auf, die einen Titel haben
If $var[$i][0] <> "" And IsVisible($var[$i][1]) And StringInStr($var[$i][0],"- Excel") Then
MsgBox(0, "Details", "Titel=" & $var[$i][0] & @LF & "Handle=" & $var[$i][1])
$oExcel = _ExcelBookAttach($var[$i][0],"Title")
$aArray = _ExcelSheetList($oExcel)
_ArrayDisplay($aArray,"alle sheets")
EndIf
Next
Func IsVisible($handle)
If BitAND(WinGetState($handle), 2) Then
Return 1
Else
Return 0
EndIf
EndFunc ;==>IsVisible
[/autoit]Ist das so verständlich?
Danke und Gruß
Hallo Dirkrid,
das Problem erschließt sich mir nicht. Kannst Du mehr Infos liefern?
Zunächst die Frage: Warum schreibst Du nicht die Rohdaten.csv direkt in die Ergebnis.csv und rufst diese dann mit Excel auf?
Probiere doch mal die Zellangaben "A:L",, dann sollte die Anzahl der Zeilennummern nicht mehr gefordert sein
Soweit ich weiss, sind die von Dir genannten Funktionen nicht in der Kopf- und Fußzeile anwendbar.
Deshalb auslesen, neu zusammensetzen, schreiben.
In Word greift manuelles "suchen/ersetzen" auch nicht in der Kopf- und Fußzeile.
StringReplace könnte ein Losungsansatz für Dich sein.
Zeige bitte ein Beispiel der Kopfzeile und wie soll diese dann nach der Änderung aussehen.
Suchen/ersetzen in der Kopf- und Fußzeile könntest Du durch auslesen, ersetzen, neu schreiben erreichen.
Dazu hatte Bugfix ein Beispiel zur Bearbeitung der Kopf-Fußzeile erstellt.
Beispiel ist in den ersten drei Zeilen auf die Fußzeile ausgelegt (hier auskommentiert). Dazu ist dann die Funktion nutzbar.
Im folgenden Beispiel wird die Kopf- und Fußzeile neu bestimmt.
;$dpfad= "C:\AutoIt3\WordEx\test.docx"
;$neuFuss="Diese ist eine neue Fusszeile"
;_WordDoc_FooterChange($dpfad,$neuFuss)
Local Const $wdHeaderFooterPrimary = 1
[/autoit] [autoit][/autoit] [autoit]$oWord = ObjCreate("Word.Application")
$oWord.Visible = False ; bleibt unsichtbar
$oWord.Documents.Open ('C:\AutoIt3\WordEx\test.docx') ; eine bestehende Datei aufrufen
; aktuelle Fußzeile auslesen
ConsoleWrite('Fußzeile aktuell:' & @CRLF & $oWord.ActiveDocument.Sections(1).Footers($wdHeaderFooterPrimary).Range.Text & @CRLF)
ConsoleWrite('Kopfzeile aktuell:' & @CRLF & $oWord.ActiveDocument.Sections(1).Headers($wdHeaderFooterPrimary).Range.Text & @CRLF)
; neue Fußzeile zuweisen
$sFooterNew = 'neue Fußzeile eingetragen'
$oWord.ActiveDocument.Sections(1).Footers($wdHeaderFooterPrimary).Range.Text = $sFooterNew
$sHeaderNew = 'neue Kopfzeile eingetragen'
$oWord.ActiveDocument.Sections(1).Headers($wdHeaderFooterPrimary).Range.Text = $sHeaderNew
$oWord.Application.DisplayAlerts = False
$oWord.ActiveDocument.Save
$oWord.Quit
;===============================================================================
; Function Name....: _WordDoc_FooterChange
; Description......: Ändert in einem Worddokument die Fußzeile
; Parameter(s).....: $sPath Pfad zum Word Dokument
; $sFooterNew Die neue Fußzeile
; optional $fVisible Wordfenster sichtbar, Standard=0 (Nein)
; optional $fSave Speichern der Änderung? Standard=1 (Ja)
; optional $fQuit Word beenden? Standard=0 (Nein), mit "1" wird auch $fSave=1 gesetzt
; Return Value(s)..: Erfolg Den alten Inhalt der Fußzeile
; Fehler @error = 1 - Dateipfad existiert nicht
; Note.............: Falls Word bereits geöffnet ist, wird in dieser Instanz gearbeitet, anderenfalls wird eine neue Instanz erstellt.
; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
;===============================================================================
Func _WordDoc_FooterChange($sPath, $sFooterNew, $fVisible=False, $fSave=1, $fQuit=0)
If not FileExists($sPath) Then Return SetError(1,0,0)
If $fQuit = 1 Then $fSave = 1
Local Const $wdHeaderFooterPrimary = 1
Local $sFooterOld, $oWord, $fCreated = 0
$oWord = ObjGet($sPath, "Word.Application")
If @error Then
$oWord = ObjCreate("Word.Application")
$fCreated = 1
EndIf
$oWord.Visible = $fVisible
If $fCreated Then $oWord.Documents.Open($sPath)
$sFooterOld = $oWord.ActiveDocument.Sections(1).Footers($wdHeaderFooterPrimary).Range.Text
$oWord.ActiveDocument.Sections(1).Footers($wdHeaderFooterPrimary).Range.Text = $sFooterNew
$oWord.Application.DisplayAlerts = False
If $fSave Then $oWord.ActiveDocument.Save
If $fQuit Then $oWord.Quit
Return $sFooterOld
EndFunc ;==>_WordDoc_FooterChange
Aus Deinem Ausschnitt läßt sich die Situation nicht nachstellen. Du solltest hier mehr Informationen posten.
Du versuchst in Deinem Codeausschnitt in eine vorhanden .doc zu schreiben.
$wasinfile = _GUICtrlRichEdit_StreamToFile($Edit1, $wohinexport)
$wohinexport kann nur eine .doc sein, lt. Deinem Beispiel. Es ist m.E. ein rtf Format.
Deshalb schaue Dir mein Beispiel an und Du wirst die Lösung haben.
Die Anweisung #include <word.au3> wird offensichtlich nicht erreicht.
Die gesamten Funktionen mit Word kannst Du Dir doch in diesem Beispiel sparen, da Du selbige Datei als rtf öffnest und als rtf speicherst.
Da ist erst einmal kein Unterschied.
Ursprünglich wolltest Du doch die Datei als .doc speichern, stimmts?
Dann gilt auch hier, SaveAs nur ohne Dateizusatz - in Deinem Falle ".rtf"
Name...........: _Word_DocSaveAs
; Description ...: Saves the specified Word document with a new name or format.
; Syntax.........: _Word_DocSaveAs($oDoc, $sFileName[, $iFileFormat = 0[, $bReadOnlyRecommended = False[, $bAddToRecentFiles = True[, $sPassword = ""[, $sWritePassword = ""]]]]])
; Parameters ....: $oDoc - Word document object
; $sFileName - Optional: The full path name for the document (default = Current folder and current file name).
; If the document has never been saved, the default name is used (for example, Doc1.doc);
; $iFileFormat - Optional: The format in which the document is saved. Can be any WdSaveFormat constant
; (default = $wdFormatDocument)
; $bReadOnlyRecommended - Optional: True to have Word suggest read-only status whenever the document is opened (default = False)
; $bAddToRecentFiles - Optional: True to add the document to the list of recently used files (default = True)
; $sPassword - Optional: A password string for opening the document (default = "")
; $sWritePassword - Optional: A password string for saving changes to the document (default = "")
; Return values .: Success - Returns 1
; Failure - Returns 0 and sets @error
; |1 - $oDoc is not an object
; |2 - Error saving the specified document. @extended is set to the error returned by method Documents.SaveAs
; Author ........: water (based on the Word UDF written by Bob Anthony)
; Modified ......:
; Remarks .......: If a document with the specified file name already exists, the document is overwritten without the user being prompted first.
; Related .......:
; Link ..........:
; Example .......: Yes
HIer: http://www.autoitscript.com/forum/topic/15…e-to-word-file/ fragst Du nach einer etwas anderen Aufgabenstellung. Was ist denn davon Deine Fragestellung?