Du nimmst dir die mysql.au3, die mit der libmysql.dll arbeitest. Dann kannst Du dich damit zum Server verbinden und SQL-Statements aller Art absetzen! Die DLL kommt von MySQL, deshalb sollte das wohl die Möglichkeit sein, die allen anderen vorzuziehen ist (nimm bloß kein ODBC oder so, da gibt es nur Streß, z.B. unter Vista x64).
Beiträge von teh_hahn
-
-
lol, das ist wirlich uncool. Nichts desto Trotz bringt es
[autoit]_INetExplorerCapable()
[/autoit]natürlich mal voll. Solltes vielleicht standardmäßig für alle Adressen gemacht werden im nächsten Release der FF.au3, falls es einen gibt.
[gelöst]
-
Hallo,
ich weiß nicht ob es jemandem schon aufgefallen ist oder ob Stilgar dieser Bug bekannt ist. Das Übergeben von Umlauten (z.B. ä,ß,Ö...) innerhalb der URL funktioniert nicht:
[autoit]_FFOpenURL($i_ffsocket, "http://www.cinefacts.de/suche/suche.php?type=&name=Bärenbrüder", -1, False)
[/autoit]Kennt jemand einen Workaround?
-
-
Hallo zusammen,
um einen Doppelpost zu vermeiden, verweise ich hierauf:
http://www.autoitscript.com/forum/index.php?showtopic=84901Zusätzlich hier noch die (deutsche) Fehlermeldung im Anhang!
Wäre sehr dankbar für eine Lösung!
-
Hi,
hier mal die allgemeingültige Variante:
Spoiler anzeigen
[autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>Global $as_array = _StringSplitCount("Dieser String wird alle fünf Zeichen gesplittet!", 5)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($as_array, "_StringSplitCount");~ Author: teh_hahn
[/autoit] [autoit][/autoit] [autoit]
Func _StringSplitCount(Const $S_TEXT, Const $I_COUNT)
If Not StringLen($S_TEXT) Then Return SetError(1, 0, 0)
Local $as_ret[1] = [1], $s_tmp = "", $i_start = 1
While 1
$s_tmp = StringMid($S_TEXT, $i_start, $I_COUNT)
If Not $s_tmp Then ExitLoop
ReDim $as_ret[$as_ret[0] + 1]
$as_ret[$as_ret[0]] = $s_tmp
$as_ret[0] += 1
$i_start += $I_COUNT
WEnd
$as_ret[0] -= 1Return $as_ret
[/autoit]
EndFunc ;==>_StringSplitCount -
Hallo,
basierend auf BugFix's Code von hier, habe ich etwas geschrieben, womit sich die SubItems mehrerer ListViews editieren lassen. Etwas unschön ist die Verwendung globaler Variablen, aber mir ist leider keine bessere Lösung eingefallen. Es werden nun aber keine Hotkeys mehr verwendet und der Code wurde an ein paar Stellen verbessert.
Ein Problem besteht allerdings noch: Und zwar erscheint das Input-Feld auch dann, wenn ich auf leere ListView-SubItems klicke (d.h. nicht existente Items) das Editieren ist dann natürlich nicht möglich. Hat jemand eine Idee, wie man dies abfangen könnte? Hier erstmal der Code:
Spoiler anzeigen
[autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <GUIListView.au3>
#include <WindowsConstants.au3>;~ Script by BugFix <autoit.de> - Modified by teh_hahn
[/autoit] [autoit][/autoit] [autoit]Global $ah_lviews[2] ;~ Required for WM_NOTIFY
[/autoit] [autoit][/autoit] [autoit]
Global $ah_lvedit = 0 ;~ Required for _GUICtrlListView_EditShow
Global $ai_guiopts = 0, $h_gui = 0 ;~ Required for _GUICtrlListView_EditHide
Global $i_idfrom = 0, $i_index = 0, $i_subitem = 0 ;~ Required for _GUICtrlListView_EditEnterExit main()
[/autoit] [autoit][/autoit] [autoit]Func OnAutoItStart()
[/autoit] [autoit][/autoit] [autoit]
Opt("MustDeclareVars", 1)
EndFunc ;==>OnAutoItStartFunc main()
[/autoit] [autoit][/autoit] [autoit]
Local $h_lview0 = 0, $h_lview1 = 0
Local $as_data0[3][3] = [["Hans Meiser", "12345", "Musterstadt"],["Hans Meiser", "12345", "Musterstadt"],["Hans Meiser", "12345", "Musterstadt"]]
Local $as_data1[1][3] = [["Ilona Christen", "09876", "Testhausen"]]$h_gui = GUICreate("GUICtrlCreateListView Edit", 640, 480)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateTab(0, 0, 640, 480)GUICtrlCreateTabItem("First")
[/autoit] [autoit][/autoit] [autoit]
$h_lview0 = GUICtrlCreateListView("", 10, 30, 620, 400, $LVS_REPORT)
_GUICtrlListView_AddColumn($h_lview0, "Name", 70)
_GUICtrlListView_AddColumn($h_lview0, "PLZ", 140)
_GUICtrlListView_AddColumn($h_lview0, "Ort", 70)
_GUICtrlListView_AddArray($h_lview0, $as_data0)GUICtrlCreateTabItem("Second")
[/autoit] [autoit][/autoit] [autoit]
$h_lview1 = GUICtrlCreateListView("", 10, 30, 620, 400, $LVS_REPORT)
_GUICtrlListView_AddColumn($h_lview1, "Name", 70)
_GUICtrlListView_AddColumn($h_lview1, "PLZ", 140)
_GUICtrlListView_AddColumn($h_lview1, "Ort", 70)
_GUICtrlListView_AddArray($h_lview1, $as_data1)
GUICtrlCreateTabItem("")
$ah_lvedit = _GUICtrlListView_EditCreate($h_gui)$ah_lviews[0] = $h_lview0
[/autoit] [autoit][/autoit] [autoit]
$ah_lviews[1] = $h_lview1
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd
EndFunc ;==>mainFunc _GUICtrlListView_EditCreate(ByRef Const $H_PARENT)
[/autoit] [autoit][/autoit] [autoit]
Local Const $I_OPTGCM = Opt("GUICoordMode")
Local Const $I_OPTGOEM = Opt("GUIOnEventMode")
Opt("GUICoordMode", 1)
Opt("GUIOnEventMode", 1)Local $ah_lvedit[2]
[/autoit] [autoit][/autoit] [autoit]
$ah_lvedit[0] = GUICreate("", 20, 17, -1, -1, $WS_POPUP, $WS_EX_TOPMOST, $H_PARENT)
$ah_lvedit[1] = GUICtrlCreateInput("", 0, 0, 20, 17)
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
GUICtrlSetOnEvent(-1, "_GUICtrlListView_EditEnter")GUISetOnEvent($GUI_EVENT_CLOSE, "_GUICtrlListView_EditHide")
[/autoit] [autoit][/autoit] [autoit]
GUISwitch($H_PARENT)Opt("GUICoordMode", $I_OPTGCM)
[/autoit] [autoit][/autoit] [autoit]
Opt("GUIOnEventMode", $I_OPTGOEM)
Return $ah_lvedit
EndFunc ;==>_GUICtrlListView_EditCreateFunc _GUICtrlListView_EditEnter()
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListView_EditHide()
_GUICtrlListView_SetItemText($i_idfrom, $i_index, GUICtrlRead(@GUI_CtrlId), $i_subitem) ;~ ToDo: Global variablea!
EndFunc ;==>_GUICtrlListView_EditEnterFunc _GUICtrlListView_EditHide()
[/autoit] [autoit][/autoit] [autoit]
GUISetState(@SW_ENABLE, $h_gui) ;~ ToDo: Global variable!
GUISetState(@SW_HIDE, @GUI_WinHandle)
Opt("GUICloseOnESC", $ai_guiopts[0]) ;~ ToDo: Global variable!
Opt("GUICoordMode", $ai_guiopts[1]) ;~ ToDo: Global variable!
Opt("GUIOnEventMode", $ai_guiopts[2]) ;~ ToDo: Global variable!
EndFunc ;==>_GUICtrlListView_EditHideFunc _GUICtrlListView_EditShow(ByRef Const $H_LVIEW, ByRef Const $i_idfrom, ByRef Const $i_index, ByRef Const $i_subitem)
[/autoit] [autoit][/autoit] [autoit]
Local Const $H_HWND = WinGetHandle("[ACTIVE]")
GUISetState(@SW_DISABLE, $H_HWND)Global $ai_guiopts[3] = [Opt("GUICloseOnESC"), Opt("GUICoordMode"), Opt("GUIOnEventMode")] ;~ ToDo: Global variable!
[/autoit] [autoit][/autoit] [autoit]
Opt("GUICloseOnESC", 1)
Opt("GUICoordMode", 1)
Opt("GUIOnEventMode", 1)Local Const $AI_POSGUI = WinGetPos($H_HWND)
[/autoit] [autoit][/autoit] [autoit]
Local Const $AI_POSLVIEW = ControlGetPos($H_HWND, "", $H_LVIEW)
Local Const $AV_LVIEWCOL = _GUICtrlListView_GetColumn($i_idfrom, $i_subitem)Local $i_width = 0
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To $i_subitem - 1
$i_width += _GUICtrlListView_GetColumnWidth($i_idfrom, $i)
NextLocal Const $I_POSX = $AI_POSGUI[0] + $AI_POSLVIEW[0] + $i_width + 5
[/autoit] [autoit][/autoit] [autoit]
WinMove($ah_lvedit[0], "", $I_POSX, MouseGetPos(1), $AV_LVIEWCOL[4], 17)
GUICtrlSetData($ah_lvedit[1], _GUICtrlListView_GetItemText($i_idfrom, $i_index, $i_subitem))GUISetState(@SW_SHOW, $ah_lvedit[0])
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>_GUICtrlListView_EditShowFunc WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
#forceref $hWnd, $Msg, $wParamLocal Const $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
[/autoit] [autoit][/autoit] [autoit]
Local Const $hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
Local Const $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
Local Const $iCode = DllStructGetData($tNMHDR, "Code")Local $hWndListView = 0
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($ah_lviews) - 1
$hWndListView = $ah_lviews[$i]
If Not IsHWnd($hWndListView) Then $hWndListView = GUICtrlGetHandle($hWndListView)
If $hWndFrom = $hWndListView Then
Switch $iCode
Case $NM_CLICK ;~ Single click
Case $NM_DBLCLK ;~ Double click
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam)
$i_idfrom = $iIDFrom ;~ ToDo: Global variable!
$i_index = DllStructGetData($tInfo, "Index") ;~ ToDo: Global variable!
$i_subitem = DllStructGetData($tInfo, "SubItem") ;~ ToDo: Global variable!
Return _GUICtrlListView_EditShow($hWndListView, $i_idfrom, $i_index, $i_subitem)
EndSwitch
EndIf
NextReturn $GUI_RUNDEFMSG
[/autoit]
EndFunc ;==>WM_NOTIFY -
Wenn es überhaupt geht (Ich glaube Windows nimmt sich immer soviel Virtual Memory aus dem verfügbarem Addressraum, wieviel ein Prozess gerade benötigt - somit hast Du da keine Veschwendung), dann suche in der MSDN. Eine solche Funktionalität ist mir aber gänzlich unbekannt.
Hier noch (allgemeine) Artikel zum Thema:
http://support.microsoft.com/?scid=kb%3Ben-us%3B555223&x=9&y=8
http://tech.yahoo.com/gd/understanding-virtual-memory/153006 -
Ähm... Ja, siehe meinen Post oben. Wenn Du z.B. INI-Einstellungen vor dem Neustart setzt und die jeweils bei Programmstart ausliest, so würde dies logischerweise greifen...
-
Hi,
ich habe mir auch mal eine solche Funktion geschrieben, allerdings nur für kompilierte Skripte. Bei mir lassen sich jedoch noch optionale Parameter und der ExitCode übergeben. Habe das Ganze mal mit Mega's "gemerged"! Hier ein Beispiel:
Spoiler anzeigen
[autoit]#include-once
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>Exit main()
[/autoit] [autoit][/autoit] [autoit]Func OnAutoItStart()
[/autoit] [autoit][/autoit] [autoit]
Opt("MustDeclareVars", 1)
EndFunc ;==>OnAutoItStartFunc main()
[/autoit] [autoit][/autoit] [autoit]
Local $i_count = 0, $i_w = 60, $h_btrestart = 0, $h_lblcount = 0
If $cmdline[0] Then $i_count = $cmdline[1]GUICreate("_AutoItRestart", $i_w, 40, -1, -1, $WS_POPUP)
[/autoit] [autoit][/autoit] [autoit]
$h_btrestart = GUICtrlCreateButton("&Restart", 0, 0, $i_w, 20)
$h_lblcount = GUICtrlCreateLabel($i_count, 0, 20, $i_w, 20)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Return 0
Case $h_btrestart
_AutoItRestart($i_count + 1)
EndSwitch
WEnd
EndFunc ;==>main;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
; Function Name.....: _AutoItRestart
; Description.......: Restarts an compiled or uncompiled AutoIt script.
; Version...........: 1.0.1
; Change Date.......: 2008-09-10
; AutoIt Version....: 3.2.12.1
;
; Parameter(s)......: $S_PARAM - [optional] String specifying parameter(s) for the script to run. (default = "")
; $I_EXIT - [optional] Integer specifying the return code of the script. (default = 0)
; Requirements(s)...: None
; Return Value(s)...: Failure: Returns 0 and sets @error to 1 if unable to run the script.
;
; Author(s).........: - Xenobiologist
; - teh_hahn
; Company...........: None
; URL...............: None
; Note(s)...........: None
;===============================================================================
Func _AutoItRestart(Const $S_PARAM = "", Const $I_CODE = 0)
Local $s_cmd = '"' & @ScriptFullPath & '"'
If StringLen($S_PARAM) Then $s_cmd &= " " & $S_PARAMIf @Compiled Then
[/autoit] [autoit][/autoit] [autoit]
Run($s_cmd)
Else
Run(@AutoItExe & " " & $s_cmd)
EndIf
If @error Then Return SetError(@error, 0, 0)Exit $I_CODE
[/autoit]
EndFunc ;==>_AutoItRestart
Beendet wird es mit "ESC"... -
Hi,
ich sehe das mal noch nicht als Bot-Versuch, sondern als allgemeine Frage an. Dein geposteter QUellcode ist in keinster Weise ausführbar, darauf solltest Du beim posten wirklich achten, der Compiler gibt dir genügend Informationen aus beim Erstellen!
Soll es so sein?Spoiler anzeigen
[autoit]#NoTrayIcon
[/autoit] [autoit][/autoit] [autoit]
Opt("MustDeclareVars", 1)Exit main()
[/autoit] [autoit][/autoit] [autoit]Func main()
[/autoit] [autoit][/autoit] [autoit]
Local Const $I_X = 104, $I_Y = 740, $V_COMPARE = 0xFCF7FB ;~ Optionale Konstanten.
Local Const $S_WINTITLE = "Unbenannt - Editor"
Local $v_color = 0Run("notepad.exe") ;~ Started Notepad.
[/autoit] [autoit][/autoit] [autoit]
WinWait($S_WINTITLE)Do
[/autoit] [autoit][/autoit] [autoit]
$v_color = PixelGetColor($I_X, $I_Y) ;~ Gibt die Pixelfarbe auf obigen Koordinaten zurück.
ConsoleWrite($v_color & @CRLF) ;~ Debug Ausgabe in SciTE-Konsole.
If $v_color = $V_COMPARE Then ControlSend($S_WINTITLE, "", "Edit1", "{SPACE}") ;~ Überprüft ob die Pixelfarbe identisch der gesuchten ist.
Sleep(50) ;~ Kleiner Sleep zur Prozessorauslastung
Until Not WinExists($S_WINTITLE)Return 0
[/autoit]
EndFunc ;==>mainEDIT: Was soll es denn werden, wenn es fertig ist? Das ist außerdem kein Projekt, sondern gehört eindeutig in Hilfe & Unterstützung!
-
Hi,
ich kann hier nur meinen (subjektiven) Eindruck posten:
Windows Vista halte ich momentan nur dann für sinnvoll, wenn Du Dir die Über-Highend-Maschine zulegst (zwecks DX10). Die Diskussion über x86 und x64 bei XP kann ich nicht ganz nachvollziehen. Die x64 Version von Windows XP ist doch laut der Build-Nummer eine modifizierte Windows Server 2003-Version (NT 5.1 oder so...) Ich selber benutze seit ca. einem Jahr XP x64 und hatte bisher noch keinerlei Probleme. Treiber sind von namhaften Herstellern mittlerweile überall her zu beziehen, es gibt extra x64-Seiten im Netz und so weiter. Also wenn Du nicht noch einen Uralt-Scanner hast (nur so als Beispiel), dann spricht eigentlich nichts gegen eine x64 Version. Auch die Argumente die x64-Version von Windows XP sei unsicherer als die x86-Version (die sich öfter im Netz finden) stimmen nicht, da wie gesagt die Grundlage eine ganz Andere ist.Im Endeffekt wirst Du bei 4GB RAM eh keinen Unterschied bemerken, ob Du nun x86 oder x64 benutzt. Also wenn Du Dir am wenigsten Streß machen willst (bzw. Geld sparen), dann nimm die Version, die Du bereits hast und belass es vorerst dabei. Wenn Du Dir allerdings 6-8GB RAM in Deinen Rechner knallst, dann steig auf x64 um (zwecks Speicherverwaltung). Wahrscheinlich wirst Du auch dann keinen großen Unterschied verspüren (gewisse Anwendungen ausgenommen).
EDIT: Achja, AutoIt x64 ist auch kein Problem - und falls Du doch eins findest, dann kompilier Deine Skripte halt x86. Die x64-Versionen sind eh alle nur halbherzig - die Hälfte aller Programme läuft im 32Bit Kontext.
-
Jawohl, jetzt funktioniert es. Das ist doch schon mal eine feine Sache!
Der_Doc, die Zeile, bei der der Kommentar entfernt werden muss, lautet korrekt:
Das aber nur zur Vervollständigung...Als Hilfedatei empfehle ich die englische Extended CHM Format der PHP-Hilfe, da diese immer auf aktuellstem Stand ist! Download-Möglichkeiten findet man hier. Für diejenigen, die es interessiert, wie das Ganze dann aussieht, habe ich in den Anhang mal einen Screenshot gepackt.
Was hat es denn mit der Datei phpfunctions.properties, die wohl auch in das "Properties"-Verzeichnis und der Datei php.api, die wohl in das "api"-Verzeichnis des SciTE soll auf sich? Die erstere scheint eine veraltete Version der php.properties zu sein. Und die php.api wird wohl zur Code-Vervollständigung genutzt. Stellt sich nur noch die Frage der Einbindung.
Unten in der php.properties findet sich auch folgendes, was interessant sein könnte:
Code# Read the default api api.$(file.patterns.php)=$(SciteDefaultHome)\php.api if PLAT_WIN command.go.$(file.patterns.php)="file://$(FilePath)" command.go.subsystem.$(file.patterns.php)=2 command.go.$(file.patterns.php)=c:\windows\php\php -f $(FileNameExt)
Die erste Zeile habe ich auf:
geändert und in der letzten Zeile soll man wohl den Pfad zur php.exe angeben.Werde evtl. morgen noch einmal weiter schauen...
-
Ich habe ja extra den Original-SciTE genommen, da ist diese Zeile bereits auskommentiert. Dateien habe ich auch alle! Naja, vielleicht findet sich ja noch etwas dazu!
-
Hi, ich habe es auch eben einmal ausprobiert (allerdings nicht lange!) und bekomme es auch nicht hin! Die extended CHM befindet sich im SciTE Verzeichnis. sämtliche zusätzliche PHP-Dateien von SciTE ebenfalls und die Konfiguration habe ich auch geändert. Tut nicht, wenn es jemand zum Laufen bekommt, bitte hier posten!
-
Nicht wirklich, aber Du kannst einen Pseudo-Thread erstellen, siehe dazu:
[autoit]AdlibEnable()
[/autoit] -
Zitat
Das wäre zu einfach für teh_hahn
Zuviel der Ehre, aber... AUA, was muss ich da lesen:Zitat(?s) . matches anything including newline. (by default "." don't match newline)
*heul* So was passiert aber auch immer wieder!Ich habe es jetzt folgendermaßen:
[autoit]Local Const $S_HTML = '[Was auch immer]:</div></td>' & @LF & @TAB & @TAB & _
[/autoit]
'<td valign="top" [Auch variable]>' & @LF & @TAB & @TAB & @TAB & @TAB & @TAB & @TAB & _
'[Dies hier möchte ich haben!]' & @LF & @LF & @TAB & '</td>' & @LF & @TAB & @TAB & '</tr>' & @TAB & @LF
Local $AS_RET = StringRegExp($S_HTML, '(?i)(?s):</div></td>(.+?)</tr>', 3)
For $i = 0 To UBound($AS_RET) - 1
$AS_RET[$i] = StringRegExpReplace($AS_RET[$i], "<(.|\n)*?>", "")
$AS_RET[$i] = StringStripWS($AS_RET[$i], 7)
Next
_ArrayDisplay($AS_RET)
Das ließe sich mit Sicherheit auch mit einem RegExp machen, aber genügt so (wird nur unnötig kompliziert, da nach ":</div></td>" noch ein "<td..." mit variablen Daten komme kann und die Whitespaces ebenfalls variabel sind. Deshalb HTML-Tags Whitespaces entfernen und schon ist das Ergebnis so wie ich möchte. -
Hallo zusammen,
ich hab mal wieder ein Problem mit einem regulären Ausdruck:
[autoit]#include <Array.au3>
[/autoit]
Local $s_check = '<td width="73"">Der Text:</div></td>' & @LF & @TAB & @TAB & _
'<td valign="top">' & @LF & @TAB & @TAB & @TAB & @TAB & @TAB & @TAB & _
' Dies hier möchte ich haben! ' & @LF & @LF & @TAB & '</td>' & @LF & @TAB & @TAB & '</tr>' & @TAB & @LF
Local $AS_RET = StringRegExp($s_check, '(?i):</div></td>(.*?)</tr>', 3)
MsgBox(64, "Error", @error)
_ArrayDisplay($AS_RET)
[autoit]
Ich meine auch mal gelesen zu haben, dass der Punkt (.) nicht Linefeeds berücksichtigt, wenn ich also das Ganze mitStringReplace($s_check, @LF, "")
[/autoit]ersetze, bekomme ich es auch hin. Wie muss ich denn "\n" für Linefeed in das Pattern einbauen?! Die Group frisst das irgendwie nicht...
-
-
Sauber Leute... Vielen Dank für die Hilfe!