Prüfe "CtlType" auf "ODT_LISTVIEW". Allerdings beinhaltet die Struktur kein Handle des Listview, dort wird explizit auf die Item referenziert. Kannst ja aber mal über die Rect probieren, ob das Item innerhalb deines Listview liegt.
Beiträge von BugFix
-
-
So wie es aussieht kann das Dictionary keine handles speichern?
Das stimmt. Die einzige Schwäche des Dictionary Objektes.
Aber warum willst du kein Array verwenden? Ich sehe hier eigentlich keine besonderen Vorteile beim Einsatz des Dictionary.
-
Ordner und Unterordner mit und ohne Dateien
[autoit]
Da steht schon wonach du suchen mußt: Ordner.
DirRemove
[/autoit] -
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. -
Alle noch offenen Dateien wurden mindestens 50-mal herunztergeladen. Also versuchen sich derzeit > 50 Personen an der Übersetzung?
Wäre ungern Nr. 51 um dann feststellen zu müssen, dass 5 min vor mir die Übersetzung gepostet wurde.Vielleicht wär es sinnvoll, dass eine Datei, wenn sie von jemandem heruntergeladen wird, als in Bearbeitung markiert wird.
-
Ich würde die Kamera im SW-Modus nutzen.
- Such einen Bereich der gleichmäßig gefärbt ist und an dem ein "Eindringling" sichtbar vorbei muß, z.B. Türrahmen
- Referenziere eine feste Anzahl von Pixeln, die real auf dem Hintergrund etwa 10 cm Abstand voneinander haben (bei 2 m Türhöhe ca. 20 Punkte)
- Ob es sehr hell ist oder Dämmerung herrscht spielt dabei keine Rolle (vorausgesetzt, einzelne Bereiche dieses Hintergrundes werden nicht durch Sonneneinstrahlung od. Laternenlicht unterschiedlich ausgeleuchtet):
- - Der oberste Pixel (der nicht verdeckt werden kann) ist Referenzwert für den Check der anderen
- - Gegen disen Wert prüfst du die anderen Pixel, gib einfach eine Varianz mit an, leichte Abweichungen wirst du immer haben
- - Weist einer der Pixel einen deutlich anderen Wert auf, tritt der Alarmfall ein
- Durch die relativ geringe Anzahl der Prüfpunkte, kannst du in hohen Intervallen prüfen. An einer Tür vorbeizugehen braucht sicher nicht mehr als 0,1 s -- also wäre wohl ein Prüfintervall von 50 ms sinnvoll. -
Schau dir einfach mal die Software an, die bei der Webcam dabei ist. Bis jetzt hatte ich mit jeder Webcam auch Software, die Raumüberwachung beinhaltet.
Du stellst einen Bewegungstrigger ein, wird dieser aktiviert, startet die Aufzeichnung. Diesen startenden Prozess zu überwachen sollte kein Problem sein. Aber dir eine SMS zusenden? Alle mir bekannten Web-SMS Anbieter untersagen ausdrücklich einen automatisierten Zugriff auf diese Anwendung. - Schick dir also lieber eine eMail, das geht problemlos (und kann ja auch auf jedem gut konfigurierten Smartphone empfangen werden). -
Hattest du denn auch die Variante mit dem 2D-Array geprüft?
[autoit]If $aSQLQueryErgebnis[0][0] = "" Then ; oder
[/autoit]
If $aSQLQueryErgebnis[0][0] = 0 Then -
Ob die Syntax richtig ist, kann ich nicht sagen. Ich arbeite mit Firebird, da ist es zum Bsp. unnötig "left join" explizit anzugeben, weil das die Standardabfrage ist. Wobei, wenn man es angibt, sollte man eigentlich "inner/outer" mit ergänzen? Aber das kann auch syntaxspezifisch in den Dialekten variieren.
Wo findest du Infos: Googeln nach "MSDN MySQL SUCHBEGRIFF"
-
Nein, nicht das Query selbst hat den Zähler
- erst nach der Umwandlung in ein Array (.GetRows) steht der zur Verfügung.
Also auf $aSQLQueryErgebnis anwenden. -
Leider greift hier Zeile 4 bis 6 nicht.
Das ist auch korrekt. Es wird in jedem Fall ein Array zurückgeliefert - nur eben ohne Inhalt. Ich arbeite zwar nicht mit MS SQL, aber grundsätzlich ist das Verfahren wohl ähnlich. Dieses Problem existiert wenn ich mich recht erinnere, genau so in SQLite. Um auf Inhalt zu prüfen verwende den Zähler ( .Count oder .RowsCount ? ). -
Soll ich die Variable erst deklarieren, wenn ich Sie erstelle ?
Du kannst doch den Button schon im Voraus erstellen, zeigst ihn eben erst an, wenn er sichtbar sein soll. -
Das ist ein individuelles Control der Firma Vantive Corporation (jetzt Oracle). Also hast du da irgendeine Software für Kundendienst/Qualitätssicherung.
Individuelle Klassen verhalten sich leider nicht immer, wie M$-Klassen und somit geht es dann mit den Control-Funktionen in die Hose. -
Das ist doch nur Mathematik.
[autoit]
Hier ein einfaches Bsp.:Global $GUI, $aInput[2] = [1], $btAdd
[/autoit][autoit][/autoit][autoit]$GUI = GUICreate('Test', 400, 50)
[/autoit][autoit][/autoit][autoit]
$aInput[1] = GUICtrlCreateInput('', 10, 10, 300, 21)
GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
$btAdd = GUICtrlCreateButton('Add Input', 320, 10, 70, 21)
GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
GUISetState()While 1
[/autoit][autoit][/autoit][autoit]
Switch GUIGetMsg()
Case -3
Exit
Case $btAdd
_NewCtrl()
EndSwitch
WEndFunc _NewCtrl()
[/autoit]
Local $iDiff = 31 ; == Abstand + Höhe ==> 10 + 21
Local Static $iY = 10 ; == Startwert vom ersten Ctrl
$iY += $iDiff
$aInput[0] += 1
ReDim $aInput[$aInput[0]+1]
Local $aWin = WinGetPos($GUI)
WinMove($GUI, '', $aWin[0], $aWin[1], $aWin[2], $aWin[3] + 31)
$aInput[$aInput[0]] = GUICtrlCreateInput('', 10, $iY, 300, 21)
GUICtrlSetResizing(-1, 802) ; $GUI_DOCKALL
EndFunc -
Einmal googeln "excel vba prüfen ob spalte versteckt" bringt dir die Lösung:
[autoit];If $oSheet.Columns.Hidden = False Then
[/autoit]
For $i = 0 To $iColumns - 1
$oCell = $oSheet.Range("A1").Offset(0, $i)
If $oCell.EntireColumn.Hidden = True Then ContinueLoop ; <=== VERSUCHS MAL DAMIT
; ...
; ... -
Das läßt sich nicht in drei Worten sagen.
Ich empfehle dir dich problembezogen mit den einzelnen Objekten vertraut zu machen. Dann kannst du selbst Gemeinsamkeiten und Unterschiede ausmachen.
Tief im Inneren gehört doch alles zusammen, oder?
-
zu 1.) Hochkomma und Gänsefüßchen gelten als gleichberechtigte Zeichen zum Markieren von Strings
zu 2.) "$Variable[0]" und "Ubound($Variable)-1" sind nicht immer identisch. Ich habe in meinem Tut beschrieben, dass einige Funktionen an Arrayposition[0] die Anzahl der Elemente hinterlegen. Das ist dann aber auf die jeweilige Funktion beschränkt. Das jungfräuliche Array ist auch an [0] zur Aufnahme eines jeden beliebigen Wertes bereit.
zu 3.)
If Not StringInStr($sList, $aFileList[$maxIndex]) Then $sList &= $aFileList[$maxIndex] & ' '
• Wenn im String($sList) nicht enthalten: der Wert aus dem Array($aFileList) an der Indexposition($maxIndex)
• Dann füge dem String($sList) diesen Wert aus dem Array($aFileList) hinzu
zu 4.) Nein, gibt es nicht. Aber was gibt es da zu schreiben? Cursor auf die Variable, "Alt+D" drücken und die Debugzeile steht im Skript....
-
#1: Weil Daten an die Dll-Aufrufe übergeben werden müssen - und diese erfordern eine ganz bestimmte Struktur. Ausserdem sind in der Struktur die jeweils aktuellen Werte des Tab beim Empfang der Message gespeichert.
#2: Die Abfragen dienen dazu, dass bei einem bestimmten Typ bzw. einer bestimmten Aktion die Funktion verlassen werden soll. Damit die Windows-übliche Weiterverarbeitung der Message gewährleistet ist, wird dazu "$GUI_RUNDEFMSG" zurückgegeben.
Edit: Übrigens kann man auch einen farbigen Hintergrund simulieren, indem man Child-Windows über das Tab-Ctrl legt, sodass nur die Tab-Reiter hervorgucken. Alle Ctrl werden dann auf den Childs platziert und verwaltet, das Tab-Ctrl dient nur zum Umschalten. Allerdings kann man dann auch gleich die Reiter durch Button ersetzen und spart sich das Tab komplett.

-
Ich nehme mal an, du hast dich verschrieben, denn der String heißt nicht "Hallo"
[autoit]
Einfach wieder zurück wandeln mit BinaryToString:Local $s = "Hallo"
[/autoit]
Local $bin = StringToBinary($s)
ConsoleWrite($bin & @LF)
; ==> 0x48616C6C6F
ConsoleWrite(BinaryToString($bin) & @LF)
; ==> Hallo -
Hast du denn den Vorschlag von Schnitzel ausgeführt und den String mit IsBinary() getestet?