Also eingentlich kann man das in jedem Spiel einstellen oder bei der Software für den Joystick
Beiträge von Jam00
-
-
Gibt es eine Möglichkeit so ein Scroll-Objekt zu erstellen ohne das es selbst eine Funktion hat aber Trozdem an der Position bleib wo man es hinzieht? Damit ich dann einfach die Position abrufen kann?
-
Guck dir das mal an vllt. hilft das
-
Was für eine Liste willst du denn? Guck dir mal die Hilfe-Datei an, die findest du auch auf Deutsch auf der linken Seite hier im Forum unter Downloads. Dort stehen alle Gui-Controls drinne mit Beispielen
-
Okay gerne
Kleinen Tipp noch, wenn alles Funktioniert dann kanns du indem Du bei deinem ersten Post auf Bearbeiten bzw. Editieren klickst den Status auf Gelöst stellen -
1. Falls es nicht am Browser liegt sondern daran das du es nicht gemacht hast, ordentliche Formatierung deines Scrites bitte, das erhöht die leserlichkeit um einiges d.h. bei einer Schleife einrücken usw.
2. Echt? Seit wann gibts den denn hatte ich nich nie?
3. Der Fenstername vom Notepad ist nicht Notepad sondern Standartmäsig "Unbenannt - Editor"
4. Hast du dir schonmal $e1 mit einer MsgBox o.a. ausgeben lassen? Du bekommst nur ein ID ausgegeben! Du musst GuiCtrlRead einsetzen umd das Edit-Feld auszulesen
Ich habe absichtlich kein Script geschrieben damit er auch noch selber überlegen muss^^
-
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("Test Rechner", 633, 165, 193, 125)
[/autoit] [autoit][/autoit] [autoit]
$Stahlbarren = GUICtrlCreateButton("Stahlbarren", 40, 56, 193, 33, 0)
$h_l1 = GUICtrlCreateLabel ("",10,10,100,40)
GUISetState(@SW_SHOW)While 1
[/autoit]
Switch GUIGetMsg ()
Case -3
Exit
Case $Stahlbarren
$Anzahl = InputBox("Stahlbarren Herstellung", "Bitte gib hier ein, wieviel Stahlbarren du herstellen möchtest!")
Local $Holzkohle = 5, $Feineseisenerz = 10, $Steinkohle = 20
GUICtrlSetData ($h_l1, 'Holzkohle: ' & $Holzkohle * $Anzahl & @CRLF & 'Feines Eisenerz: ' & $Feineseisenerz * $Anzahl & @CRLF & 'Steinkohle: ' & $Steinkohle * $Anzahl)
EndSwitch
WEnd -
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("Test Rechner", 633, 165, 193, 125)
[/autoit] [autoit][/autoit] [autoit]
$Stahlbarren = GUICtrlCreateButton("Stahlbarren", 40, 56, 193, 33, 0)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg ()
Case -3
Exit
Case $Stahlbarren
$Anzahl = InputBox("Stahlbarren Herstellung", "Bitte gib hier ein, wieviel Stahlbarren du herstellen möchtest!")
Local $Holzkohle = 5, $Feineseisenerz = 10, $Steinkohle = 20MsgBox(0, "Ergebnisse", _
[/autoit]
'Holzkohle: ' & $Holzkohle * $Anzahl & @CRLF & _
'Feines Eisenerz: ' & $Feineseisenerz * $Anzahl & @CRLF & _
'Steinkohle: ' & $Steinkohle * $Anzahl)
EndSwitch
WEndPS:
Bitte Verwende das AutoIt-Codefeld damit der Code auch mit AutoIt-Hiliting versehen wird! -
Es verbindet sich ja auch nicht der Server mit dem Client sondern der Client mit dem Server und der hat ja die IP des Servers
-
Also ich ahbe ich auch schon in der Hilfe umgeguckt auch da was gefunden, aber ich verstehe noch nicht wie man die größe einstellt, also wollte ich mir mal die Funktionen angucken, aber dort habe ich Probleme alles zu verstehen, und zwar in Folgendem Script:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StructureConstants.au3>
#include <GUIScrollBars.au3>
#include <ScrollBarConstants.au3>; Erstellen der GUI
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$hGUI = GUICreate("ScrollBar: Beispiel", 800, 600, Default,Default)
GUISetBkColor(0xFF0000)
GUICtrlCreateLabel ("",10,10,1014,758)
GUICtrlSetBkColor (-1,0xFFb000); Selbstbehandelte Nachrichten registrieren
[/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_SIZE, "WM_SIZE") ; Fenstergröße ändern
GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL") ; Vertikales Scrollen
GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL") ; Horizontales ScrollenGUISetState()
[/autoit] [autoit][/autoit] [autoit]_GUIScrollBars_Init($hGUI)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Endlosschleife, in der Aktionen, die zum Beenden des Skripts führen sollen, abgefangen und bearbeitet werden
[/autoit] [autoit][/autoit] [autoit]
While 1
Switch GUIGetMsg()
Case -3
ExitLoop
EndSwitch
WEndExit
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]; Fenstergröße wurde geändert
[/autoit] [autoit][/autoit] [autoit]
Func WM_SIZE($hWnd, $Msg, $wParam, $lParam)
#forceref $Msg, $wParam
MsgBox (0,"","Start")
Local $index = -1, $yChar, $xChar, $xClientMax, $xClient, $yClient, $ivMax
For $x = 0 To UBound($aSB_WindowInfo) - 1
If $aSB_WindowInfo[$x][0] = $hWnd Then
$index = $x
$xClientMax = $aSB_WindowInfo[$index][1]
$xChar = $aSB_WindowInfo[$index][2]
$yChar = $aSB_WindowInfo[$index][3]
$ivMax = $aSB_WindowInfo[$index][7]
MsgBox (0,"",$xClientMax)
ExitLoop
EndIf
Next
If $index = -1 Then Return 0Local $tSCROLLINFO = DllStructCreate($tagSCROLLINFO)
[/autoit] [autoit][/autoit] [autoit]; Ermittelt die Abmessungen der Arbeitsfläche.
[/autoit] [autoit][/autoit] [autoit]
$xClient = BitAND($lParam, 0x0000FFFF)
$yClient = BitShift($lParam, 16)
$aSB_WindowInfo[$index][4] = $xClient
$aSB_WindowInfo[$index][5] = $yClient; Setzt den vertikalen Scrollbereich und die Seitengröße
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "fMask", BitOR($SIF_RANGE, $SIF_PAGE))
DllStructSetData($tSCROLLINFO, "nMin", 0)
DllStructSetData($tSCROLLINFO, "nMax", $ivMax)
DllStructSetData($tSCROLLINFO, "nPage", $yClient / $yChar)
_GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO); Setzt den horizontalen Scrollbereich und die Seitengröße
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "fMask", BitOR($SIF_RANGE, $SIF_PAGE))
DllStructSetData($tSCROLLINFO, "nMin", 0)
DllStructSetData($tSCROLLINFO, "nMax", 2 + $xClientMax / $xChar)
DllStructSetData($tSCROLLINFO, "nPage", $xClient / $xChar)
_GUIScrollBars_SetScrollInfo($hWnd, $SB_HORZ, $tSCROLLINFO)Return $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]
EndFunc ;==>WM_SIZE; Horizontales Scrollen
[/autoit] [autoit][/autoit] [autoit]
Func WM_HSCROLL($hWnd, $Msg, $wParam, $lParam)
#forceref $Msg, $lParam
Local $nScrollCode = BitAND($wParam, 0x0000FFFF)Local $index = -1, $xChar, $xPos
[/autoit] [autoit][/autoit] [autoit]
Local $Min, $Max, $Page, $Pos, $TrackPosFor $x = 0 To UBound($aSB_WindowInfo) - 1
[/autoit] [autoit][/autoit] [autoit]
If $aSB_WindowInfo[$x][0] = $hWnd Then
$index = $x
$xChar = $aSB_WindowInfo[$index][2]
ExitLoop
EndIf
Next
If $index = -1 Then Return 0; Ermittelt alle Informationen der horizontalen Scrollbar
[/autoit] [autoit][/autoit] [autoit]
Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_HORZ)
$Min = DllStructGetData($tSCROLLINFO, "nMin")
$Max = DllStructGetData($tSCROLLINFO, "nMax")
$Page = DllStructGetData($tSCROLLINFO, "nPage")
$xPos = DllStructGetData($tSCROLLINFO, "nPos")
$TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")
; Speichert die x-Position für einen späteren Vergleich
$Pos = $xPos
#forceref $Min, $Max
; Auswertung der vom System gemeldeten Scroll-Nachricht
Switch $nScrollCode
Case $SB_LINELEFT ; Der Anwender klickte auf den linken Pfeil
DllStructSetData($tSCROLLINFO, "nPos", $Pos - 1)Case $SB_LINERIGHT ; Der Anwender klickte auf den rechten Pfeil
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos + 1)Case $SB_PAGELEFT ; Der Anwender klickte links neben dem Scrollbalken
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos - $Page)Case $SB_PAGERIGHT ; Der Anwender klickte rechts neben dem Scrollbalken
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos + $Page)Case $SB_THUMBTRACK ; Der Anwender zog den Scrollbalken
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
EndSwitch;~ // Setzt die neue Position und ermittelt sie danach erneut.
[/autoit] [autoit][/autoit] [autoit]
;~ // Abhängig von den Windows-Einstellungen kann es sein, dass die gelesenen Werte nicht die gleichen sind, wie die vorher gesetzten.DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
[/autoit] [autoit][/autoit] [autoit]
_GUIScrollBars_SetScrollInfo($hWnd, $SB_HORZ, $tSCROLLINFO)
_GUIScrollBars_GetScrollInfo($hWnd, $SB_HORZ, $tSCROLLINFO)
; // Falls sich die x-Position der Scrollbar geändert hat, den Fensterbereich verschieben und aktualisieren
$Pos = DllStructGetData($tSCROLLINFO, "nPos")
If ($Pos <> $xPos) Then _GUIScrollBars_ScrollWindow($hWnd, $xChar * ($xPos - $Pos), 0)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_HSCROLL; Vertikales Scrollen
[/autoit] [autoit][/autoit] [autoit]
Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)
#forceref $Msg, $wParam, $lParam
Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
Local $index = -1, $yChar, $yPos
Local $Min, $Max, $Page, $Pos, $TrackPosFor $x = 0 To UBound($aSB_WindowInfo) - 1
[/autoit] [autoit][/autoit] [autoit]
If $aSB_WindowInfo[$x][0] = $hWnd Then
$index = $x
$yChar = $aSB_WindowInfo[$index][3]
ExitLoop
EndIf
Next
If $index = -1 Then Return 0; Ermittelt alle Informationen der vertikalen Scrollbar
[/autoit] [autoit][/autoit] [autoit]
Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)
$Min = DllStructGetData($tSCROLLINFO, "nMin")
$Max = DllStructGetData($tSCROLLINFO, "nMax")
$Page = DllStructGetData($tSCROLLINFO, "nPage")
$yPos = DllStructGetData($tSCROLLINFO, "nPos")
$TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")
; Speichert die y-Position für einen späteren Vergleich
$Pos = $yPos; Auswertung der vom System gemeldeten Scroll-Nachricht
[/autoit] [autoit][/autoit] [autoit]
Switch $nScrollCode
Case $SB_TOP ; Der Anwender klickte auf die "Pos1"-Taste
DllStructSetData($tSCROLLINFO, "nPos", $Min)Case $SB_BOTTOM ; Der Anwender klickte auf die "Ende"-Taste
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Max)Case $SB_LINEUP ; Der Anwender klickte auf den oberen Pfeil
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos - 1)Case $SB_LINEDOWN ; Der Anwender klickte auf den unteren Pfeil
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos + 1)Case $SB_PAGEUP ; Der Anwender klickte oberhalb des Scrollbalkens
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos - $Page)Case $SB_PAGEDOWN ; Der Anwender klickte unterhalb des Scrollbalkens
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos + $Page)Case $SB_THUMBTRACK ; Der Anwender zog den Scrollbalken
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
EndSwitch;~ // Setzt die neue Position und ermittelt sie danach erneut.
[/autoit] [autoit][/autoit] [autoit]
;~ // Abhängig von den Windows-Einstellungen kann es sein, dass die gelesenen Werte nicht die gleichen sind, wie die vorher gesetzten.DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
[/autoit] [autoit][/autoit] [autoit]
_GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
_GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
; // Falls sich die y-Position der Scrollbar geändert hat, den Fensterbereich verschieben und aktualisieren
$Pos = DllStructGetData($tSCROLLINFO, "nPos")
If ($Pos <> $yPos) Then
_GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))
$yPos = $Pos
EndIfReturn $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>WM_VSCROLL
[/autoit] [autoit][/autoit] [autoit][/autoit]Woher zum Teufel kommt die Variable $aSB_WindowInfo in den Funktionen WM_SIZE, WM_HSCROLL und WM_VSCROLL?
-
1. Ordentliche Formatierung deines Scrites bitte, das erhöht die leserlichkeit um einiges d.h. bei einer Schleife einrücken usw.
2. Was soll 4 mal eine #include-Anweisung ohne Parameter? Das gibt zum einen keinen Sinn und zum andern führ es zu einem Fehler!
3. Der Fenstername vom Notepad ist nicht Notepad sondern Standartmäsig "Unbenannt - Editor"
4. Hast du dir schonmal $e1 mit einer MsgBox o.a. ausgeben lassen? Du bekommst nur ein Handle ausgegeben! Du musst GuiCtrlRead einsetzen umd das Edit-Feld auszulesen
-
Spoiler anzeigen
[autoit]$bytes = FileRead("bg_1.bmp") ;alle Bytes lesen
[/autoit] [autoit][/autoit] [autoit]$width = 640 ;breite bmp
[/autoit]
$height = 482 ;höhe bmp
$x = 390
$y = 288
$color = Hex(Asc(StringMid($bytes, $width * $height - $width * $y + $x + 1078, 1)), 2)
MsgBox (0,"",$color) ;farbe in hexMit dem Script kannst du aus jedem bmp jeden Pixel einzeln auslesen, dann musst du sie nurnoch vergleichen und einordnern mit IF o.a.
Wenn du das auch für andere Formate benötigst musst du dir angucken wie sie Aufgebaut sind -
Moin Community,
Ich habe mal wieder eine Frage, und zwar wie kann ich ein Scroll-Balken benutzen? Mit den entsprechenden Styles kann ich ihn Anzeigen lassen aber das Scrollen geht nicht.
Wie muss ich das Konfigurieren o.a damit das Funktioniert?
Und Funktioniert das auch mit GDIPlus?Danke im Voraus
Spoiler anzeigen
[autoit]#include <GDIPlus.au3>
[/autoit] [autoit][/autoit] [autoit]$hGui1 = GUICreate ("Schoolfreak",800,600,Default,Default,0x00300000)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateInput ("Bla",700,100)GUISetState ()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_Startup ()
$hGrafic = _GDIPlus_GraphicsCreateFromHWND ($hGui1)
_GDIPlus_GraphicsDrawRect ($hGrafic,700,200,100,100)While 1
[/autoit]
Switch GUIGetMsg()
Case -3
Exit
EndSwitch
WEnd -
Sag das doch^^
Öhm ja, ich denke mal da gibt es keine Lösung jedenfalls nicht wnen du es über ProcessClose machst, vllt. dannst du dem Programm mitteilen das es sich schließen soll? Aber das im TrayMenü ist ja von Windows ein Fehler das es nicht weg geht, ist bei mir auch, ich denke da kannst du so nichts dran machen. Vllt. gibt es irgend einen Befehl o.a., dass das TrayMenü Updatet oder so.. -
Wie jetzt? Beendest du ein Externes Programm und das Icon diese Programms soll verschwinden, nicht dein Script?
-
Warum Benndest du das Script denn mit ProzessClose?
Spoiler anzeigen
[autoit]Opt ("TrayMenuMode",1)
[/autoit] [autoit][/autoit] [autoit]
$hEnde = TrayCreateItem ("Beenden")While 1
[/autoit]
Switch TrayGetMsg()
Case $hEnde
Exit
EndSwitch
WEnd -
Ich habe meine Bildschirme auf "Erweitern" gestellt
-
Hmm, leider Negativ, FUnktioniert nicht
-
Hmm komisch...
Welche Version von Autoit hast du denn?EDIT:
Ich habe es mal auf einem anderen PC probiert doch da ging es auch nicht, aber beide Computer hatten Multiscreen, dann habe ich mal in der VBox probiert, da ging es richtig, anscheined hat die Funktion einen Fehler bei Multisreensystemen -
Oh verdammt sorry, wollte ihn doch mitposten aber habs vergessen...ich sollte vllt langsam mal schlafen gehen
Hab ihn ihm ersten Post hinzugefügt