FireFlyer: Puh, wird ja immer mehr ums Eck
. Darum hatte ich ja die Empfehlung mit AdlibEnable gegeben, dann braucht man die Schleifen nicht.
Beiträge von BugFix
-
-
Schnuffel: Grundsätzlich hast du recht, aber wir sind kein Profiboard und ich denke, wenn immer mehr Fehler auftauchen ist er zwangsläufig gezwungen sich etwas tiefer damit zu beschäftigen.
All jene, die dachten wir fertigen hier Skripte für jedermann, waren nach 2..3 Posts nicht mehr gesehen.
Also, nimms gelassen. -
AdlibEnable() direkt hinter dein HotKeySet().
-
Deine Funktionen _start und _stop sind beides Endlosschleifen, die man nicht abbrechen kann.
[autoit]
Verwende AdlibEnableGlobal $stop = 0
[/autoit][autoit][/autoit][autoit]
AdlibEnable('_start', 500)Func _start()
[/autoit][autoit][/autoit][autoit]
If $stop = 0 Then Send ("g")
EndFuncFunc _stop()
[/autoit]
$stop = 1
; AdlibEnable() ; ==> beendet die Funktion AdlibEnable()
EndFunc -
Na dann mußt du das raussuchen, was du ausgeben möchtest.
Können wir schlecht erahnen, was für Auswahlkriterien du da hast.
-
Hi,
aufgrund der Version 3.2.12.0 gab es kleine Veränderungen in der Syntax.
In den Einzelpostings zu den Funktionen ist dies noch nicht angepaßt.
Daher bitte auf die Funktionssammlung zurückgreifen.Edit: In der 3.2.12.0 gibt es eine ähnliche Suchfunktion (auch für 2D-Array) mit dem Namen _ArrayFindAll().
-
Vielleicht hilft WorkingDir mit anzugeben.
-
Ja stimmt, für keinen Parameter sollte man also zumindest einen Leerstring übergeben.
[autoit]
Probier mal so:$Datei = $oExcel.Workbooks.Oben($Path & "\PopUpFenster.xls","","","","")
[/autoit]
Falls das nicht klappt versuchs mal mit 0. -
Hier mal auf die Schnelle dein VBS als AutoIt-Variante (ungetestet)
Spoiler anzeigen
[autoit]Dim $oExcel, $oFSO, $Path, $Datei
[/autoit]
$oExcel = ObjCreate("Excel.Application")
$oFSO = ObjCreate("Scripting.FileSystemObject")
$Path = $oFSO.GetParentFolderName(@ScriptFullPath)
Dim $InTaskBar, $State
$InTaskBar = $oExcel.ShowWindowsInTaskbar
$State = $oExcel.WindowState
$oExcel.ShowWindowsInTaskbar = False
$oExcel.WindowState = -4140
$Datei = $oExcel.Workbooks.Open($Path & "\PopUpFenster.xls", , , , "")
$oExcel.Visible = True
$oExcel.ExecuteExcel4Macro ("PopUpFenster.xls!wbSave(" & $InTaskBar & ", " & $State & ")")
$oExcel.ExecuteExcel4Macro ("PopUpFenster.xls!wbOpen()")
$oExcel = 0
$oFSO = 0 -
ich kann aber auch verstehen, wenn du bzw ihr keine lust dazu habt einem noob zu helfen, kann ich verstehen^^
He, willst du uns beleidigen? Hier wird jedem geholfen, sofern die Frage verständlich dargelegt wird und es ist absolut egal, ob du neu dabei bist oder schon 1000 Postings geschrieben hast. -
Da bleibt mir nur zu sagen. Autsch :wacko:
-
Hi,
[autoit]
nachdem ich stundenlang ein Skript nach Fehlern durchsucht habe, fand ich die Ursache in einem NameSpace-Problem.
Ich ging bisher davon aus, dass eine als Global deklarierte Variable in Funktionen verändert werden kann und somit wiederum in anderen Funktionen mit dem neuen Wert zum Einsatz kommen kann.
Das folgende Bsp. zeigt aber, dass dem wohl nicht so ist. Habt ihr eine Erklärung dafür?Opt('MustDeclareVars',1)
[/autoit][autoit][/autoit][autoit]
Global $ar, $i
Global $str = 'a,b,c,d,e,f,g,h'_GetArray()
[/autoit][autoit][/autoit][autoit]
_GetCurrValue()Func _GetArray()
[/autoit][autoit][/autoit][autoit]
$ar = StringSplit($str, ',')
For $i = 0 To UBound($ar) -1
If $ar[$i] = 'e' Then ExitLoop ; $i sollte also 5 sein, da Global
Next
EndFuncFunc _GetCurrValue() ; obwohl $i Global ist $i plötzlich ohne Wert!
[/autoit]
MsgBox(0, 'Wert für $i = ' & $i, $ar[$i]) ; gezeigt wird '8' , also Wert für $i = 0 !!
EndFunc -
Schätze mal, das ist nur ein Spaßvogel, der unsere intelektuellen Fähigkeiten testen will (ohne Material ein Ergebnis liefern).
Aber bäh, denkste - den Gefallen tun wir ihm nicht.
-
[OT]
Jaja, so ein Meeting kann einen von den wirklich wichtigen Dingen im Leben abhalten...
[/OT] -
Du mußt das Programm auch anweisen zu beenden (Exit):
[autoit]If @error = 1 then Exit MsgBox(262160, "Fehlermeldung", "Es ist ein Fehler aufgetreten, bitte melden Sie sich bei der IL", 10)
[/autoit]Du kannst auch dann selber einen Fehler erzeugen und damit die Funktion verlassen und den Fehlerwert verarbeiten:
[autoit]Func _bla()
[/autoit]
If $x = 0 Then Return SetError(1,0,1)
If $y = 0 Then Return SetError(2,0,1)
;.....
EndFuncReturn der Funktion ist in beiden Fällen 1 für Fehler und Fehlerwert ist 1 bzw 2.
[autoit]
Weiterverarbeitung z.B.:If _bla() = 1 Then
[/autoit]
Switch @error
Case 1
; Reaktion
Case 2
; Reaktion
EndSwitch
EndIf -
Jupp, das wars 
Vielleicht sollte doch eine klitzekleine Hilfe mit rein...
-
Da stimme ich Xeno zu.
Wenn du aber unbedingt on the fly prüfen willst, könntest du z.B. auch das IntelliSense-Prinzip anwenden. Somit kannst du auch verhindern, dass deine Trennzeichen gelöscht werden.
Aber den Aufwand finde ich der Aufgabe nicht angemessen. -
Holla die Waldfee
Somit haben Admins & Mods zusammen ca. 1/4 aller Beiträge erbracht.
Man sind wir fleißig
-
Hi Xeno,
[autoit]
mal ein Feedback von mir.
In der Version 4.0 gibt es noch Probleme mit AutoIt 3.2.12.0
Hier mal ein Codebeispiel mit erforderlichen Includes und der Antwort von OI:#include <GUIConstantsEx.au3> ; OI ==> Korrekt
[/autoit][autoit][/autoit][autoit]
#include <WindowsConstants.au3> ; OI ==> wird nicht benötigt !!$GUImain = GUICreate('Main', 600, 400, -1, -1, Default, $GUI_WS_EX_PARENTDRAG)
[/autoit][autoit][/autoit][autoit]
$GUIchild = GUICreate("", 600, 200, 0, 200, BitAND($WS_BORDER,$WS_POPUP), $WS_EX_MDICHILD, $GUImain)
GUISetState(@SW_SHOW, $GUIchild)
GUISetState(@SW_SHOW, $GUImain)Do
[/autoit]
Until GUIGetMsg() = $GUI_EVENT_CLOSEOI möchte die Windows-Konstanten nicht einbinden :wacko:
-
Die Cookies liegen i.A. in einer Datei (bei mir, K-Meleon Browser heißt diese 'cookies.txt'), im Pfad:
Lw:\ Dokumente und Einstellungen\ USER\ Anwendungsdaten\ ...
bei K-Meleon:
...K-Meleon\ PROFILNAME\ ZEICHENKETTE.slt
bei Firefox:
...Mozilla\ Firefox\ Profiles\ ZEICHENKETTE.defaultEinfach alle nicht benötigten Cookies löschen, dann diese Datei als Kopie sichern und nach dem Schließen des Browsers die vorhandene cookie.txt mit der Sicherung überschreiben.