Geht das Listview mit Combobox?
es geht siehe: https://autoit.de/index.php?page…95043#post95043
mfg autoBert
Geht das Listview mit Combobox?
es geht siehe: https://autoit.de/index.php?page…95043#post95043
mfg autoBert
Da aber nicht alle PCs von uns Adminrechte
Bringst du da nicht etwas durcheinander? Ein PC ist kein Benutzer.
Wenn du am Anfang des Programmes #RequireAdmin sezt, verlangt das Programm automatisch nach.
mfg autoBert
Ist zwar schon gelöst, mein Lösungsvorschlag über WM_Notify:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
Global $sHeader = "Produkt|Gebote|Preis|Restzeit|Name" ; Die Überschriften für das Listview und für das "Neuer Eintrag"-Fenster
Global $sDBFile = @ScriptDir & "\datenbank.txt" ; Pfad und Name der Datenbank-Datei
Global $iEdit = -1 ; Wert auf -1 setzen, weil _GUICtrlListView_GetSelectionMark() einen Nullbasierten Wert liefert
#region Hauptfenster
Global $hGui = GUICreate("Listview-Datenbank-Beispiel", 600, 480) ; Hauptfenster erstellen
GUISetBkColor(0xCCCCCC)
Global $hListView = GUICtrlCreateListView($sHeader, 0, 0, 600, 400, $LVS_SHOWSELALWAYS) ; Listview erstellen
[/autoit] [autoit][/autoit] [autoit]Global $hLVHandle = GUICtrlGetHandle($hListView) ; das Handle vom Listview wird für die UDF-Listview-Funktionen benötigt
_GUICtrlListView_SetColumn($hLVHandle, 0, "Produkt", 120, 0) ; 1. Spalte = 120 Px breit, rechts ausgerichtet
_GUICtrlListView_SetColumn($hLVHandle, 1, "Gebote", 60, 0) ; 2. Spalte = 60 Px breit, links ausgerichtet
_GUICtrlListView_SetColumn($hLVHandle, 2, "Preis", 90, 0) ; 3. Spalte = 90 Px breit, links ausgerichtet
_GUICtrlListView_SetColumn($hLVHandle, 3, "Restzeit", 100, 0) ; 4. Spalte = 100 Px breit, links ausgerichtet
_GUICtrlListView_SetColumn($hLVHandle, 4, "Name", 120, 0) ; 5. Spalte = 120 Px breit, links ausgerichtet
Global $hSearchListView = GUICtrlCreateListView($sHeader, 0, 0, 600, 400, $LVS_SHOWSELALWAYS) ; Listview für die Suche erstellen
GUICtrlSetState(-1, $GUI_HIDE)
Global $hSearchLVHandle = GUICtrlGetHandle($hSearchListView) ; das Handle vom Listview wird für die UDF-Listview-Funktionen benötigt
_GUICtrlListView_SetColumn($hSearchLVHandle, 0, "Produkt", 120, 0) ; 1. Spalte = 120 Px breit, rechts ausgerichtet
_GUICtrlListView_SetColumn($hSearchLVHandle, 1, "Gebote", 60, 0) ; 2. Spalte = 60 Px breit, links ausgerichtet
_GUICtrlListView_SetColumn($hSearchLVHandle, 2, "Preis", 90, 0) ; 3. Spalte = 90 Px breit, links ausgerichtet
_GUICtrlListView_SetColumn($hSearchLVHandle, 3, "Restzeit", 100, 0) ; 4. Spalte = 100 Px breit, links ausgerichtet
_GUICtrlListView_SetColumn($hSearchLVHandle, 4, "Name", 120, 0) ; 5. Spalte = 120 Px breit, links ausgerichtet
GUICtrlCreateLabel("Suchbegriff:", 10, 412, 90, 20)
GUICtrlSetFont(-1, 11)
Global $hSearch = GUICtrlCreateInput("", 100, 410, 390, 20)
GUICtrlSetFont(-1, 11)
Global $hSearchStart = GUICtrlCreateButton("Suche...", 500, 410, 60, 20, $BS_DEFPUSHBUTTON) ; Dieser Button ist der Default-Push-Button (wenn der User [Enter] drückt)
GUICtrlSetFont(-1, 9)
Global $hSearchReset = GUICtrlCreateButton("<-", 562, 410, 28, 20)
GUICtrlSetFont(-1, 8, 600, 0, "Verdana")
GUICtrlSetState(-1, $GUI_DISABLE)
Global $hNew = GUICtrlCreateButton("Neuer Eintrag", 5, 440, 80, 35)
Global $hEdit = GUICtrlCreateButton("Markierten Eintrag bearbeiten", 95, 440, 110, 35, $BS_MULTILINE) ; $BS_Multiline für mehrzeiligen Button
Global $hLoad = GUICtrlCreateButton("Laden", 230, 440, 70, 35)
Global $hSave = GUICtrlCreateButton("Speichern", 310, 440, 70, 35)
Global $hDel = GUICtrlCreateButton("Markierte Einträge löschen", 400, 440, 90, 35, $BS_MULTILINE)
Global $hDelAll = GUICtrlCreateButton("Alle Einträge löschen", 500, 440, 90, 35, $BS_MULTILINE)
Global $hCM = GUICtrlCreateContextMenu($hListView) ; ein Kontextmenü für das Listview erstellen
Global $hCMNew = GUICtrlCreateMenuItem("Neuer Eintrag", $hCM) ; der 1. Kontextmenüeintrag
Global $hCMEdit = GUICtrlCreateMenuItem("Eintrag bearbeiten", $hCM) ; der 2. Kontextmenüeintrag
Global $hCMDel = GUICtrlCreateMenuItem("Markierte Einträge löschen", $hCM) ; der 3. Kontextmenüeintrag
#endregion Hauptfenster
#region Fenster für neuen Eintrag
Global $hGuiNew = GUICreate("Neuer Eintrag", 632, 140, -1, -1, $WS_SYSMENU) ; das Fenster "Neuer Eintrag" erstellen
Global $aHeader = StringSplit($sHeader, '|') ; Überschriften-Array
Global $aNew[$aHeader[0]] ; Array für die Input-IDs
For $i = 1 To $aHeader[0]
GUICtrlCreateLabel($aHeader[$i], 4 + ($i - 1) * 125, 15, 110, 20) ; Überschriften-Label erstellen
GUICtrlSetFont(-1, 8, 400, 0, 'Verdana') ; Schriftgröße und -art der Überschriften festlegen
$aNew[$i - 1] = GUICtrlCreateInput("", 2 + ($i - 1) * 125, 30, 120, 20, Default, $WS_EX_STATICEDGE) ; Eingabefelder erstellen
GUICtrlSetFont(-1, 10, 600, 0, 'Verdana') ; Schriftgröße und -art der Eingabefelder festlegen
Next
Global $hCreate = GUICtrlCreateButton("Eintrag speichern", 254, 65, 120, 25, $BS_DEFPUSHBUTTON) ; Button zum speichern
#endregion Fenster für neuen Eintrag
_GUICtrlListView_RegisterSortCallBack($hLVHandle) ; damit man das Listview (mit Klick auf die Spaltenüberschrift) sortieren kann
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW, $hGui) ; Hauptfenster sichtbar machen
[/autoit] [autoit][/autoit] [autoit]#cs
#region Ebaysuche einlesen
$sSource= BinaryToString(inetread("http://shop.ebay.de/i.html?rt=nc&LH_Auction=1&_nkw=Cd+Player&_trksid=p3286.c0.m301"))
;Land
;<b></b>Deutschland</a>
;$aLand = StringRegExp($sSource,'<b></b>(.*?)</a>',3)
;Link
;<a class="vip" href="http://cgi.ebay.de/Portable-CD-Player-GRUNDIG-CDP-440-/120739691074?pt=DE_Elektronik_Computer_Audio_Hi_Fi_CD_Player&hash=item1c1ca57a42">Portable CD-Player GRUNDIG CDP 440</a>
$aProdukt = StringRegExp($sSource,'"vip">(.*?)<',3) ;class=.*?"vip"\shref="(.*?)">
;_ArrayDisplay($aProdukt, "Array Auswertung")
$aGebote = StringRegExp($sSource,'<td\sclass="bids\sbin1">(\d+\s\w+)</td>',3) ;class=.*?"vip"\shref="(.*?)">
;_ArrayDisplay($aGebote, "Array Auswertung")
$aPreis = StringRegExp($sSource,'<div\sclass="g-b">(.*?)</div>',3) ;class=.*?"vip"\shref="(.*?)">
;_ArrayDisplay($aPreis, "Array Auswertung")
$aRestzeit = StringRegExp($sSource,'class="hidlb">.*?<span.*?([^<">]+)</span>',3) ;class="hidlb">.*?<span.*?([^<">]+)</span>
for $i = 0 to UBound($aRestzeit) -1
;$ersetze = StringRegExpReplace($aRestzeit[$i],"[160;]","test")
$d = $aProdukt[$i]&"|"&$aGebote[$i]&"|"&$aPreis[$i]&"|"&$aRestzeit[$i]
GUICtrlCreateListViewItem($d, $hListView)
;MsgBox(0,"","")
next
#endregion Ebaysuche einlesen
#ce
If FileExists($sDBFile) Then Load() ; wenn Datenbank-Datei existiert, dann Datenbank laden
[/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<=========================================== Bemachrichtigung Doppelklick
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg(1) ; Message-Event holen (1) = erweiterter Modus
Switch $nMsg[0] ; anhand der Control-ID das entsprechende Case aufrufen
Case $hListView ; User hat auf eine Spaltenüberschrift geklickt
_GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($hListView)) ; Einträge entsprechend sortieren
Case $hSearchStart
GUICtrlSetState($hSearchStart, $GUI_DISABLE)
_GUICtrlListView_DeleteAllItems($hSearchLVHandle)
Dim $sSearch = GUICtrlRead($hSearch), $sItem
For $i = 0 To _GUICtrlListView_GetItemCount($hLVHandle) - 1
$sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i)
If StringInStr($sItem, $sSearch) Then GUICtrlCreateListViewItem($sItem, $hSearchListView)
Next
GUICtrlSetState($hListView, $GUI_HIDE)
GUICtrlSetState($hSearchListView, $GUI_SHOW)
GUICtrlSetState($hSearchReset, $GUI_ENABLE)
Case $hSearchReset
GUICtrlSetData($hSearch, "")
GUICtrlSetState($hSearchListView, $GUI_HIDE)
GUICtrlSetState($hListView, $GUI_SHOW)
GUICtrlSetState($hSearchStart, $GUI_ENABLE)
GUICtrlSetState($hSearchReset, $GUI_DISABLE)
Case $hNew, $hCMNew ; User hat auf "Neuer Eintrag" geklickt
WinSetTitle($hGuiNew, "", "Neuer Eintrag") ; den Titel des Fenster anpassen
GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
Case $hEdit, $hCMEdit ; User hat auf "Eintrag bearbeiten" geklickt
WinSetTitle($hGuiNew, "", "Eintrag bearbeiten") ; den Titel des Fenster anpassen
GUISetState(@SW_SHOW, $hGuiNew) ; das Fenster "Neuer Eintrag" anzeigen
GUISetState(@SW_DISABLE, $hGui) ; das Hauptfenster deaktivieren
Edit()
Case $hLoad ; User hat auf "Laden" geklickt
Load()
Case $hSave ; User hat auf "Laden" geklickt
Save()
Case $hDel, $hCMDel ; User hat auf "Markierte Einträge löschen" geklickt
If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie die markierten Einträge wirklich löschen?") = 6 Then _GUICtrlListView_DeleteItemsSelected($hLVHandle)
Case $hDelAll ; User hat auf "Alle Einträge löschen" geklickt
If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie wirklich alle Einträge löschen?") = 6 Then _GUICtrlListView_DeleteAllItems($hLVHandle)
Case $hCreate ; User hat auf "Eintrag speichern" im Fenster "Neuer Eintrag" geklickt
NewItem()
Case $GUI_EVENT_CLOSE ; User hat auf das Schließen-Symbol geklickt (bzw. die ESC-Taste gedrückt)
Switch $nMsg[1] ; erweiterte Abfrage für welches Fenster
Case $hGui ; User will das Hauptfenster schließen
If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then End() ; wenn ja, dann End-Funktion aufrufen
Case $hGuiNew ; User will das "Neuer Eintrag"-Fenster schließen
$iEdit = -1
For $i = 0 To UBound($aNew) - 1
GUICtrlSetData($aNew[$i], "") ; Alle Eingabefelder leeren
Next
GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
WinActivate($hGui) ; und in den Vordergrund holen
EndSwitch
EndSwitch
WEnd
Func End()
;~ Save() ; wenn der vordere Kommentar entfernt wird, dann werden vor dem beenden noch die Daten gespeichert
_GUICtrlListView_UnRegisterSortCallBack($hLVHandle) ; Sortierroutine wieder de-registrieren
Exit ; Programm beenden
EndFunc ;==>End
Func NewItem() ; Funktion zum auslesen der Eingabefelder (Neuer Eintrag bzw. Eintrag bearbeiten)
Local $sItem = ""
For $i = 0 To UBound($aNew) - 1 ; Schleife, um alle Eingabefelder durchzugehen
If $iEdit > -1 Then ; wenn $iEdit > -1 (Eintrag bearbeiten), dann...
_GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i) ; den Eintrag aus dem Eingabefeld ins Listview schreiben
Else ; sonst $iEdit = -1 (neuer Eintrag)
$sItem &= GUICtrlRead($aNew[$i]) & "|" ; den Eintrag aus dem Eingabefeld erstmal in einer Variablen ($sItem) speichern
EndIf
GUICtrlSetData($aNew[$i], "") ; das entsprechende Eingabefeld leeren
Next
If $iEdit > -1 Then ; wenn $iEdit > -1 (Eintrag bearbeiten), dann...
$iEdit = -1
GUISetState(@SW_HIDE, $hGuiNew) ; "Neuer Eintrag"-Fenster verstecken
GUISetState(@SW_ENABLE, $hGui) ; Hauptfenster wieder aktivieren
Sleep(300)
WinActivate($hGui) ; und in den Vordergrund holen
Else ; sonst $iEdit = -1 (neuer Eintrag)
GUICtrlSetState($aNew[0], $GUI_FOCUS) ; den Focus wieder auf das erste Eingabefeld setzen, für weitere Eingaben
GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $hListView) ; mit den Werten aus $sItem einen neuen Listview-Eintrag hinzufügen
EndIf
EndFunc ;==>NewItem
Func Edit() ; Funktion zum bearbeiten eines Listview-Eintrags im "Eintrag bearbeiten"-Fenster
$iEdit = _GUICtrlListView_GetSelectionMark($hLVHandle) ; auslesen, welcher Listview-Eintrag markiert (bei mehreren, den obersten) ist
If $iEdit > -1 Then
Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle, $iEdit) ; die Einträge aus dem Listview in ein Array holen
For $i = 1 To $aItem[0]
GUICtrlSetData($aNew[$i - 1], $aItem[$i]) ; und in die entsprechenden Eingabefelder schreiben
Next
EndIf
EndFunc ;==>Edit
Func Load() ; Datenbank-Datei laden
Local $hFile, $sContent, $aNewItems
$hFile = FileOpen($sDBFile, 0) ; Datei zum lesen öffnen
If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
$sContent = FileRead($hFile) ; Datei komplett einlesen
FileClose($hFile) ; Datei schließen
$sContent = StringTrimRight($sContent, 2) ; das letzte @CRLF entfernen
$aNewItems = StringSplit($sContent, @CRLF, 1) ; Den Dateiinhalt am Zeilenende splitten
If Not IsArray($aNewItems) Then Return ; Wenn $aNewItems kein Array ist, dann Funktion verlassen
_GUICtrlListView_BeginUpdate($hLVHandle) ; Listview sperren
For $i = 1 To $aNewItems[0] ; Alle Einträge des Arrays durchgehen
GUICtrlCreateListViewItem($aNewItems[$i], $hListView) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
Next
_GUICtrlListView_EndUpdate($hLVHandle) ; Listview wieder freigeben
EndIf
EndFunc ;==>Load
Func Save() ; Datenbank-Datei speichern
Local $sItem, $hFile, $iCount
$iCount = _GUICtrlListView_GetItemCount($hLVHandle) - 1 ; Anzahl der Listview-Einträge holen
If $iCount = -1 Then Return FileDelete($sDBFile) ; Wenn das Listview keine Einträge enthält, dann Datei löschen und Funktion verlassen
$hFile = FileOpen($sDBFile, 2) ; Datei zum speichern (überschreiben) öffnen
If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
For $i = 0 To $iCount ; Schleife, um alle Listview-Einträge durchzugehen
$sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i) ; die Werte aus dem Listview-Eintrag holen
FileWriteLine($hFile, $sItem) ; und in die Datei schreiben
Next
FileClose($hFile) ; Datei schließen
EndIf
EndFunc ;==>Save
Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
If $wParam = $hListview Then
Switch $code
;Case $NM_RCLICK ;Rechtsklick
case $NM_DBLCLK ;Klick
If _GUICtrlListView_GetSelectedCount($hListview) > 0 Then
For $i = 0 To _GUICtrlListView_GetItemCount($hListview)
If _GUICtrlListView_GetItemSelected($hListview, $i) Then
$aItem = _GUICtrlListView_GetItemTextArray($hListview, $i)
MsgBox(0, "Rechts-Klick auf ", $aItem[1] & @CRLF & @CRLF & $aItem[2])
;ShellExecute(@ScriptDir & "\" & $aItem[1])
EndIf
Next
EndIf
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Bei Doppelklick wird geht eine MessageBox mit dem Produktnamen auf. Zeile 246 (MSgbOx) kann auskommentiert werden. Zum ausführen der PDF einfach in Zeile 247 das auskommentierende Semikolon entfernen. Ausserdem habe ich die komplette Sektion EBAY-Suche auskommetiert, denn bei mir stürzt das Skript damit ab (hängt vielleicht mit den Daten zusammen,
mfg autoBert
ist doch gelöst:
Habe es nun denke ich fast gelöst versuche es genau zu beschreiben:
1.Drücke login Button
2.Drücke X oder Cancel <-----------Es beendet sich das Script aber es dauert relativ lange bis es sich beendet
das es länger dauert liegt an dem sleep(), den du ja benötigst damit die "Dummy"-Progressbar nicht durch rennt,
mfg autoBert
Verstehe das mit der "boolschen" Variabel...
Ein "boolsche" Variable ist eine Variable die entweder True oder False ist. Schau in der Hilfe das Beispiel zu HotKeySet an, die Variable $Paused ist eine solche "boolsche" Varibable.
könntest du vllt. mal bitte ein Beispiel schreiben ???
da ich dein bisheriges Skript nicht kenne:
Stelle doch ers eimal die:
Es geht sicher z.B. mit einer boolschen Variablen,
mfg autoBert
mfg autoBert
Hallo iFreak95,
du kannst auch ein Tab-Control verwenden, dann hast du nur eine Gui,
mfg autoBert
ICH MACHE KEINE SPASSPROGRAMME
...ich erlaube mir diese Unterstellung mal gekonnt zu Ignorieren...wenn du's genau wissen willst habe ich an meiner Maus rumgebastelt, also das Gehäuse ein bisschen an die Handform angepasst...und nun leider wie gesagt aus Platzgründen (von dem es wegen den Gehäuseanpassungen leider nun relativ wenig hat). Bei Bedarf kann ich dir mal den Entwurf zeigen, den ich noch zuhause rumliegen habe, aber das würde ich gerne vermeiden bis alles ohne Probleme läuft.Edit: eukalyptus: Lösung 1 reicht mir eigentlich schon, de Richtungen stimmen noch nicht aber das und den anderen Bug krieg ich schon selbst hin. thx
Das ist ja wohl die dümmste Erklärung die dir dazu einfallen kann. Warum soll für eine jetzt kleinere Maus auf dem Tisch nicht mehr genug Platz sein, damit du Softwaretechnisch die Bewegung nach oben auf links um setzen musst? Was machst du wenn du nach links willst, wäre ja jetzt nach unten nötig.
Dein Versuch einer Erklärung bestärkt mich in meiner Annahme dass ess für ein Spassprogramm gedacht ist, deshalb:
Vote for close
Hallo PenGuin,
dass es nicht besonders performant ist liegt (neben AutoIt) an dem ReDim in Zeile 41. Du solltest dir eine Methode ausdenken bei dem du die Anzahl der ReDim 's veringern oder vielleich ganz darauf verzichten kannst. Letzteres sollte doch mit
[autoit]_ArrayConcatenate
[/autoit]und
[autoit]_ArrayUnique
[/autoit]möglich sein,
@killax2x: es ist zum einen eine gute Übung um Rekursionen zu üben bzw. seine Logik zu schulen um performante Algorythmen zu entwickeln, zum anderen ist es die Grundlage um eine Webseite mit all ihren Links downzuloaden um sie nach Anpassng der Links ofline im Zugriff zu haneb,
mfg autoBert
Wenn es hoch kommt nur die reine Beschäftigungszeit für autoit ist vieleicht 3 Monate in diesem Jahr.
Aber sehr nett wie man hier behandelt wird als "Anfänger" und ja ich werde auch noch bestimmt in
2 Jahren noch anfänger bleiben.Es ist immer einfach jemanden zu verurteilen.
Du bist ja nr zu bequem selbst etwas zu skripten, falls dies nicht zutreffen sollte dtimmt dies:
Normalerweise muss dir die Lösung sofort ins Auge springen. Wenn du immer nur einen suchst der die Probleme für dich löst ist programmieren nicht das richtige Hobby für dich, beschäftige dich also besser mit etwas anderem,
natürlich umso mehr. Du hattest das gleiche Thema auch in dem Forum für das hier keine Werbung gemacht werden darf und ich auch keine machen will. Dort wurde dein Thema geschlossen, hier wurde dir ausreichend zum Thema geholfen, also heul nicht rum.
mfg autoBert
Hallo Domi94 ,
teste dieses Skript:
; *** Start added by AutoIt3Wrapper ***
#include <EditConstants.au3>
; *** End added by AutoIt3Wrapper ***
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Add_Constants=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <k8055udf.au3>
#include <GuiStatusBar.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
Global $iBoard = 0 ;Board mit dem verbnden werden soll
Global $idChkDigitIn[6] ;für ControlIDs der Checkboxen Digitale Eingänge Element 0 ist nicht belegt
Global $idChkDigitOut[9] ;für ControlIDs der Checkboxen Digitale Ausgänge Element 0 ist nicht belegt
Global $idInpZaehler[3] ;für ControlIDs Entprellzeit der Zählwerke Element 0 ist nicht belegt
Global $idBtnZaehler[3] ;für ControlIDs Buttons Prellzeit setzen Zählwerke Element 0 ist nicht belegt
Global $idBtnReset[3] ;für ControlIDs Buttons Prellzeit Zählwerke RESETen Element 0 ist nicht belegt
Global $idLblZaehler[3] ;für ControlIDs Werte der Zählwerke Element 0 ist nicht belegt
Global $iZaehler[3] ;abgefragte Werte aus der DllCall Element 0 ist nicht belegt
;##########################################
$frmMain = GUICreate("K8055 Board Test", 519, 185, 187, 121)
$idStatus = _GUICtrlStatusBar_Create($frmMain)
Dim $idStatus_PartsWidth[2] = [439, -1]
_GUICtrlStatusBar_SetParts($idStatus, $idStatus_PartsWidth)
_GUICtrlStatusBar_SetText($idStatus, "", 0)
_GUICtrlStatusBar_SetText($idStatus, "Verbunden", 1)
GUICtrlCreateGroup("Digitale Eingänge", 8, 0, 169, 41)
For $i = 1 To 5
$idChkDigitIn[$i] = GUICtrlCreateCheckbox("I" & $i, -16 + $i * 32, 16, 25, 17)
Next
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Digitale Ausgänge", 184, 0, 329, 41)
For $i = 1 To 8
$idChkDigitOut[$i] = GUICtrlCreateCheckbox("O" & $i, 152 + $i * 40, 16, 33, 17)
Next
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Zähler 1", 8, 55, 220, 75)
GUICtrlCreateLabel("Entprellteit (0-5000):",15,72)
$idInpZaehler[1] = GUICtrlCreateInput("",110,70,30,20,$ES_Number)
$idBtnZaehler[1] = GUICtrlCreateButton("setzen",150,70,70,20)
$idBtnReset[1] = GUICtrlCreateButton("Reset",150,95,70,20)
$idLblZaehler[1] = GUICtrlCreateLabel("TEST",15,95,110,30, $ES_RIGHT)
GUICtrlSetFont(-1,14,1400)
GUICtrlCreateGroup("Zähler 2", 278, 55, 220, 75)
GUICtrlCreateLabel("Entprellteit (0-5000):",285,72)
$idInpZaehler[2] = GUICtrlCreateInput("",380,70,30,20,$ES_Number)
$idBtnZaehler[2] = GUICtrlCreateButton("setzen",420,70,70,20)
$idBtnReset[2] = GUICtrlCreateButton("Reset",420,95,70,20)
$idLblZaehler[2] = GUICtrlCreateLabel("TEST",285,95,110,30, $ES_RIGHT)
GUICtrlSetFont(-1,14,1400)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$beenden = GUICtrlCreateButton("Beenden", 432, 135, 75, 25)
GUISetState(@SW_SHOW)
$bK8055Debug = True
USB_DLLOpen()
initial_board($iBoard)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg ;um die Events dieser GUI zu unterscheiden
Case $GUI_EVENT_CLOSE, $beenden
CloseAllDevice()
Exit
Case $idChkDigitOut[1] To $idChkDigitOut[8]
$iChannel = $nMsg - $idChkDigitOut[1] + 1
ConsoleWrite($iChannel & @CRLF)
If BitAND(GUICtrlRead($idChkDigitOut[1]), $GUI_CHECKED) Then
SetDigitalChannel($iBoard, $iChannel)
Else
ClearDigitalChannel($iBoard, $iChannel)
EndIf
Case $idChkDigitIn[1] to $idChkDigitIn[5]
For $i = 1 To 5
If ReadDigitalChannel($iBoard, $idChkDigitIn[$i]) Then
GUICtrlSetState($idChkDigitIn[$i], $GUI_CHECKED)
Else
GUICtrlSetState($idChkDigitIn[$i], $GUI_UNCHECKED)
EndIf
Next
Case $idBtnZaehler[1]
USBSetCounterDebounceTime(1, GuiCtrlRead($idInpZaehler[1]))
Case $idBtnZaehler[2]
USBSetCounterDebounceTime(2, GuiCtrlRead($idInpZaehler[2]))
Case $idBtnReset[1]
$iZaehler[1] = USBResetCounter(1)
Case $idBtnReset[2]
$iZaehler[2] = USBResetCounter(2)
EndSwitch
for $i = 1 to 2 ;Werte auslesen und setzen
$iZaehler[$i] = USBReadCounter($i)
if $iZaehler[$i] <> GUICtrlRead($idLblZaehler[$i]) then GUICtrlSetData($idLblZaehler[$i],$iZaehler[$i])
Next
WEnd
ausserdem gehe ich davon aus dass die UDf einen Fehler enthält. Ich würde die Funktion USBReadCounter so anpassen, bin aber was DLL-Calls betrifft Laie und habe auch kein K8055 um es testen zu können:
[autoit]Func USBReadCounter($count)
$result = DllCall("k8055d.dll", "none", "ReadCounter", "int", $count)
Return $result[0]
EndFunc ;==>USBReadCounter
mfg autoBert
Hallo
du benötigst dazu diese UDF:
#include<Array.au3>
#include-once
Global $sDLL = "k8055D_multi.dll"
; Original Vellemann.Dll in diesen Namen umbenennen
;lt. vivus https://autoit.de/index.php?page…7621#post117621
;von dem auch das Original dieser UDF stammt
Global $bK8055Debug = False
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.0.0
Author: myName
Script Function:
handles the k8055d.dll 2009.10.19
#ce ----------------------------------------------------------------------------
Func USB_DLLOpen()
If $bK8055Debug Then ConsoleWrite("Dll wird geöffnet" & @CRLF)
DllOpen(@ScriptDir & "\" & $sDLL) ; öffnen der DLL
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>USB_DLLOpen
[/autoit] [autoit][/autoit] [autoit];----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func initial_board($address)
If $bK8055Debug Then ConsoleWrite("Board wird initialisiert" & @CRLF)
$begin = TimerInit()
Do
$result = USBOpenDevice($address)
Sleep(250)
$dif = TimerDiff($begin)
[/autoit] [autoit][/autoit] [autoit]If $dif > "4000" Then ExitLoop
[/autoit] [autoit][/autoit] [autoit]Until $result = 1
[/autoit] [autoit][/autoit] [autoit]ClearAllDigital($address)
[/autoit] [autoit][/autoit] [autoit]Sleep(250)
[/autoit] [autoit][/autoit] [autoit];~ SetDigitalChannel($address, "4")
[/autoit] [autoit][/autoit] [autoit]If $result = 1 Then
If $bK8055Debug Then ConsoleWrite("Board wurde initialisiert" & @CRLF)
Return "1"
Else
MsgBox(0, "ERROR", "fehler bei initialisierung des USB board's" & $address)
MsgBox(0, "ERROR", "Programm wird beendet! mit " & $result)
Exit
Return "0"
EndIf
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndFunc ;==>initial_board
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func USBOpenDevice($address)
If $bK8055Debug Then ConsoleWrite("USBDevice " & $address & " wird geöffnet" & @CRLF)
$result = DllCall($sDLL, "long", "OpenDevice", "long", $address)
If Not @error Then
If $result[0] = $address Then
Return "1"
Else
If $bK8055Debug Then ConsoleWrite("Öffnen von USBDevice " & $address & " nicht erfolgreich!" & @CRLF)
Exit
EndIf
Else
If $bK8055Debug Then ConsoleWrite("Öffnen von USBDevice " & $address & " nicht erfolgreich!" & @CRLF)
Exit
EndIf
EndFunc ;==>USBOpenDevice
;---------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func CloseAllDevice()
If $bK8055Debug Then ConsoleWrite("entlade DLL " & @CRLF)
$res = DllCall($sDLL, "none", "CloseDevice")
DllClose(@ScriptDir & "\" & $sDLL) ; öffnen der DLL
EndFunc ;==>CloseAllDevice
[/autoit] [autoit][/autoit] [autoit];---------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func SearchDevices()
If $bK8055Debug Then ConsoleWrite("suche Boards" & @TAB)
$result = DllCall($sDLL, "long", "SearchDevices")
if not @error Then
If $bK8055Debug Then ConsoleWrite("OK" & @CRLF)
Return $result[0]
Else
If $bK8055Debug Then ConsoleWrite("Failed" & @CRLF)
EndIf
EndFunc ;==>SearchDevices
[/autoit] [autoit][/autoit] [autoit];---------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func USBCloseDevice($address)
SetCurrentDevice($address)
$res = DllCall($sDLL, "none", "CloseDevice")
;Return ;;$result[0]
EndFunc ;==>USBCloseDevice
;---------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func ClearAllDigital($address)
SetCurrentDevice($address)
$res = DllCall($sDLL, "int", "ClearAllDigital")
EndFunc ;==>ClearAllDigital
;----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func SetCurrentDevice($address)
[/autoit] [autoit][/autoit] [autoit]$begin = TimerInit()
Do
$result = DllCall($sDLL, "long", "OpenDevice", "int", $address)
[/autoit] [autoit][/autoit] [autoit];ToolTip($address&"="&$result[0],0,0)
$dif = TimerDiff($begin)
If $dif > "4000" Then ExitLoop
[/autoit] [autoit][/autoit] [autoit]Until $address = $result[0]
[/autoit] [autoit][/autoit] [autoit];ToolTip("",0,0)
[/autoit] [autoit][/autoit] [autoit]If $address = $result[0] Then
;nix
Else
MsgBox(0, "", "adresse = " & $address & " result = " & $result[0])
EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>SetCurrentDevice
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func SetDigitalChannel($address, $channel)
SetCurrentDevice($address)
DllCall($sDLL, "none", "SetDigitalChannel", "int", $channel)
EndFunc ;==>SetDigitalChannel
;---------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func ClearDigitalChannel($address, $channel)
SetCurrentDevice($address)
DllCall($sDLL, "none", "ClearDigitalChannel", "int", $channel)
EndFunc ;==>ClearDigitalChannel
;---------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func ReadAnalogChannel($address, $channel)
SetCurrentDevice($address)
$result = DllCall($sDLL, "int", "ReadAnalogChannel", "int", $channel)
Return $result[0]
EndFunc ;==>ReadAnalogChannel
;---------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]Func ReadAllDigital($address)
SetCurrentDevice($address)
$alldigit = DllCall($sDLL, "int", "ReadAllDigital")
Return $alldigit[0]
EndFunc ;==>ReadAllDigital
;---------------------------------------------------------------------------
Func ReadDigitalChannel($address, $sellect)
Dim $channel[6]
$channel[1] = 0
$channel[2] = 0
$channel[3] = 0
$channel[4] = 0
$channel[5] = 0
$wert = ReadAllDigital($address)
[/autoit] [autoit][/autoit] [autoit];MsgBox(0,"",$alldigit[0] & " " & $wert)
Select
Case $wert = 0
$channel[1] = 0
$channel[2] = 0
$channel[3] = 0
$channel[4] = 0
$channel[5] = 0
Case $wert = 1
;I1
$channel[1] = 1
Case $wert = 2
;I2
$channel[2] = 1
Case $wert = 3
;I1 + I2
$channel[1] = 1
$channel[2] = 1
Case $wert = 4
;I3
$channel[3] = 1
Case $wert = 5
;I3 + I1
$channel[1] = 1
$channel[3] = 1
Case $wert = 6
;I3 + I2
$channel[2] = 1
$channel[3] = 1
Case $wert = 7
;I3 + I2 + I1
$channel[1] = 1
$channel[2] = 1
$channel[3] = 1
Case $wert = 8
;I4
$channel[4] = 1
Case $wert = 9
;I4 + I1
$channel[1] = 1
$channel[4] = 1
Case $wert = 10
;I4 + I2
$channel[2] = 1
$channel[4] = 1
Case $wert = 11
;I4 + I2 + I1
$channel[1] = 1
$channel[2] = 1
$channel[4] = 1
Case $wert = 12
;I4 + I3
$channel[3] = 1
$channel[4] = 1
Case $wert = 13
;I4 + I3 + I1
$channel[1] = 1
$channel[3] = 1
$channel[4] = 1
Case $wert = 14
;I4 + I3 + I2
$channel[2] = 1
$channel[3] = 1
$channel[4] = 1
Case $wert = 15
;I4 + I3 * I2 + I1
$channel[1] = 1
$channel[2] = 1
$channel[3] = 1
$channel[4] = 1
Case $wert = 16
;I5
$channel[5] = 1
Case $wert = 17
;I1
$channel[1] = 1
$channel[5] = 1
Case $wert = 18
;I2
$channel[2] = 1
$channel[5] = 1
Case $wert = 19
;I1 + I2
$channel[1] = 1
$channel[2] = 1
$channel[5] = 1
Case $wert = 20
;I3
$channel[3] = 1
$channel[5] = 1
Case $wert = 21
;I3 + I1
$channel[1] = 1
$channel[3] = 1
$channel[5] = 1
Case $wert = 22
;I3 + I2
$channel[2] = 1
$channel[3] = 1
$channel[5] = 1
Case $wert = 23
;I3 + I2 + I1
$channel[1] = 1
$channel[2] = 1
$channel[3] = 1
$channel[5] = 1
Case $wert = 24
;I4
$channel[4] = 1
$channel[5] = 1
Case $wert = 25
;I4 + I1
$channel[1] = 1
$channel[4] = 1
$channel[5] = 1
Case $wert = 26
;I4 + I2
$channel[2] = 1
$channel[4] = 1
$channel[5] = 1
Case $wert = 27
;I4 + I2 + I1
$channel[1] = 1
$channel[2] = 1
$channel[4] = 1
$channel[5] = 1
Case $wert = 28
;I4 + I3
$channel[3] = 1
$channel[4] = 1
$channel[5] = 1
Case $wert = 29
;I4 + I3 + I1
$channel[1] = 1
$channel[3] = 1
$channel[4] = 1
$channel[5] = 1
Case $wert = 30
;I4 + I3 + I2
$channel[2] = 1
$channel[3] = 1
$channel[4] = 1
$channel[5] = 1
Case $wert = 31
;I4 + I3 * I2 + I1
$channel[1] = 1
$channel[2] = 1
$channel[3] = 1
$channel[4] = 1
$channel[5] = 1
Case Else
[/autoit] [autoit][/autoit] [autoit]$channel[1] = 0
$channel[2] = 0
$channel[3] = 0
$channel[4] = 0
$channel[5] = 0
EndSelect
[/autoit] [autoit][/autoit] [autoit]If $channel[$sellect] = 1 Then
; MsgBox(0,"","return 1")
Return 1
Else
; MsgBox(0,"","return 0")
Return 0
EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>ReadDigitalChannel
;--------------------------
die du im include-Ordner von AutoIt unter k8055udf.au3 speicherst und mit
[autoit]#include <k8055udf.au3>
[/autoit]in dein Skript einbindest. Hier ein kleines Testskript:
#include <k8055udf.au3>
#include <GuiStatusBar.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
Global $iBoard = 0 ;Board mit dem verbnden werden soll
Global $idChkDigitIn[6] ;für ControlIDs der Checkboxen Digitale Eingänge Element 0 ist nicht belegt
Global $idChkDigitOut[9] ;für ControlIDs der Checkboxen Digitale Ausgänge Element 0 ist nicht belegt
;##########################################
$frmMain = GUICreate("K8055 Board Test", 519, 412, 187, 121)
$idStatus = _GUICtrlStatusBar_Create($frmMain)
Dim $idStatus_PartsWidth[2] = [439, -1]
_GUICtrlStatusBar_SetParts($idStatus, $idStatus_PartsWidth)
_GUICtrlStatusBar_SetText($idStatus, "", 0)
_GUICtrlStatusBar_SetText($idStatus, "Verbunden", 1)
GUICtrlCreateGroup("Digitale Eingänge", 8, 0, 169, 41)
For $i = 1 To 5
$idChkDigitIn[$i] = GUICtrlCreateCheckbox("I" & $i, -16 + $i * 32, 16, 25, 17)
Next
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Digitale Ausgänge", 184, 0, 329, 41)
For $i = 1 To 8
$idChkDigitOut[$i] = GUICtrlCreateCheckbox("O" & $i, 152 + $i * 40, 16, 33, 17)
Next
GUICtrlCreateGroup("", -99, -99, 1, 1)
$ListView1 = GUICtrlCreateListView("Aktionen", 8, 48, 506, 310)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 502)
$beenden = GUICtrlCreateButton("Beenden", 432, 360, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
$bK8055Debug = True
USB_DLLOpen()
initial_board($iBoard)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg ;um die Events dieser GUI zu unterscheiden
Case $GUI_EVENT_CLOSE, $beenden
CloseAllDevice()
Exit
Case $idChkDigitOut[1] To $idChkDigitOut[8]
$iChannel = $nMsg - $idChkDigitOut[1] + 1
ConsoleWrite($iChannel & @CRLF)
If BitAND(GUICtrlRead($idChkDigitOut[1]), $GUI_CHECKED) Then
SetDigitalChannel($iBoard, $iChannel)
Else
ClearDigitalChannel($iBoard, $iChannel)
EndIf
Case $idChkDigitIn[1] to $idChkDigitIn[5]
For $i = 1 To 5
If ReadDigitalChannel($iBoard, $idChkDigitIn[$i]) Then
GUICtrlSetState($idChkDigitIn[$i], $GUI_CHECKED)
Else
GUICtrlSetState($idChkDigitIn[$i], $GUI_UNCHECKED)
EndIf
Next
EndSwitch
WEnd
mfg autoBert
Halo oispnr.
findest du es nicht dreist hier auf ein fremdes Board zu verlinken? Daher plädiere ich dafür galls du dein echtes Skript nicht einstellst dieses Thema zu CLOSEn ,
mfg autoBert
Hallo unverschämt,
wie wäre es wenn du die Skriptbeispiele aus der Hlfe durcharbeitest. Dies hilft gegen Langeweile und verbessert das Verständnis für AutoIt. Wenn du dann zumindest über alle nativen Funktionen Bescheid (GUI-Funktionen sind Pflicht, die restlichen Kür schaden aber nicht) weist kannst du dir ernsthaft Gedanken machen ein eigenes Projekt anzugehen,
mfg autoBert
du beschäftigst dich seit über eibnem Jahr mit AutoIt, da sollte man Sourcecode (vor allem so einfachen) analysieren und verstehen können. Normalerwweise muss dir die Lösung sofort ins Auge springen. Wenn du immer nur einen suchst der die Probleme für dich löst ist programmieren nicht das richtige Hobby für dich, beschäftige dich also besser mit etwas anderem,
mfg autoBert
Hallo unverschämt,
hier das Beispiel aus der Hilfe zu GuCtrlCreateProgress:
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]Example()
[/autoit] [autoit][/autoit] [autoit]Func Example()
Local $progressbar1, $progressbar2, $button, $wait, $s, $msg, $m
GUICreate("Meine GUI Progressbar", 220, 100, 100, 200)
$progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
GUICtrlSetColor(-1, 32250); Funktioniert nicht mit Windows XP Style
$progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH)
$button = GUICtrlCreateButton("Start", 75, 70, 70, 20)
GUISetState()
$wait = 20; Warte 20ms bis zum nächsten Schritt
$s = 0; Progressbar-Startposition
Do
$msg = GUIGetMsg()
If $msg = $button Then
GUICtrlSetData($button, "Stop")
For $i = $s To 100
If GUICtrlRead($progressbar1) = 50 Then MsgBox(0, "Info", "Die Hälfte ist fertig ...", 1)
$m = GUIGetMsg()
If $m = -3 Then ExitLoop
[/autoit] [autoit][/autoit] [autoit]If $m = $button Then
GUICtrlSetData($button, "Weiter")
$s = $i ; Speichere aktuelle Balkenposition in $s
ExitLoop
Else
$s = 0
GUICtrlSetData($progressbar1, $i)
GUICtrlSetData($progressbar2, (100 - $i))
Sleep($wait)
EndIf
Next
If $i > 100 Then
; $s=0
GUICtrlSetData($button, "Start")
EndIf
EndIf
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>Example
anhand diesem Beispiel erkennst du wie es funktioniert,
mfg autoBert
Versuche es mit _FFImageClick,
mfg autoBert
Hallo unverschämt,
einfach die Hintergrundfarbe des Labels auf Transparent setzen, also so:
;#RequireAdmin
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Users\Django\Eigene Projekte\django Autoit v3 Projekt\++Übungs Testscripte\Koda Übungen\Gui_Password_Obj.kxf
$Gui_Login_System_Obj = GUICreate("Login System by Django", 365, 130, 800, 475)
GUISetFont(8, 400, 0, "Consolas")
$Gui_Login_Obj = GUICtrlCreateButton("Login", 16, 88, 145, 25)
$Gui_Cancel_Obj = GUICtrlCreateButton("Cancel", 185, 88, 145, 25)
$Gui_Ladebalken_Obj = GUICtrlCreateProgress(16, 55, 315, 25)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetBkColor(-1, 0x000000)
$Gui_Status_Obj = GUICtrlCreateLabel("0%", 288, 60, 40, 20, $SS_Right)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT )
GUICtrlSetFont(-1, 12, 1400, 0, "Consolas")
$Gui_Benutzername_Obj = GUICtrlCreateLabel("Benutzername:", 16, 8, 90, 25)
GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
$Gui_Password_Obj = GUICtrlCreateLabel("Passwort:", 185, 8, 90, 25)
GUICtrlSetFont(-1, 10, 400, 0, "Consolas")
$Gui_Benutzername_InputBox_Obj = GUICtrlCreateInput("", 16, 24, 145, 20)
$Gui_Password_InputBox_Obj = GUICtrlCreateInput("", 185, 24, 145, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Gui_Login_Obj
_Ladebalken()
Sleep(250)
_Password_Check()
Case $Gui_Cancel_Obj
Exit
EndSwitch
WEnd
Func _Ladebalken()
For $Zahlvariable = 0 To 100 Step 1
GUICtrlSetData($Gui_Ladebalken_Obj,$Zahlvariable)
GUICtrlSetData($Gui_Status_Obj,$Zahlvariable&"%")
Sleep(250)
Next
EndFunc
Func _Password_Check()
$InputBoxBenutzername = GUICtrlRead($Gui_Benutzername_InputBox_Obj)
$InputBoxPassword = GUICtrlRead($Gui_Password_InputBox_Obj)
If $InputBoxBenutzername = "Django" And $InputBoxPassword = "1337" Then
MsgBox(0,"Login System","Erfolgreich eingeloggt")
ElseIf $InputBoxBenutzername = "Django" Then
MsgBox(0,"Login System","Dein Passwort ist Falsch")
GUICtrlSetData($Gui_Ladebalken_Obj,0)
GUICtrlSetData($Gui_Status_Obj,0&"%")
ElseIf $InputBoxPassword = "1337" Then
MsgBox(0,"Login System","Dein Benutzername ist Falsch")
GUICtrlSetData($Gui_Ladebalken_Obj,0)
GUICtrlSetData($Gui_Status_Obj,0&"%")
Else
MsgBox(0,"Login System","Benutzername und Passwort sind falsch")
GUICtrlSetData($Gui_Ladebalken_Obj,0)
GUICtrlSetData($Gui_Status_Obj,0&"%")
EndIf
EndFunc
mfg autoBert
danke für die hilfe aber kannst du es nicht anhand meines gui machen?so das einfach rechts nebendem ladebalken es in % angezeigt wird!bekomme es einfach nicht hin!mfg unverschämt
Ein Label zu erstellen und ihm in der Schleife mit GuiCtrlSetdata einen Inhalt zu zu weisen, das schaffst du auch alleine,
mfg autoBert
Nur mal so aus Interesse: ist es möglich, das wenn man die Maus aufwärts bewegt, der Cursor beispielsweise nach links fährt?
Ich versuche gerade ein paar ergonomieverbesserungen an meiner Maus vorzunehmen und hab leider den Sensor verdrehen müssen, damit s genug Platz gibt.
Ich vermute dahinter eher die Absicht ein Spassskript (um Lehrer/Bekannte zu erschrecken) zu erstellen als Ergonomieverbesserungen, daher Vote for Close,
mfg autoBert