Hallo,
die Funktion von oben erledigt schon alles was ich wollte. Hatte nur auf eine direkte Anweisung dafür gehofft. ![]()
Danke für eure Hilfe!!! ![]()
Gruß Ingo
Hallo,
die Funktion von oben erledigt schon alles was ich wollte. Hatte nur auf eine direkte Anweisung dafür gehofft. ![]()
Danke für eure Hilfe!!! ![]()
Gruß Ingo
Hallo,
ich brauche immer nur den ersten oder den zweiten Teil des Strings.
Am besten würde eine Funktion passen die mir nur den ersten Teilstring zurück gibt und eine zweite Funktion die mir nur den zweiten Teilstring gibt.
Also so eigentlich:
[autoit]$Text = "Text erster Teil*der zweite Teil"
[/autoit][autoit][/autoit][autoit]MsgBox(0, "erster Teil", StringSplitTeilstring ($Text, "*", 1))
MsgBox(0, "zweiter Teil", StringSplitTeilstring ($Text, "*", 2))
Func StringSplitTeilstring ($sString, $sDelimiters, $iNummer)
Local $aTEMP
$aTEMP = StringSplit ($sString, $sDelimiters, 0)
Return($aTEMP[$iNummer])
EndFunc
Hatte nur gehofft es gibt etwas Besseres. ![]()
Gruß Ingo
Hallo,
StringSplit ist durchaus ein Ansatz, gibt aber ein Array zurück. Ich brauche aber nur den reinen String. Dafür habe ich nichts gefunden. ![]()
Gruß Ingo
Hallo,
habe da ein vermutlich recht einfaches Problem:
Ich möchte eine Zeichenkette an einem bestimmten Zeichen teilen. Also einmal brauche ich alle Zeichen bis zum Trennzeichen und dann alle Zeichen ab dem Trennzeichen. Gibt es da eine fertige Funktion?
Quelle: „Text erster Teil*der zweite Teil“
Trennzeichen: *
Ergebnis:
Gruß Ingo
Hallo,
das hat bei mir aber nur funktioniert wenn der Dateiname der PDF Datei keine Freizeichen enthält und zwei X " " hat eine Fehlermeldung erzeugt.
Gruß Ingo
Hallo Andy,
super, so funktioniert das ohne Probleme. Ist eben einfach ein klasse Forum mit echten Spezialisten!!!
Danke!!!
Gruß Ingo
Hallo, ich stehe irgendwie auf dem Schlauch. Ich möchte einfach nur eine PDF Datei anzeigen lassen und bekomme das nicht hin.
Ich habe zwei Probleme, der Name der PDF Datei enthält Freizeichen und ich habe verschiedenen Versionen von Adobe Reader. Also auch verschiedene Verzeichnisse für die AcroRd32.exe.
Wie könnte ich das Lösen?
Gruß Ingo
[autoit]Run("C:\Program Files\Adobe\Reader X.0\Reader\AcroRd32.exe Das ist die Datei.pdf")
[/autoit]Hallo,
ich habe es soweit geschafft etwas lauffähiges zu erzeugen. ![]()
Jetzt habe ich allerdings ein Problem beim Verändern der Farbe. In der Zeile 37 wird natürlich das fehlen der im VB verwendeten Variabeln bemängelt.
Wie kann ich die denn definieren und vor allem mit welchem Inhalt?
Gruß Ingo
[autoit]Visio ()
[/autoit][autoit][/autoit][autoit]Func Visio ()
$oVisio = ObjCreate("Visio.Application") ;Visio Object erzeugen
$oVisio.Visible = 1 ;Visio sichtbar
$oVisio.Documents.AddEx ("bstorm_m.vst") ;Zeichnung aus Vorlage anlegen
$oVisio.ActivePage.Name = "Übersicht" ;Name vom Blatt setzen
;---------------- Objekte anlegen ----------------------------------
$oVisio.ActiveWindow.Page.Drop($oVisio.Documents.Item("BSTORM_M.VSS").Masters.ItemU("Topic"), 6.5, 3.5) ;neues Item erstellen
$oVisio.ActiveWindow.Page.Drop($oVisio.Documents.Item("BSTORM_M.VSS").Masters.ItemU("Topic"), 6.5, 3.5) ;neues Item erstellen
; --------------- verbinden der Objekte ---------------------------------
$oVisio.ActiveWindow.Page.Drop($oVisio.Documents.Item("BSTORM_M.VSS").Masters.ItemU("Dynamic connector"), 6.696943, 4.196358) ;Verbinder erzeugen
$vsoCell1 = $oVisio.ActiveWindow.Page.Shapes.ItemFromID(3).CellsU("BeginX") ;Verbinder Beginn als Objekt definieren
$vsoCell2 = $oVisio.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(7, 1, 0) ;das erste Item als Objekt definieren
$vsoCell1.GlueTo($vsoCell2) ;beide verbinden
$vsoCell1 = $oVisio.ActiveWindow.Page.Shapes.ItemFromID(3).CellsU("EndX") ;Verbinder Ende als Objekt definieren
$vsoCell2 = $oVisio.ActiveWindow.Page.Shapes.ItemFromID(2).CellsSRC(7, 0, 0) ;das zweite Item als Objekt definieren
$vsoCell1.GlueTo($vsoCell2) ;beide verbinden
;----------- beschriften der Objekte --------------------------
$vsoCharacters1 = $oVisio.ActiveWindow.Page.Shapes.ItemFromID(1).Characters
$vsoCharacters1.Begin = 0
$vsoCharacters1.End = 11
$vsoCharacters1.Text = "Item 1"
$vsoCharacters1 = $oVisio.ActiveWindow.Page.Shapes.ItemFromID(2).Characters
$vsoCharacters1.Begin = 0
$vsoCharacters1.End = 11
$vsoCharacters1.Text = "Item 2"
;----------- Farbe ändern --------------------------
$oVisio.ActiveWindow.Page.Shapes.ItemFromID(3).CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = "2"
$oVisio.ActiveWindow.Page.Layout
EndFunc
Hallo,
danke für den Hinweis. Diese Seite hatte ich gefunden. Allerdings habe ich keine Ahnung wie ich das dort beschriebene richtig auf AutoIt übertragen kann. Habe mir VB Macros im Visio erstellt die zwei Objekte anlegen und ein zweites was die Objekte verbindet. Mit der Umsetzung im AutoIt hapert es aber noch etwas. Dazu habe ich nicht genug Erfahrung.
Wie könnte ich denn die beiden angehängten VB Macros in das angehängte AutoIt Programm übertragen.
Schon jetzt vielen Dank für jegliche Hilfe!!!
Gruß Ingo
Visio()
[/autoit][autoit][/autoit][autoit]Func Visio()
Local $oVisio
Local $sV_Blatt_Name = "Übersicht"
$oVisio = ObjCreate("Visio.Application") ;Visio Object erzeugen
$oVisio.Visible = 1 ;Visio sichtbar
$oVisio.Documents.AddEx ("bstorm_m.vst");Zeichnung aus Vorlage anlegen
$oVisio.ActivePage.Name = $sV_Blatt_Name ;Name vom Blatt setzen
EndFunc
Sub anlegen_Objekt()
Application.Windows.ItemEx("Zeichnung1").Activate
Application.ActiveWindow.Page.Drop Application.Documents.Item("BSTORM_M.VSS").Masters.ItemU("Topic"), 6.333661, 3.883858
Application.Windows.ItemEx("Zeichnung1").Activate
Application.ActiveWindow.Page.Drop Application.Documents.Item("BSTORM_M.VSS").Masters.ItemU("Topic"), 8.430118, 3.937008
End Sub
Sub verbinden_Objekt()
Dim UndoScopeID1 As Long
UndoScopeID1 = Application.BeginUndoScope("Auf Zeichenblatt ablegen")
Application.Windows.ItemEx("Zeichnung1").Activate
Application.ActiveWindow.Page.Drop Application.Documents.Item("BSTORM_M.VSS").Masters.ItemU("Dynamic connector"), 6.696943, 4.196358
Dim vsoCell1 As Visio.Cell
Dim vsoCell2 As Visio.Cell
Set vsoCell1 = Application.ActiveWindow.Page.Shapes.ItemFromID(6).CellsU("EndX")
Set vsoCell2 = Application.ActiveWindow.Page.Shapes.ItemFromID(4).CellsSRC(7, 1, 0)
vsoCell1.GlueTo vsoCell2
Application.EndUndoScope UndoScopeID1, True
Dim UndoScopeID2 As Long
UndoScopeID2 = Application.BeginUndoScope("Objektgröße ändern")
Dim vsoCell3 As Visio.Cell
Dim vsoCell4 As Visio.Cell
Set vsoCell3 = Application.ActiveWindow.Page.Shapes.ItemFromID(6).CellsU("BeginX")
Set vsoCell4 = Application.ActiveWindow.Page.Shapes.ItemFromID(5).CellsSRC(7, 0, 0)
vsoCell3.GlueTo vsoCell4
Application.EndUndoScope UndoScopeID2, True
End Sub
Alles anzeigen
Hallo, ich möchte aus meinem AutoIt Programm eine MS Visio Zeichnung erzeugen. Dies wollte ich über COM-Objecte erledigen. Habe auch den ersten Schritt bereits durchgeführt und Visio gestartet.
[autoit]$oVisio = ObjCreate("Visio.Application") ;Visio Object erzeugen
$oVisio.Visible = 1 ;Visio sichtbar
Jetzt suche ich eine Liste der verfügbaren COM-Objecte um eine Zeichnung erstellen zu können.
Oder kennt jemand eine bessere Möglichkeit mit AutoIt eine Zeichnung zu erstellen?
Gruß Ingo
Hallo,
unter C:\Program Files\AutoIt3\Examples\GUI\Simple\child.au3 findest du ein Beispiel für eine Kind GUI.
Gruß Ingo
Hallo
versuche _ArrayDisplay
Gruß Ingo
Wie meinst du das mit dem Aufteilen?
Vielen Dank an Xenobiologist ![]()
Hallo,
habe schon etwas gefunden mit:
#Include <Array.au3>
$sText = _getDOSOutput('tracert http://www.google.de')
$aIP = StringRegExp($sText, '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', 3)
_ArrayDisplay($aIP)
[/autoit][autoit][/autoit][autoit]Func _getDOSOutput($command)
Local $text = '', $Pid = Run('"' & @ComSpec & '" /c ' & $command, '', @SW_HIDE, 2 + 4)
While 1
$text &= StdoutRead($Pid, False, False)
If @error Then ExitLoop
Sleep(10)
WEnd
Return $text
EndFunc ;==>_getDOSOutput
sollte es klappen.
Gruß Ingo
Hallo Xenobiologist,
das ist ja ein super schneller Ansatz. Wie kann ich mir den aus der Ausgabe die IP Adressen am besten rauslösen und abspeichern?
Danke für die schnelle Hilfe!!!
Gruß Ingo
Hallo,
ich suche ein Programm welches den Weg zu einer IP Adresse speichert (also z.B. wie tracert mit Speicherfunktion) und dann später mit dem aktuellen vergleicht. Also mit dem festgestellt werden kann, ob eine backup Verbindung verwendet wird.
Kennt da jemand eine AutoIT Lösung?
Gruß Ingo
Hallo,
das ist genau die Lösung! Super danke!!
Der abgebildete Quelltext ist eigentlich nur ein Auszug aus einem größeren Programm. In der Schleife wird jede Sekunde eine GUI, mit dem gelesenen Daten aktualisiert. Daher das Sleep (1000) und die Bearbeitung des Strings innerhalb der Schleife.
Gruß Ingo
Hallo,
ich versuche grad überflüssige Zeilenumbrüche in einem String zu entfernen. Leider ohne erfolgt.
Hat jemand eine zündende Idee?
Gruß Ingo
[autoit]$PING_ret = Run(@ComSpec & " /c PING " & $Ziel, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
[/autoit][autoit][/autoit][autoit]While 1
Sleep (1000)
$line = $line & StdoutRead($PING_ret)
If @error Then ExitLoop ; wenn ein Fehler beim Lesen aufgetreten ist verlassen
;??????
StringReplace ( $line, @CRLF & @CRLF, @CRLF) ;doppele Zeilenvorschübe entfernen zur 1.
StringReplace ( $line, @CR & @CR, @CR) ;doppele Zeilenvorschübe entfernen zur 2.
StringReplace ( $line, @LF & @LF, @LF) ;doppele Zeilenvorschübe entfernen zur 3.
StringReplace ( $line, @CR & @LF & @CR & @LF, @CR & @LF) ;doppele Zeilenvorschübe entfernen zur 4.
Wend
Hallo,
funktioniert das eigentlich auch bei euch nicht? ![]()
Ich kann mich erinnern, genau solch eine Definition von Tasten bereits mit einer alten Version von AutoIT verwendet zu haben. Ich suche noch den Quelltext.
Gruß Ingo