$var = "text"
[/autoit]
$var = "text"
[/autoit]Genau das ist ja der Kern deines Problems.
Schade das du das erst jetzt erkennst.
Das Problem ist die Logik!
Wenn WinExists() meldet, "das Fenster existiert" dann muss der Ordner wohl schon geöffnet worden sein. Ansonsten gäb's das Explorerfenster ja nicht.
Déjà-vu
ZitatAuszug aus dem Impressum:
Urheberrecht
Alle Rechte vorbehalten. Sämtliche Texte, Bilder und andere in der Website und im Magazin veröffentlichten Informationen unterliegen größtenteils dem Copyright von GuniWeb Internetdienste. Jede Vervielfältigung, Verbreitung, Speicherung, Sendung und Wieder- bzw. Weitergabe der Inhalte ist ohne Genehmigung von GuniWeb Internetdienste ausdrücklich untersagt. Änderungen und Irrtümer bleiben vorbehalten.
Ich mach mir jetzt nicht die Mühe die Links zu den beiden bereits geschlossenen Themen zu suchen.
_GUICtrlListView_SetColumnWidth()
Wie wär's mit zippen?
Passwort drauf und fertig.
Wie genau soll man das deuten? Möchtest du die WinMoves nur ausführen wenn sich die GUI innerhalb eines vorgegebenen Bereichs befindet? Dann würd ich eher IF $pos> .... AND $pos<.... THEN WinMove(...) ENDIF nehmen.
Klasse! Der bekommt sofort einen Stammplatz auf meinem PortableApps Stick.
2 kleine Fehler. Der erste in der Playliste.
Der 2te tritt auf, wenn man den aktuell gespielten Titel aus der Playliste entfernt und dann die Wiedergabe stoppt.
ZitatIch werde das mal versuchen.
Aber wenn du heute wieder online bist und dein Server auch , würdest du dann mal nachgucken wollen ?
Hier mal ein kleiner Anfang. Die Datei gehört nach /wcf/lib/data/messae/bbcode/highlighter
<?php
// wcf imports
require_once(WCF_DIR.'lib/data/message/bbcode/highlighter/Highlighter.class.php');
class AutoitHighlighter extends Highlighter {
// highlighter style
protected $style = array(
'quotes' => 'color:grey',
'comments' => 'color:#58FA58',
'numbers' => 'color:#B404AE',
'colors' => 'color:#751116',
'keywords1' => 'color:#0404B4;font-weight:bold', //functions
'keywords2' => 'color:#0080FF;font-weight:bold', //userdefined functions
'keywords3' => 'color:#FF8000', //macros
'keywords4' => ''
);
//highlight numbers
protected function highlightNumbers($string) {
$string = preg_replace('!(?<='.$this->separatorsRegEx.')([0-9])(?='.$this->separatorsRegEx.')!i', '<span style="'.$this->style['numbers'].'">\\0</span>', $string);
$string = preg_replace('!(?<='.$this->separatorsRegEx.')(0x[0-9a-f]{3,6})(?='.$this->separatorsRegEx.')!i', '<span style="'.$this->style['colors'].'">\\0</span>', $string);
return $string;
}
// highlighter syntax
protected $singleLineComment = array(";");
protected $separators = array("(", ")", "{", "}", '[', ']', '=');
protected $keywords1 = array(
"MsgBox",
"ConsoleWrite"
);
protected $keywords2 = array(
"_arrayDisplay",
"_INetGetSource"
);
protected $keywords3 = array(
"@ScriptDir",
"@TempDir"
);
}
?>
Alles anzeigen
Die $keyword und $$singleLineComment Arrays müssen natürlich noch vervollständigt werden. Das sollte aber kein Problem sein.
Evtl. müsste man dann noch ein preg_replace für Variablen einbauen und sich was für Blockkommentare einfallen lassen.
Den dazugehörigen BBCode-Einstellungen kannst du 1 zu 1 vom CSS BBCode übernehmen (den BBCode-Tag selbstverständlich ändern)
Der Rest ist Fleißarbeit ![]()
Na so wird das nix. Wenn du das anhand der WBB eigenen Highlighter Klasse machen willst dann erstell dir eine Kopieder CssHighlighter.class.php.
In der Klasse stehen die 5 Arrays für Schlüsselwörter zur verfügung ($keywords1 bis $keywords5). In diesen Arrays definierst du dann die Autoit Schlüsselwörter. Das erste Array füllst du z.B. mit allen Funktionen, das zweite mit allen Makros, das dritte mit allen Userfunktionen etc.
Dann kannst um Array $style festlegen, welche Farbe für jedes einzelne Array verwendet werden sollen.
Für Seperatoren und Kommentare gibt's ebenfalls Arrays die du füllen kannst.
Alle Angaben ohne Gewähr. Ich hab die Datei nicht vor mir, lieg schon im Bett und mag jetzt denn Server nicht extra nochmal aufwecken.
Hmm, ja. Die kenn ich. Blöd das die jetzt aber auch genau so heissen muss.
Ich meinte eigentlich eher die Klasse die du für Autoit erstellt hast.
Bin schon etwas Müde deshalb fasse ich mich kurz.
Was hat bei deinem Versuch nicht geklappt und kann man deine Highlighter.class.php mal sehen?
_FileCountLines() ![]()
Das ist natürlich vollkommen richtig. Asche auf auf mein Haupt für diese Fehlinformation.
Da waren die Finger wieder schneller als der Kopf.
Das hier funktioniert bei mir auf einem XP Pro.
_ShowFileProperties(@DesktopDir)
Func _ShowFileProperties($sFile, $sVerb = "properties", $hWnd = 0)
; function by Rasim
; http://www.autoitscript.com/forum/index.ph…ndpost&p=565547
Local Const $SEE_MASK_INVOKEIDLIST = 0xC
Local Const $SEE_MASK_NOCLOSEPROCESS = 0x40
Local Const $SEE_MASK_FLAG_NO_UI = 0x400
Local $PropBuff, $FileBuff, $SHELLEXECUTEINFO
$PropBuff = DllStructCreate("char[256]")
DllStructSetData($PropBuff, 1, $sVerb)
$FileBuff = DllStructCreate("char[256]")
DllStructSetData($FileBuff, 1, $sFile)
$SHELLEXECUTEINFO = DllStructCreate("int cbSize;long fMask;hwnd hWnd;ptr lpVerb;ptr lpFile;ptr lpParameters;ptr lpDirectory;" & _
"int nShow;int hInstApp;ptr lpIDList;ptr lpClass;hwnd hkeyClass;int dwHotKey;hwnd hIcon;" & _
"hwnd hProcess")
DllStructSetData($SHELLEXECUTEINFO, "cbSize", DllStructGetSize($SHELLEXECUTEINFO))
DllStructSetData($SHELLEXECUTEINFO, "fMask", $SEE_MASK_INVOKEIDLIST)
DllStructSetData($SHELLEXECUTEINFO, "hwnd", $hWnd)
DllStructSetData($SHELLEXECUTEINFO, "lpVerb", DllStructGetPtr($PropBuff, 1))
DllStructSetData($SHELLEXECUTEINFO, "lpFile", DllStructGetPtr($FileBuff, 1))
$aRet = DllCall("shell32.dll", "int", "ShellExecuteEx", "ptr", DllStructGetPtr($SHELLEXECUTEINFO))
If $aRet[0] = 0 Then Return SetError(2, 0, 0)
Return $aRet[0]
EndFunc ;==>_ShowFileProperties
Die Datei wird schon in FileOpenDialog() geöffnet.
Das Problem liegt in der FOR-Schleife. StringSplit() liefert seinerseits wieder ein Array, das kannst du nicht in ein Element von $arCSV legen.
Änder die Schleife mal so ab, dann sollte es funktionieren
For $i = 1 To $arCSV[0]
$tmp = StringSplit($arCSV[$i], ";")
$arCSV[$i] = $tmp[1]
Next
dazu kannst du dir mal die Funktionen ...
[autoit]
IniWrite()
IniRead()
;und
_StringEncrypt() ;das einfachste
;oder
_Crypt_EncryptData()
_Crypt_DecryptData()
;oder
_Crypt_EncryptFile()
_Crypt_DecryptFile()
... in der Hilfe anschauen.
GUICtrlSetBkColor($label, -2)
Entschuldige, ich hab vergesen die IniReadSection()-Zeile in die FOR_Schleife zu ziehen.
#include<array.au3>
Opt('MustDeclareVars', 1)
ArrayMuster()
Func ArrayMuster()
Global $aIni, $nMsg, $GUI_EVENT_CLOSE
Global $sFilename = "C:\Dokumente und Einstellungen\Administrator\Desktop\autoit\muster.ini"
Global $MengenCombo[3]
Global $Sektionen[3] = ["HostName", "Schluessel", "Muster"]
GUICreate("GUI", 250, 250)
GUICtrlCreateLabel("HostName ", 60, 10)
$MengenCombo[0] = GUICtrlCreateCombo("", 60, 30)
GUICtrlCreateLabel("Schluessel ", 60, 70)
$MengenCombo[1] = GUICtrlCreateCombo("", 60, 88)
GUICtrlCreateLabel("Muster ", 60, 130)
$MengenCombo[2] = GUICtrlCreateCombo("", 60, 150)
GUISetState()
If Not FileExists($sFilename) Then ; Neu zur Überprüfung hinzu
MsgBox(0, "Test", "Ini-Datei existiert nicht.")
Exit
EndIf
For $i = 0 To UBound($MengenCombo) - 1 ;für jede ComboBox in dem Array ->
$aIni = IniReadSection($sFilename, $Sektionen[$i]) ;-> lese die dazugehörige Sektion in der INI. Der Sektionsname steht im Array Sektionen und hat den selben Index wie die dazugehörige ComboBox im Array MengenCombo ->
For $j = 1 To $aIni[0][0] ;-> für jedes Arrayelement das aus der Sektion gelesen wird ->
GUICtrlSetData($MengenCombo[$i], $aIni[$j][1]) ;-> erstelle einen Eintrag in der aktuellen ComboBox
Next ;-> wieder zum Anfang und die nächste ComboBox abarbeiten.
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
EndSwitch
WEnd
EndFunc ;==>ArrayMuster
Hab mal versucht es in den Kommentaren zu erklären.
#include<array.au3>
Opt('MustDeclareVars', 1)
ArrayMuster()
Func ArrayMuster()
Global $aIni, $nMsg, $GUI_EVENT_CLOSE
Global $sFilename = "C:\Dokumente und Einstellungen\Administrator\Desktop\autoit\muster.ini"
Global $MengenCombo[3]
Global $Sektionen[3] = ["HostName", "Schluessel", "Muster"]
GUICreate("GUI", 250, 250)
GUICtrlCreateLabel("HostName ", 60, 10)
$MengenCombo[0] = GUICtrlCreateCombo("", 60, 30)
GUICtrlCreateLabel("Schluessel ", 60, 70)
$MengenCombo[1] = GUICtrlCreateCombo("", 60, 88)
GUICtrlCreateLabel("Muster ", 60, 130)
$MengenCombo[2] = GUICtrlCreateCombo("", 60, 150)
GUISetState()
If Not FileExists($sFilename) Then ; Neu zur Überprüfung hinzu
MsgBox(0, "Test", "Ini-Datei existiert nicht.")
Exit
EndIf
$aIni = IniReadSection($sFilename, $Sektionen[0])
For $i = 0 To UBound($MengenCombo) - 1
For $j = 1 To $aIni[0][0]
GUICtrlSetData($MengenCombo[$i], $aIni[$j][1])
Next
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
EndSwitch
WEnd
EndFunc ;==>ArrayMuster