Beiträge von i2c
-
-
Ich konnte den Link mit angehängtem Service-Tag manuell aufrufen und mir wurde die korrekte Supportseite (Latitude25irgendwas) ausgegeben. Ich konnte das selbe Ergebnis mit dem selben Servicce-Tag mit dem von dir geposteten Skript erzielen. Alina bestätigt die korrekte Funktionsweise ebenfalls.
Ich denk jetzt mal in eine andere Richtung .... in deinem Standardbrowser ist nicht zufällig ein Keks von Dell hinterlegt, der unter umständen einen anderen Service-Tag beinhaltet und den Aufruf stört?
-
[autoit]
StringFormat('%0.2d', @mday-1)
[/autoit]
Aufpassen mit dem 1ten des Monats. -
Schonmal daran gedacht, das es nicht am Skript sondern vlt. am Server liegt?

Edit: Bevor gefragt wird ... es gibt diverse Direktiven, mit denen man Request auf bestimmte Dateiendungen abweisen kann. Als kleines Sicherheitsfeature bietet sich so etwas an, wenn man explizit den Zugriff auf .ini Dateien verbieten möchte. Man möchte ja nicht immer, das jeder in x-beliebige Konfigurationsdateien schauen kann ;).
Solche DIrektiven lassen sich auch negieren. Das hat den Vorteil, das man explizit nur die Dateierweiterungen zulassen muss, die man auch wirklich nutzt und alle unbekannten (unerwünschten) damit natürlich automatisch gesperrt sind.
Ist dein Server also so konfiguriert, das Zugriffe zum Beispiel nur auf .txt, .htm, .html, .jpeg, .bmp, .png als bekannte Dateitypen zugelassen sind, fallen alle anderen weg. Unter anderem auch .ini und .rvdata.
Google -> ".htaccess FilesMatch"
-
Das Problem versteh ich dennoch nicht. Auch aus dem Skript heraus wird der Link korrekt aufgerufen .
-
Ich hab keinen Dell aber wenn ich http://support.dell.com/support/topics…vicetag=5RFDP01 aufrufe, dann lande ich auf der Supportseite für das passende Produkt.
Kannst du mehr von deinem Skript zeigen? Wie ermittelst du den Service-Tag? Hast du ihn schonmal ausgegeben um zu sehen, ob er korrekt ermittelt wird?
-
Profil bearbeiten -> Einstellungen ->Kommunikation
"Thema bei Antwort automatisch abonnieren" und "E-Mail-Benachrichtigung bei neuem Beitrag in Abonnements" markieren.
-
Spoiler anzeigen
[autoit]#include <GuiListView.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>Global Const $ODT_LISTVIEW = 102
[/autoit] [autoit][/autoit] [autoit]
Global Const $ODA_DRAWENTIRE = 0x1
Global Const $ODS_SELECTED = 0x0001GUICreate("", 500, 500)
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_MEASUREITEM, "WM_MEASUREITEM")
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_DRAWITEM, "WM_DRAWITEM")$hListview = GUICtrlCreateListView("Spalte 1", 5, 5, 490, 490,BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS, $LVS_OWNERDRAWFIXED))
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateListViewItem("Zeile 1 Ausgabe ==> OK", $hListview)
GUICtrlCreateListViewItem("Zeile 2 Ausgabe ==> OK", $hListview)
GUICtrlCreateListViewItem("Zeile 3 Ausgabe ==> OK", $hListview)
GUICtrlSendMsg($hListview, $LVM_SETCOLUMNWIDTH, 0, $LVSCW_AUTOSIZE_USEHEADER)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
$Msg = GUIGetMsg()
Select
Case $Msg = -3
Exit
EndSelect
WEndFunc WM_MEASUREITEM($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
Local $tMEASUREITEMS = DllStructCreate("uint cType;uint cID;uint itmID;uint itmW;uint itmH;ulong_ptr itmData", $lParam)
If DllStructGetData($tMEASUREITEMS, "cType") <> $ODT_LISTVIEW Then Return $GUI_RUNDEFMSG
DllStructSetData($tMEASUREITEMS, "itmH", 30)
Return 1
EndFunc ;==>WM_MEASUREITEMFunc WM_DRAWITEM($hWnd, $Msg, $wParam, $lParam)
[/autoit]
Local $tagDRAWITEMSTRUCT, $iBrushColor, $cID, $itmID, $itmAction, $itmState, $hItm, $hDC, $bSelected
$tagDRAWITEMSTRUCT = DllStructCreate( _
"uint cType;" & _
"uint cID;" & _
"uint itmID;" & _
"uint itmAction;" & _
"uint itmState;" & _
"hwnd hItm;" & _
"handle hDC;" & _
"long itmRect[4];" & _
"ulong_ptr itmData" _
, $lParam)
If DllStructGetData($tagDRAWITEMSTRUCT, "cType") <> $ODT_LISTVIEW Then Return $GUI_RUNDEFMSG
$cID = DllStructGetData($tagDRAWITEMSTRUCT, "cID")
$itmID = DllStructGetData($tagDRAWITEMSTRUCT, "itmID")
$itmAction = DllStructGetData($tagDRAWITEMSTRUCT, "itmAction")
$itmState = DllStructGetData($tagDRAWITEMSTRUCT, "itmState")
$hItm = DllStructGetData($tagDRAWITEMSTRUCT, "hItm")
$hDC = DllStructGetData($tagDRAWITEMSTRUCT, "hDC")
$bSelected = BitAND($itmState, $ODS_SELECTED)
Switch $cID ; will look for ControlID, not window handle.
Case $hListview
Switch $itmAction
Case $ODA_DRAWENTIRE
For $i = 0 To _GUICtrlListView_GetColumnCount($hListview) - 1
Local $iSubItmText = _GUICtrlListView_GetItemText($hListview, $itmID, $i)
Local $aSubItmRect = _GUICtrlListView_GetSubItemRect($hListview, $itmID, $i)
Local $iSubItmRect = DllStructCreate("long[4]")
DllStructSetData($iSubItmRect, 1, $aSubItmRect[0], 1)
DllStructSetData($iSubItmRect, 1, $aSubItmRect[1], 2)
DllStructSetData($iSubItmRect, 1, $aSubItmRect[2], 3)
DllStructSetData($iSubItmRect, 1, $aSubItmRect[3], 4)
DllCall("user32.dll", "int", "DrawTextW", "hwnd", $hDC, "wstr", $iSubItmText, "int", StringLen($iSubItmText), _
"ptr", DllStructGetPtr($iSubItmRect), "int", $DT_LEFT)
Next
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_DRAWITEMIn Zeile 34 passt du die Zeilenhöhe an.
-
http://msdn.microsoft.com/en-us/library/…5(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/…4(v=vs.85).aspxSpoiler anzeigen
[autoit]Global Const $ODT_LISTVIEW = 102
[/autoit] [autoit][/autoit] [autoit]GUICreate("", 700, 300, 100, 100)
[/autoit] [autoit][/autoit] [autoit]
.
.
.
GUIRegisterMsg($WM_MEASUREITEM, "WM_MEASUREITEM")$list = GUICtrlCreateList("", 380,50, 300, 100)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetData($list,"Zeile 1 Ausgabe ==> OK")
GUICtrlSetData($list,"Zeile 2 Ausgabe ==> OK")
GUICtrlSetData($list,"Zeile 3 Ausgabe ==> OK")
GUICtrlSetFont($list, 9, 600, 0, "MS Sans Serif")
.
.
.
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Select
Case $msg = $button
Exit
EndSelect
WEndFunc WM_MEASUREITEM($hWnd, $Msg, $wParam, $lParam)
[/autoit]
Local $tMEASUREITEMS = DllStructCreate("uint cType;uint cID;uint itmID;uint itmW;uint itmH;ulong_ptr itmData", $lParam)
If DllStructGetData($tMEASUREITEMS, "cType") <> $ODT_LISTVIEW Then Return $GUI_RUNDEFMSG
DllStructSetData($tMEASUREITEMS, "itmH", 10)
Return 1
EndFuncIch hab grad kein AutoIt da

-
Das geht dann schon etwas weit in Richtung Spammbot, findest du nicht? Einen anderen Nutzen im versenden von Chatnachrichten im Hintergrund kann ich beim besten Willen nicht erkennen.
Das solltest du dir meiner bescheidenen Meinung nach selbst erarbeiten.
-
Und als kleine Randbemerkung - den a tag der aktuellen Seite in der Navi entfernen bzw. durch ein strong ersetzen. Links sollten nie auf sich selbst zeigen

-
-
Nicht so böse gemeint wie es evtl. ausieht.....http://deutsch.lingo4u.de/grammatik/satzbau
Die passenden Tutorials zum Thema AutoIt findest du im Portal.
-
Jetzt, wo du etwas Übung im Öffnen und Reinigen von Computerperipherie hast, wird es eventuell mal Zeit auch deine Tastatur zu reinigen. Einige Tasten scheinen nicht richtig zu funktionieren. Das Problem wird offensichtlich von Beitrag zu Beitrag gravierender.
Bevor man dich also gar nicht mehr versteht ....
-
Zitat
steht bei $aCustomers[i$][1] die 1 für den ersten Kunden?
könnte ich mir bei diesem Array jetzt auch zb nur die Eine Nummer vom Kunden und dann Extra den Kunden dazu ausgeben, falls ich anders mit der Variable arbeiten möchte?$aCustomers[$i][1] ist die zweite Dimension des Array $aCustomers. In ihr befindet sich ein weiteres Array, das die einzelnen Pfade des Kunden hält. Schau dir mal den Output in der Konsole an. Ich hab das Gefühl, du kannst dir den AUfbau dieses Array nicht wirklich vorstellen.
Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <String.au3>$sXML = '<video>' & @CRLF & _
[/autoit] [autoit][/autoit] [autoit]
'<Kunde>Klaus</kunde>' & @CRLF & _
'<Objektnummer>12345</Objektnummer>' & @CRLF & _
'<Objektnummer>54815</Objektnummer>' & @CRLF & _
'</video>' & @CRLF & _
'<video>' & @CRLF & _
'<Kunde>Fritz</kunde>' & @CRLF & _
'<Objektnummer>5677879</Objektnummer>' & @CRLF & _
'</video>' & @CRLF & _
'<video>' & @CRLF & _
'<Kunde>Heinz</kunde>' & @CRLF & _
'<Objektnummer>43567</Objektnummer>' & @CRLF & _
'<Objektnummer>87234</Objektnummer>' & @CRLF & _
'</video>' & @CRLF & _
'<video>' & @CRLF & _
'<Kunde>Peter</kunde>' & @CRLF & _
'<Objektnummer>45678</Objektnummer>' & @CRLF & _
'</video>'$aResult = StringRegExp($sXML, "<video>(?s)(.*?)</video>", 3, 1)
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($aResult)Dim $aCustomers[1][2]
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($aResult) - 1
[/autoit]
Dim $aCustomer[1]
Dim $aPaths[1]
$aCustomer = _StringBetween($aResult[$i], "<kunde>", "</kunde>")
ReDim $aCustomers[UBound($aCustomers) + 1][2]
$aCustomers[UBound($aCustomers) - 1][0] = $aCustomer[0]
$aObjects = _StringBetween($aResult[$i], "<Objektnummer>", "</Objektnummer>")
_ArrayConcatenate($aCustomer, $aObjects)
;_ArrayDisplay($aCustomer)
For $j = 1 To UBound($aCustomer) - 1
_ArrayAdd($aPaths, "/" & $aCustomer[0] & "/" & $aCustomer[$j])
Next
;_ArrayDisplay($aPaths)
$aCustomers[UBound($aCustomers) - 1][1] = $aPaths
Next
$outputMessage = ""
For $i = 1 To UBound($aCustomers) - 1
$aTmp = $aCustomers[$i][1]
$outputMessage &= @CRLF & "[" & $i & "][0] -> " & $aCustomers[$i][0] & @CRLF
$outputMessage &= "[" & $i & "][1] -> [0]" & @CRLF
For $j = 1 To UBound($aTmp) - 1
$outputMessage &= @TAB & "-> [" & $j & '] ' & $aTmp[$j] & @CRLF
Next
Next
ConsoleWrite($outputMessage & @LF)
Damit sollte auch klar werden, warum es zwei inneinander verschachtelte For-Schleifen sind. Die äussere durchläuft die erste Dimension von $aCustomers, die innere holt die dazugehörigen Informationen aus der 2ten Dimension.Zugreifen kannst du hier natürlich auch auf einzelne Kunden per _ArraySearch(). Die Kundennamen stehen ja gerade deshalb in der ersten Dimension von $aCustomers. Hast du den Kunden in der ersten DImension gefunden, kannst du an diesem Index natürlich auch die zweite Dimension durchsuchen, um eine bestimmte Nummer bzw. einen bestimmten Pfad zu finden.
Zitatmüsste ich bei "1 to UBound($aCustomers) - 1" nicht eigentlich hochzählen? Ich sage ihm doch das er von 1 bis "Größe des Arrays" zb 10 hochzählen soll aber das -1 würde ihn doch gleich am anfang von 1 auf 0 setzen oder?
$i = 1 To Ubound(...) -1 zählt hoch. Die Zählrichtung und die grösse dr Schritte würde man mit dem "Step" Schlüsselwort bestimmen. Dazu schaust du dir bitte die Hilfe zu For-Schleifen an. UBound() ermittelt die Anzahl der Elemente in einem Array. Da der Index eines Arrays aber bei null beginnt, müssen wir von der Anzahl an Elementen eins abziehen um den Index des letzen Elements zu erhalten. Dazu bitte mal im Array-Tutorial von BugFix nachlesen: http://www.bug-fix.info/array_tut.htm
Ich hoffe das dir das in irgendeiner Wese hilft. Mein Erklärbärmodus läuft momentan etwas instabil.
-
Spoiler anzeigen
[autoit]#include <array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <String.au3>$sXML = '<video>' & @CRLF & _
[/autoit] [autoit][/autoit] [autoit]
'<Kunde>Klaus</kunde>' & @CRLF & _
'<Objektnummer>12345</Objektnummer>' & @CRLF & _
'<Objektnummer>54815</Objektnummer>' & @CRLF & _
'</video>' & @CRLF & _
'<video>' & @CRLF & _
'<Kunde>Fritz</kunde>' & @CRLF & _
'<Objektnummer>5677879</Objektnummer>' & @CRLF & _
'</video>' & @CRLF & _
'<video>' & @CRLF & _
'<Kunde>Heinz</kunde>' & @CRLF & _
'<Objektnummer>43567</Objektnummer>' & @CRLF & _
'<Objektnummer>87234</Objektnummer>' & @CRLF & _
'</video>' & @CRLF & _
'<video>' & @CRLF & _
'<Kunde>Peter</kunde>' & @CRLF & _
'<Objektnummer>45678</Objektnummer>' & @CRLF & _
'</video>'$aResult = StringRegExp($sXML, "<video>(?s)(.*?)</video>", 3, 1)
[/autoit] [autoit][/autoit] [autoit]
;_ArrayDisplay($aResult)Dim $aCustomers[1][2]
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($aResult) - 1
[/autoit] [autoit][/autoit] [autoit]
Dim $aCustomer[1]
Dim $aPaths[1]
$aCustomer = _StringBetween($aResult[$i], "<kunde>", "</kunde>")
ReDim $aCustomers[UBound($aCustomers) + 1][2]
$aCustomers[UBound($aCustomers) - 1][0] = $aCustomer[0]
$aObjects = _StringBetween($aResult[$i], "<Objektnummer>", "</Objektnummer>")
_ArrayConcatenate($aCustomer, $aObjects)
;_ArrayDisplay($aCustomer)
For $j = 1 To UBound($aCustomer) - 1
_ArrayAdd($aPaths, "/" & $aCustomer[0] & "/" & $aCustomer[$j])
Next
;_ArrayDisplay($aPaths)
$aCustomers[UBound($aCustomers) - 1][1] = $aPaths
NextFor $i = 1 To UBound($aCustomers) - 1 ;durchläuft das Array von Index 1 bis Ende
[/autoit] [autoit][/autoit] [autoit][/autoit]
$aTmp = $aCustomers[$i][1] ;schreibt das Array aus der Zweiten Dimension (Pfade des Kunden) am aktuellen Index in ein temporäres Array
For $j = 1 To UBound($aTmp) - 1 ;durchläuft das temporäre Array von Index 1 bis Ende
MsgBox(0, "", "Mach was mit " & $aTmp[$j]) ;Zugriff auf die einzelnen Pfade des Kunden
Next
Next -
Zitat
Ich hab auch schon geschafft den Tree über ein Array auszulesen und dann in eine DB zu
schreiben.
Wenn du uns nicht zeigst, wie du die Daten speicherst, wie sollen wir dir dann sagen wie du sie wieder auskesen kannst?Datenbanktyp .... Datenbankstruktur ... irgendwelche Query???????
-
Wenn ich jetzt erwähne, das PainTain diesen 4 Minuten vorher erstellten Post von water evtl. nicht gelesen hat, können wir das Thema damit beenden oder pushen wir diesen Uralt-Thread noch ein paar mal mit sinnlosen Beiträgen hoch?
-
Wollte er nicht. Sollte vielmehr als Quellenangabe dienen.
Mir war ehrlich gesagt nicht bewusst, das überhaupt mal eine AutoIt Version kompatibel zu Windows Version vor 2000 war. Jetzt weiss ich's

-
Zitat
AutoIt has been designed to work on Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8. With no annoying runtime libraries required
-
Ich versteh nicht ganz, was du da miteinander vergleichen willst.
Lagere den Teil des Codes, der deine Listview füllt in eine Funktion aus und ruf diese Funktion jedes Mal auf, nachdem über das GUI ein neuer Eintrag angelegt wurde. Dann ist die ListView immer aktuell.Ausserdem würde ich dazu übergehen, den Seitennamen als Sektionsnamen in der ini zu verwenden. IniReadSectionNames() .... IniReadSection() ....