Du startest die Funktion 'Loop'. Solange diese nicht beendet ist, kannst du auch nicht die Funktion 'Stop' aufrufen.
Befehle werden nacheinander abgearbeitet.
Beiträge von BugFix
-
-
welche listview er laden soll
$hWnd <== Da übergibst du das Handle oder die ID deines ListViewmit einem FileOpenDialog
[autoit]
Wozu willst du eine FileOpenDialog? - Du willst doch in eine Datei speichern. Also wohl eher FileSave Dialog:$path = FileSaveDialog('ListView-Export speichern', @MyDocumentsDir, '*.csv')
[/autoit]
If @error Then Exit MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
FileWrite($path, _GUICtrlListView_Export($hWnd, 1, ',')) -
Ich hab mal schnell eine Funktion erstellt zum wahlweisen Export als Array oder String mit Trennzeichen (Default ist gemäß Opt('GUIDataSeparatorChar'), im Allg. '|').
[autoit]
Kannst ja die Stringausgabe direkt in eine Datei schreiben.FileWrite('Pfad_Datei.csv', _GUICtrlListView_Export($hWnd, 1, ',')
[/autoit][autoit]#include <GUIListView.au3>
[/autoit]
Func _GUICtrlListView_Export($hWnd, $exType=0, $Delim=Default) ; $exType=0 Array / $exType=1 String
If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd)
Local $row = _GUICtrlListView_GetItemCount($hWnd)
If $exType Then
If $Delim <> Default Then Local $oldDelim = Opt('GUIDataSeparatorChar', $Delim)
Local $sOut = ''
For $i = 0 To $row -1
$sOut &= _GUICtrlListView_GetItemTextString($hWnd, $i) & @CRLF
Next
If $Delim <> Default Then Opt('GUIDataSeparatorChar', $oldDelim)
Return $sOut
EndIf
Local $col = _GUICtrlListView_GetColumnCount($hWnd)
Local $aOut[$row][$col]
If $col = 1 Then
ReDim $aOut[$row]
For $i = 0 To UBound($aOut) -1
$aOut[$i] = _GUICtrlListView_GetItemText($hWnd, $i)
Next
Return $aOut
EndIf
For $i = 0 To UBound($aOut) -1
For $j = 0 To UBound($aOut, 2) -1
$aOut[$i][$j] = _GUICtrlListView_GetItemText($hWnd, $i, $j)
Next
Next
Return $aOut
EndFunc -
Hi,
ich hab mal auf die Commandlinevariante gewechselt. Ist etwas einfacher zu händeln.
Die Registryschlüssel beziehen sich auf die Standardinstallation. Bei Serverinstallation entsprechend anpassen - s. PDFCreator-Hilfe.Edit: Noch einen Bug gefixt.

Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
Local $SourceFolder = 'C:\TEST_ONLY\' ; Quellordner, abschließender Backslash - sonst Fehler bei RunWait!
Local $TargetFolder = $SourceFolder & 'PDF_OUT' ; Ausgabeordner
If Not FileExists($TargetFolder) Then DirCreate($TargetFolder)Local $TargetFormat = 0 ; values: ' 0 = PDF, 1 = PNG, 2 = JPEG, 3 = BMP, 4 = PCX, 5 = TIFF, 6 = PS, 7 = EPS, 8 = TXT,
[/autoit] [autoit][/autoit] [autoit]
;~ 9 = PDF/A-1b, 10 = PDF/X, 11 = PSD, 12 = PCL, 13 = RAW
Local $FileType = '*.doc' ; Quelldateityp
Local $FileSaveName = '<Title>' ; oder folgende Attribute (auch kombinierbar '<Title><DateTime>' )
;~ <Author> - Der Ersteller/Autor eines Dokumentes. Dies muss nicht immer der angemeldete Benutzer sein.
;~ <Computername> - Der Name des Rechners, auf dem PDFCreator installiert wurde.
;~ <ClientComputer> - Der Name oder die IP-Adresse des Rechners, der den Druckauftrag erstellt hat.
;~ Liegt eine Standardinstallation vor, entspricht der Clientcomputer dem Computernamen.
;~ Wurde die Serverinstallation gewählt, ist der Clientcomputer der Rechner, der über die Freigabe
;~ des Druckers einen Druckauftrag erstellt hat. Der Token kann auch für das "Automatische Speichern"-
;~ Verzeichnis gewählt werden, um so direkt auf dem Rechner, der den Druckauftrag erstellt hat, ein Dokument
;~ zu speichern (Bsp.: "\\<ClientComputer>\c$\files").
;~ <DateTime> - Fügt das aktuelle Datum und die aktuelle Zeit ein.
;~ <Title> - Fügt den Dokumententitel ein.
;~ <Username> - Fügt den Benutzernamen des angemeldeten Benutzers ein.
;~ <Counter> - Ein Zähler der bis 922.337.203.685.477 zählt.
;~ <MyFiles> - Ist das Verzeichnis "Eigene Dateien" des Benutzers.
;~ <MyDesktop> - Steht für den Desktop des Benutzers.; Dateien einlesen
[/autoit] [autoit][/autoit] [autoit]
Local $aFiles = _FileListToArray($SourceFolder, $FileType, 1)
If @error Then Exit MsgBox(0, 'Fehler', 'Keine Datei des gesuchten Typs im Ordner.'); bestehende AutoSave-Option auslesen
[/autoit] [autoit][/autoit] [autoit]
Local $key = "HKEY_CURRENT_USER\Software\PDFCreator\Program"
Local $UseAutosave = RegRead($key, 'UseAutosave'); Optionen setzen
[/autoit] [autoit][/autoit] [autoit]
RegWrite($key, 'UseAutosave', 'REG_SZ', 1)
RegWrite($key, 'AutosaveDirectory', 'REG_SZ', $TargetFolder)
RegWrite($key, 'AutosaveFilename', 'REG_SZ', $FileSaveName)
RegWrite($key, 'AutosaveFormat', 'REG_SZ', $TargetFormat); Drucken
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To UBound($aFiles)-1
RunWait(@ComSpec & " /c " & 'C:\Programme\PDFCreator\PDFCreator.exe /NOSTART /PF"' & $SourceFolder & $aFiles[$i] & '"', "", @SW_HIDE)
Next
Local $init = TimerInit()
Do
Sleep(50)
Until (Not ProcessExists('PDFSpool.exe')) Or TimerDiff($init) > 1000; ursprüngliche AutoSave-Option zurückschreiben
[/autoit] [autoit][/autoit] [autoit]
RegWrite($key, 'UseAutosave', 'REG_SZ', $UseAutosave)MsgBox(0, 'Convert2PDF', 'Abgeschlossen.')
[/autoit]Edit2:
Ich habe die Objektvariante nochmal verbessert. Probier einfach, was dir besser gefällt:Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
Local $SourceFolder = 'C:\TEST_ONLY\' ; Quellordner, abschließender Backslash
Local $TargetFolder = $SourceFolder & 'PDF_OUT' ; Ausgabeordner
If Not FileExists($TargetFolder) Then DirCreate($TargetFolder)Local $TargetFormat = 0 ; values: ' 0 = PDF, 1 = PNG, 2 = JPEG, 3 = BMP, 4 = PCX, 5 = TIFF, 6 = PS, 7 = EPS, 8 = TXT,
[/autoit] [autoit][/autoit] [autoit]
;~ 9 = PDF/A-1b, 10 = PDF/X, 11 = PSD, 12 = PCL, 13 = RAW
Local $FileType = '*.doc' ; Quelldateityp
Local $FileSaveName = '<Title>' ; oder folgende Attribute (auch kombinierbar '<Title><DateTime>' )
;~ <Author> - Der Ersteller/Autor eines Dokumentes. Dies muss nicht immer der angemeldete Benutzer sein.
;~ <Computername> - Der Name des Rechners, auf dem PDFCreator installiert wurde.
;~ <ClientComputer> - Der Name oder die IP-Adresse des Rechners, der den Druckauftrag erstellt hat.
;~ Liegt eine Standardinstallation vor, entspricht der Clientcomputer dem Computernamen.
;~ Wurde die Serverinstallation gewählt, ist der Clientcomputer der Rechner, der über die Freigabe
;~ des Druckers einen Druckauftrag erstellt hat. Der Token kann auch für das "Automatische Speichern"-
;~ Verzeichnis gewählt werden, um so direkt auf dem Rechner, der den Druckauftrag erstellt hat, ein Dokument
;~ zu speichern (Bsp.: "\\<ClientComputer>\c$\files").
;~ <DateTime> - Fügt das aktuelle Datum und die aktuelle Zeit ein.
;~ <Title> - Fügt den Dokumententitel ein.
;~ <Username> - Fügt den Benutzernamen des angemeldeten Benutzers ein.
;~ <Counter> - Ein Zähler der bis 922.337.203.685.477 zählt.
;~ <MyFiles> - Ist das Verzeichnis "Eigene Dateien" des Benutzers.
;~ <MyDesktop> - Steht für den Desktop des Benutzers.; Dateien einlesen
[/autoit] [autoit][/autoit] [autoit]
Local $aFiles = _FileListToArray($SourceFolder, $FileType, 1)
If @error Then Exit MsgBox(0, 'Fehler', 'Keine Datei des gesuchten Typs im Ordner.'); PDFCreator Objekt erstellen
[/autoit] [autoit][/autoit] [autoit]
Local $oPDFCreator = ObjCreate("PDFCreator.clsPDFCreator")
Local $EventObj = ObjEvent($oPDFCreator, 'PDFCreator_')$oPDFCreator.cStart("/NoProcessingAtStartup")
[/autoit] [autoit][/autoit] [autoit]With $oPDFCreator
[/autoit] [autoit][/autoit] [autoit]
$DefaultPrinter = .cDefaultprinter
.cDefaultprinter = "PDFCreator"
.cClearcache
.cPrinterStop = False
.cOption('UseAutosave') = 1
.cOption('AutosaveFormat') = $TargetFormat
.cOption('UseAutosaveDirectory') = 1
.cOption('AutosaveDirectory') = $TargetFolder
.cOption('AutosaveFilename') = $FileSaveName
EndWith; Dateien als PDF drucken
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To UBound($aFiles) -1
With $oPDFCreator
If Not FileExists($SourceFolder & $aFiles[$i]) Then _end('Datei existiert nicht.')
If Not .cIsPrintable($SourceFolder & $aFiles[$i]) Then _end('Datei ist nicht druckbar.')
.cPrintfile($SourceFolder & $aFiles[$i])
Do
Sleep(20)
Until .cIsConverted()
.cIsConverted = False
EndWith
Next_end()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func PDFCreator_eError()
[/autoit] [autoit][/autoit] [autoit]
$oErr = $oPDFCreator.cError
_end($oErr.Number & ' : ' & $oErr.Description & @CRLF)
EndFuncFunc _end($msg = '')
[/autoit]
With $oPDFCreator
.cPrinterStop = True
.cDefaultprinter = $DefaultPrinter
.cClearcache
Sleep(200)
.cClose
EndWith
If $msg Then
Exit MsgBox(0, 'Fehler', $msg)
Else
Exit MsgBox(0, 'Convert2PDF', 'Abgeschlossen.')
EndIf
EndFunc -
Das Editfenster ist etwas zu weit oben, also nicht genau in der Zeile die editiert werden soll.
- mit Doppelklick öffnet sich genau überder angeklickten Spalte ein Editfenster
Genau so ist es gewollt.

-
Ich kenne diesen Converter nicht, ich verwende PDFCreator.
[autoit]
Damit läßt sich das gut so automatisieren:Local $FILE = "C:\Test_1.doc" ; kpl. Pfad der zu druckenden Datei
[/autoit]
Local $oPDFCreator = ObjCreate("PDFCreator.clsPDFCreator")
If Not IsObj($oPDFCreator) Then Exit MsgBox(0, 'Fehler', 'Objekterstellung fehlgeschlagen.')
$oPDFCreator.cStart("/NoProcessingAtStartup")
With $oPDFCreator
.cOption("AutosaveFormat") = 0 ; 0 = PDF
$DefaultPrinter = .cDefaultprinter
.cDefaultprinter = "PDFCreator"
.cClearcache
.cPrinterStop = False
If Not FileExists($FILE) Then Exit MsgBox(0, 'Fehler', 'Datei existiert nicht.')
If Not .cIsPrintable($FILE) Then Exit MsgBox(0, 'Fehler', 'Datei ist nicht druckbar.')
.cPrintfile($FILE)
.cDefaultprinter = $DefaultPrinter
.cClearcache
Sleep(200)
.cClose
EndWith -
Hi,
ich habe mal interessenhalber die Zugriffsstatistik auf die in meiner Domain gespeicherten Tuts angeschaut.
Ehrlich - mit soviel (konstanter) Resonanz hatte ich dann doch nicht gerechnet:Anzahl der Zugriffe
2009-04 9.429
2009-03 9.470
2009-02 9.075
2009-01 9.441Verweisende URL's
Code
Alles anzeigen103 www.google.de/search 86 wiki.autoit.de/wiki/index.php/Tutorial 72 www.autoit.de/index.php 20 autoit.de/index.php 12 www.google.com/search 11 www.google.ch/search 9 www.google.at/search 3 de.search.yahoo.com/search 1 www.google.fr/search 1 www.scroogle.org/cgi-bin/nbbw.cgi 233 sonstige (ni. verwertbar) 551 GesamtDomains der Besucher (01.01.09 - 16.05.09)
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Seitenzugriff
CodeDas Zugriffs-Verhältnis auf die Seiten ist über den gesamten Zeitraum annähernd konstant: Array - Tutorial : RegExp - Beispiel : Bit - Tutorial 6 : 2 : 1Freut mich, dass es genutzt wird.

-
Aber warum schreibst du nicht einfach mit StdinWrite in die Putty-Console?
-
und dann dort mit rechtsklick das was im zwischenspeicher liegt dort einfügen...
Hast du das schon mal von Hand versucht
- Es erscheint dann im Fenster statt des Speicherinhalts nur: ^V (bei Verwendung Strg+V zum Einfügen).
Und soweit ich bisher erlebt habe, interagieren Terminalfenster nicht mit der Maus. -
Ich kann das Verhalten nicht bestätigen.
Ich habe das Skript mal als Bsp. um ein Kontextmenü mit Anhängen, Einfügen, Löschen ergänzt. Das klappt tadellos.Spoiler anzeigen
[autoit]#include<StaticConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include<GUIConstantsEx.au3>
#include<ListViewConstants.au3>
#include<StructureConstants.au3>
#include<WindowsConstants.au3>
#include <GUIListView.au3>Global $hListView, $currentItem[2], $title, $currentOpt[2] = ["none"]
[/autoit] [autoit][/autoit] [autoit]$GUI = GUICreate('test')
[/autoit] [autoit][/autoit] [autoit]
$ListView = GUICtrlCreateListView('Spalte1|Spalte2|Spalte3', 10, 10, 300, 200, $LVS_REPORT)
$hListView = GUICtrlGetHandle(-1)
$LV_mnu = GUICtrlCreateContextMenu($ListView)
$mnuAdd = GUICtrlCreateMenuItem('Anhängen - Leeres Item', $LV_mnu)
$mnuIns = GUICtrlCreateMenuItem('Einfügen - Leeres Item', $LV_mnu)
GUICtrlCreateMenuItem('', $LV_mnu)
$mnuDel = GUICtrlCreateMenuItem('Löschen - Markiertes Item', $LV_mnu)
_GUICtrlListView_SetColumnWidth($hListView, 0, 70)
_GUICtrlListView_SetColumnWidth($hListView, 1, 60)
_GUICtrlListView_SetColumnWidth($hListView, 2, $LVSCW_AUTOSIZE_USEHEADER )
For $i = 1 To 9
GUICtrlCreateListViewItem('Z. ' & $i & ' - Sp. 1|Z. ' & $i & ' - Sp. 2|Z. ' & $i & ' - Sp. 3', $ListView)
Next$EditBox = GUICreate('', 200, 30, -1, -1, BitOR($WS_POPUP,$WS_BORDER), $WS_EX_TOPMOST)
[/autoit] [autoit][/autoit] [autoit]
$dummy = GUICtrlCreateDummy()
$hEdit = GUICtrlCreateInput('', 5, 5, 190, 20, $SS_CENTER)
HotKeySet('{ESC}', '_EscEdit')
Global $AccelKeys[1][2]=[["{ENTER}", $dummy]]
GUICtrlSetOnEvent($dummy, "_EditEnter")
GUISetAccelerators($AccelKeys)GUISetState(@SW_SHOW, $GUI)
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")While True
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $mnuAdd
_mnuAdd()
Case $mnuIns
_mnuIns()
Case $mnuDel
_mnuDel()
EndSwitch
WEndFunc _mnuAdd()
[/autoit] [autoit][/autoit] [autoit]
Local $new = _GUICtrlListView_AddItem($hListView, '')
Local $col = _GUICtrlListView_GetColumnCount($hListView)
If $col = 1 Then Return
For $i = 1 To $col -1
_GUICtrlListView_AddSubItem($hListView, $new, '', $i)
Next
EndFuncFunc _mnuIns()
[/autoit] [autoit][/autoit] [autoit]
Local $marked = _GUICtrlListView_GetSelectedIndices($hListView)
If $marked = '' Then Return MsgBox(0, 'Fehler Einfügen', 'Kein Item markiert!')
_GUICtrlListView_InsertItem($hListView, '', $marked)
EndFuncFunc _mnuDel()
[/autoit] [autoit][/autoit] [autoit]
Local $marked = _GUICtrlListView_GetSelectedIndices($hListView)
If $marked = '' Then Return MsgBox(0, 'Fehler Löschen', 'Kein Item markiert!')
_GUICtrlListView_DeleteItem($hListView, $marked)
EndFuncFunc _LeftDblClick($Info)
[/autoit] [autoit][/autoit] [autoit]
If $Info[3] = -1 Then Return
If $currentOpt[0] = "none" Then
$currentOpt[0] = Opt('GUICoordMode', 1)
$currentOpt[1] = Opt("GUIOnEventMode", 1)
EndIf
GUICtrlSetOnEvent($hEdit, '_EditEnter')
_GUICtrlListView_SetSelectedColumn($Info[1], $Info[4])
$title = WinGetTitle($GUI)
Local $mouse = MouseGetPos(), $posEdit = WinGetPos($EditBox)
Local $posGUI = WinGetPos($GUI), $posLV = ControlGetPos($GUI, '', $hListView)
Local $colInfo = _GUICtrlListView_GetColumn($Info[1], $Info[4]), $sumWidth = 0, $tmp
WinSetTitle($GUI, '', 'Editiere: Zeile ' & $Info[3]+1 & ', ' & $colInfo[5])
For $i = 0 To $Info[4]
$tmp = _GUICtrlListView_GetColumn($Info[1], $i)
$sumWidth += $tmp[4]
Next
$sumWidth -= $colInfo[4]
Local $xPos = $posGUI[0]+$posLV[0]+$sumWidth
If $xPos+$colInfo[4]+10 > @DesktopWidth Then $xPos = @DesktopWidth - ($colInfo[4] + 10)
If $xPos < 0 Then $xPos = 0
WinMove($EditBox, '', $xPos, $mouse[1]-$posEdit[3], $colInfo[4]+10)
GUICtrlSetData($hEdit, _GUICtrlListView_GetItemText($Info[1], $Info[3], $Info[4]))
$currentItem[0] = $Info[3]
$currentItem[1] = $Info[4]
GUISetState(@SW_SHOW, $EditBox)
EndFuncFunc _EscEdit()
[/autoit] [autoit][/autoit] [autoit]
WinSetTitle($GUI, '', $title)
Opt('GUICoordMode', $currentOpt[0])
Opt("GUIOnEventMode", $currentOpt[1])
$currentOpt[0] = "none"
GUISetState(@SW_HIDE, $EditBox)
EndFuncFunc _EditEnter()
[/autoit] [autoit][/autoit] [autoit]
WinSetTitle($GUI, '', $title)
Opt('GUICoordMode', $currentOpt[0])
Opt("GUIOnEventMode", $currentOpt[1])
$currentOpt[0] = "none"
_GUICtrlListView_SetItemText($hListView, $currentItem[0], GUICtrlRead($hEdit), $currentItem[1])
GUISetState(@SW_HIDE, $EditBox)
EndFuncFunc WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
[/autoit]
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView ; ID des LV
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) ; ID des LV
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_DBLCLK
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[5] = [$hWndFrom, $iIDFrom, $iCode, DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem")]
_LeftDblClick($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY -
Mach ein Kontextmenü und dort einen Punkt: Item anfügen, oder Einfügen.

-
Aber eine andere Sache, was mache ich, wenn ich eine leere Zelle editieren will? Dann reagiert das Script leider nicht.
Selbstverständlich kannst du auch leere Zellen editieren.(erstelle doch mal ein paar leere, wirst sehen es geht). Aber du meinst wohl eher nicht existierende Zellen. Die kann man natürlich nicht editieren, die mußt du erst erstellen. -
Andy, ich verstehe dein Ansinnen und gebe dir inhaltlich grundsätzlich recht.
Aber, ich will den User nicht aus seiner Verantwortung entlassen und weitere Regulierungen festsetzen. Wenn du eine EXE lädst, mosert schon dein Downloadprogramm "Achtung, könnte böse sein!". Willst du die Datei auf dem PC starten meldet auch noch eines deiner Sicherheitsprogramme: "Achtung, eine EXE. Wilsst du das wirklich tun?". D.h. der User wird per se an seine eigene Pflicht und Schuldigkeit erinnert, da will ich nicht auch noch Händchen halten. Soviel Eigenverantwortung verlange ich einfach. -
Zum Einen kann ich durchaus verstehen, wenn jemand seinen Code aus einem Schutzbedürfnis heraus (kommerzielle Nutzung der Software angedacht) nicht offenlegen will. Allerdings hätte ich dann nicht das Bedürfnis die ausführbare Datei allgemein zu präsentieren.
Ich befürworte OpenSource, verdamme aber nicht jene, die da andere Wege gehen möchten. Das ist eine Sache, die wirklich jeder für sich privat entscheiden muß.
Wenn nun aber die Datei als EXE angehängt wird, dann ist es m.E. die Pflicht eines jeden Users, sich zu überlegen, ob er diese herunterlädt/ausführt. In unserem Forum gelten doch die gleichen Vorsichtsregeln, wie im übrigen Web. Man kann zwar hoffen, dass unsere Forummitglieder keine Bösewichter sind, aber deswegen blauäugig alles als sicher einzustufen, wäre dasselbe, als ob man sagt: He, meine Nachbarin kenne ich schon seit 10 Jahren. Mit der kann ich ungeschützten Sex haben. Wenn man sich so lange kennt wüßte man doch, falls sie AIDS hat.
Deutschland ist schon dermaßen überhäuft mit Verboten, Geboten und Regulierungen und trotzdem wird immer noch von einer demokratischen Selbstbestimmung gefaselt. Schlußendlich halte ich also nichts davon, dieser Regulierungswut noch ein weiteres Dekret hinzuzufügen. Meine Antwort lautet: Nein. -
ist es möglich, einen parameter byref zurück zugeben?
Zitatzb wenn ein array in einer function erstellt wird - ich erinner da mal an funktionen wie stringsplit....
[autoit]
Dann deklariere einfach vorab den Ergebnisspeicher und übergib die Variable dazu beim Aufruf der Funktion mit ByRef:#include <Array.au3>
[/autoit][autoit][/autoit][autoit]
Local $ergebnisSplit
If _mySplit('12345', '', $ergebnisSplit) Then _ArrayDisplay($ergebnisSplit)Func _mySplit($string, $trenner, ByRef $ergebnisSplit)
[/autoit]
$ergebnisSplit = StringSplit($string, $trenner, 2)
If @error Then
Return 0
Else
Return 1
EndIf
EndFunc -
Den Teil SelectCase habe ich herausgelöscht, weil ich nicht wusste wozu der Teil ist und keine Fehler verursacht hatte (nach dem Herausnehmen).
Also hatte ich für mich entschieden, dass ich ihn nicht brauch.
Also Xethria, eigentlich müßte ich mich beleidigt fühlen.
Ich programmiere gaaaanz sicher nix in meine Funktionen, das ohne Sinn ist.
Aber die Rache des Programms hat dich ja schon voll erwischt, und somit bin ich auch nicht sauer.
-
Vielleicht hast du ja an deinen Farboptionen rumgespielt
Wäre mal interessant, was du da verstellt hast, denn BGR-Mode ist es nicht - dann müßte es blau sein.
-
Setze am Skriptbeginn
[autoit]opt("wintitlematchmode",2)
[/autoit]Direkt vor dem problematischen Fenster:
[autoit]opt("wintitlematchmode",4) ; Opt wechseln
[/autoit]
WinwaitActive("[REGEXPTITLE:(?i)*- Draft*]")
opt("wintitlematchmode",2) ; Opt zurück wechseln -
1. Geht nicht, gibts nicht.
2. Wo ist dein Code, an dem wir das nachvollziehen können?Diese Befehle arbeiten 100% mit Progress - aber ich vermute mal (mangels Code), dass du gar kein Progresscontrol erstellst, sondern ProgressOn verwendest. Da kannst du allerdings nichts einfärben.
-
Die Hilfe hilft:
ZitatGUICtrlSetColor ( controlID, textcolor)
...Progress controls can currently be colored.
Checkbox, Radio or Progress controls cannot be painted if the "Windows XP style" is used.GUICtrlSetBkColor ( controlID, backgroundcolor )
...Progress and Slider controls can currently be colored.
Progress controls cannot be painted if the "Windows XP style" is used.