Ich gebe den Thread frei.
Meines Erachtens eine reine Automatisierung, die keinerlei Vorteile im Spiel verschafft. Also eigentlich eine Anwendung von AutoIt ganz in den ursprünglichen Wurzeln von AutoIt.
Beiträge von BugFix
-
-
Die Zahl der User die eigentlich gebleiben wären sinkt.
Das sehe ich nicht so.
Aktive User sind es ca. 200. Ich checke das in Intervallen, indem ich die User mit > 100 Posts anschaue und wer davon innerhalb der letzten 3 Monate auch online war. Es pendelt immer um 200. Und das sind die Leute, mit denen wir auch gern zusammen arbeiten.
-
Es passiert nun das, was ich befürchtet habe: Die räudige Bot-Diskussion kommt wieder hoch. :wacko:
Es ist schwierig festzustellen, ob ein Thread Botpotential hat oder nicht. Ich versuche da recht moderat mit umzugehen und gebe Themen frei, solange sie nicht eineindeutig gegen die Regeln verstoßen. Sollte sich später trotzdem etwas in die falsche Richtung bewegen, wird dann eingegriffen.
Da wir alle individuell verschieden sind, können unsere Standpunkte und Verfahrensweisen durchaus auch differenzieren. Das sehe ich jedoch nicht als so dramatisch an. Mag auch ab und an etwas Ärger aufkommen über einige Entscheidungen.Eines sollte aber immer bedacht werden:
Eine von vornherein klare, sauber formulierte Fragestellung schützt auch vor Fehlinterpretationen unsererseits!Ich bitte auch all jene, die sich evtl. ungerecht behandelt fühlen, auch mal bei Mods/Admins nachzufragen ob das denn so OK war. Keiner von uns ist vor Fehlentscheidungen gewappnet. Und wir brechen uns keinen dabei ab, dieses auch zuzugeben, wenn dem so ist.
Das bezieht sich allerdings nicht auf Entscheidungen, die klare Regelverstöße als Hintergrund haben und auch als solche deutlich erkennbar sind. Wer dann nochmal nachfragt ist echt zu heiß gebadet.
-
Meiner Meinung nach ist es entscheidend, in welcher Einheit a,b,c,d vorliegen (kg, m², m³, etc.). Denn von diesen Einheiten ausgehend kannst du kleinste Teilmengen festlegen und diese zur Berechnung heranziehen. Mit reinen Prozenten rechnen ist nicht sehr sinnvoll.
Du gehst dann denn umgekehrten Weg von einer Kombination möglicher Teilmengen zur gewünschten Gesamtmenge. Somit bleiben Fehlmengen durch Rundungsdifferenzen außen vor. -
Ich halte das System für sehr sinnvoll. Wie Pee bereits sagte, ist vorab filtern effizienter als hinterher zu säubern.
Vielleicht ist es technisch umsetzbar, dass diese Beiträge einen Status "in Moderation" erhalten, der für alle ersichtlich ist. Dann ist dem Threadersteller klar, dass dort noch drübergeschaut werden muß.
Ich versuche immer, wenn ich neue Beiträge zur Moderation sehe, dieses auch zügig zu erledigen. Und ich denke, das tun alle Mods und PU's. Insofern sehe ich keinen Handlungsbedarf bezüglich Fristen oder Anzahl Threads.P.S. Dass wir zur Zeit recht wenig Bot-Probleme haben dürfte durchaus ein Erfolg dieses Systems sein.
-
Hier eine Lösung. Solange das Fenster aktiv ist funktioniert die Tastatur. Will man tricksen und z.B. mit Alt+Tab rausspringen, so geht das - aber hinterher ist keine Tastatureingabe mehr möglich.

Die Maus ist im Eingabefenster gefangen. Durch den Popup-Style läßt sich dieses auch nicht verschieben.Spoiler anzeigen
[autoit]#include <WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>
#Include <Misc.au3>OnAutoItExitRegister('OnAutoItExit')
[/autoit] [autoit][/autoit] [autoit]Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]
Global $hStub_KeyProc = DllCallbackRegister("_KeyProc", "long", "int;wparam;lparam")
Global $hmod = _WinAPI_GetModuleHandle(0)
Global $hHook = _WinAPI_SetWindowsHookEx($WH_KEYBOARD_LL, DllCallbackGetPtr($hStub_KeyProc), $hmod)
Global $active = FalseGlobal $gui
[/autoit] [autoit][/autoit] [autoit]
_Main()Func _Main()
[/autoit] [autoit][/autoit] [autoit]
Local $input, $btn, $pos, $sRead, $sPass = 'Passwort'
$gui = GUICreate('Passwort Eingabe', 180, 70, -1, -1, $WS_POPUP)
$input = GUICtrlCreateInput('', 10, 10, 160, 20)
$btn = GUICtrlCreateButton('OK', 10, 40, 40, 20)
GUISetState()$pos = WinGetPos($gui)
[/autoit] [autoit][/autoit] [autoit]
_MouseTrap($pos[0], $pos[1], $pos[0] + $pos[2], $pos[1] + $pos[3])While 1
[/autoit] [autoit][/autoit] [autoit]
If BitAND(WinGetState($gui),
Then
$active = True
Else
$active = False
EndIf
Switch GUIGetMsg()
Case $btn
$sRead = GUICtrlRead($input)
If $sRead == $sPass Then
_Exit()
Else
GUICtrlSetData($input, '')
EndIf
EndSwitch
WEnd
EndFuncFunc _Exit()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFunc;===========================================================
[/autoit] [autoit][/autoit] [autoit]
; callback function
;===========================================================
Func _KeyProc($nCode, $wParam, $lParam)
If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
If Not $active Then Return -1 ; Tastatureingabe außerhalb Input unmöglich
Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
EndFuncFunc OnAutoItExit()
[/autoit]
_WinAPI_UnhookWindowsHookEx($hHook)
DllCallbackFree($hStub_KeyProc)
EndFunc -
Das ist ganz simpel:
- Ist dein Thread "sauber" (kein Verstoß gegen unsere Forenregeln), wird er aktiviert.
- Verstößt du damit gegen die Regeln, wird der Thread gelöscht und du bekommst (je nach Grad des Verstoßes) nur 'ne PN oder was auf die Ohren (Verwarnung).
"Regeln kenne ich nicht" - lassen wir nicht gelten. Denen stimmt jeder bei der Anmeldung zu.Erwarte aber nicht, dass wir hier nur auf der Lauer liegen um Threads freizuschalten.
Es kann durchaus auch mal etwas dauern. Etwas Geduld ist also nicht die schlechteste Lösung. 
-
Mal aus der Hüfte, ungetestet:
Spoiler anzeigen
[autoit]Func _WriteTimeToCell($sExcelPath, $sDate, $iTime)
[/autoit]
If StringRight($sExcelPath, 4) <> '.xls' Then $sPath &= '.xls'
If Not FileExists($sExcelPath) Then Return SetError(1,0,0) ; Datei existiert nicht
Local $oExcel = ObjGet('', "Excel.Application"), $fCreate = False, $address, $value
If @error Then
$oExcel = ObjCreate("Excel.Application")
$fCreate = True
EndIf
With $oExcel
.Visible = 0
.Workbooks.Open($sExcelPath)
$match = .ActiveWorkBook.Sheets(1).Range('A:A').Find($sDate)
.Application.DisplayAlerts = False
If Not IsObj($match) Then
If $fCreate Then
.Application.Quit
Else
.ActiveWorkBook.Close
.Application.DisplayAlerts = True
EndIf
Return SetError(2,0,0) ; $sDate nicht gefunden
EndIf
$address = $match.Address(False, False)
$value = .ActiveWorkBook.Sheets(1).Range($address).Offset(0, 1).Value
.ActiveWorkBook.Sheets(1).Range($address).Offset(0, 1).Value = $value +$iTime
.ActiveWorkBook.Save
If $fCreate Then
.Application.Quit
Else
.ActiveWorkBook.Close
.Application.DisplayAlerts = True
EndIf
EndWith
Return 1
EndFunc -
Nicht wenn sein skript das Feld anklickt und er garnicht dabei ist.
:wacko: Ein Skript, das Excel-Zellen anklickt?! Das wäre ja, als ob man sich die Schuhe mit 'nem Spannkloben zubindet.
Sag lieber mal, was es überhaupt werden soll, dann läßt sich auch sinnvolle Hilfestellung geben. -
Hi,
ich versuche krampfhaft einem Excel-Sheet die Property:
Visible = xlSheetVeryHidden
zu verpassen. Doch leider ohne Erfolg. Über das VBA-Interface (Alt+F11) kann ich das tadellos ausführen.
Jemand 'ne Idee?Spoiler anzeigen
[autoit]$oExcel = ObjCreate("Excel.Application")
[/autoit] [autoit][/autoit] [autoit]
With $oExcel
.SheetsInNewWorkbook = 1
.Visible = 1
.WorkBooks.Add
.Workbooks.Sheets(1).Visible = 2 ; funzt nicht ($xlSheetVeryHidden = 2)
EndWith; auch diese Version tuts nicht
[/autoit]
$oExcel = ObjCreate("Excel.Application")
With $oExcel
.SheetsInNewWorkbook = 1
.Visible = 1
.WorkBooks.Add.Activate
.ActiveWorkbook.Sheets(1).Visible = 2 ; funzt nicht ($xlSheetVeryHidden = 2)
EndWith -
Jeder der den Quellcode haben möchte kann sich bei mir Melden...
Du hast ja eine abartige Vorstellung von Open Source. Vielleicht verlangst du dann noch eine Versandkostenpauschale. 
Ich rate dir mal dringend, die Definition von Open Source nachzulesen. -
Verwende doch ein Wertesystem, das jeder Kombination einen fixen Wert zuweist. Dann brauchst du nur diesen einen Wert abgleichen.
-
Ich glaub, ich hab ein generelles Verständnisproblem bei einigen Fragestellungen. Das ist teilweise so wischiwaschi formuliert, dass man mehrere Rechnungswege testen muß um dann herauszufinden, welches die Aufgabe war.

(Hab 9 ausgelassen - mag keine Geometrie
und bin grad bei 11)Zitatdass man z.b nr 9 auch wunderbar durch nachdenken hinbekommt
Das ist eigentlich nicht Sinn der Sache. Du sollst ja einen Alghoritmus finden, mit dem die Aufgabe rechnerisch gelöst wird. "Nachdenken" im Sinne von im Kopf Ergebnisvarianten kombinieren, kann zwar auch zum Ziel führen, liegt aber nicht im Sinne des Erfinders.

-
Es geht wohl eher um die geraden Zahlen der Fibonacci-Reihe!
Das kommt aber auch nicht hin. Dann würde die Aufgabe lauten: Summe aller geradzahligen Fibonacci-Elemente, wobei die Summe 4.000.000 nicht überschreiten darf.
Geradzahlig Elemente mit Summe < 4 Mio sind: 2,8,34,144,610,2584,10946,46368,196418,832040 = 1.089.154 (nä. geradzahlig wäre 3.524.578 - somit drüber)
Das Ergebnis wird aber als falsch gewertet.Edit: Die Fragestellung ist absolut mißverständlich. Da die Briten wohl zu faul sind Kommata zu verwenden, kann das "which" sowohl auf die Summe als auch auf das Einzelelement bezogen werden. Gemeint ist in diesem Fall das Einzelelement.
Wie sagte Asterix so treffend: "Die spinnen, die Briten."
-
Ja, ist nicht schlecht. Ich finde aber z.B. schon Aufgabe 2 recht spaßig. Soll ich rechnen oder schätzen? "even-valued terms" würde ich als: "noch geschätzte Ausdrücke" übersetzen. Somit finde ich in dort keine sinnvolle Fragestellung.

-
Die Textgröße kannst du genau bestimmen mit meinem Tool TextMeter.
Aber einfacher ist es das Label von vornherein in der Größe des längsten Eintrages zu erstellen. Den Platz mußt du sowieso frei halten, wenn du die Größe dynamisch anpassen willst. -
Das hier ist der beste Beweis: "Internet vergisst nichts"

Kaum lass ich mal unkontrollierte Gedanken meine Lippen passieren, wird gleich alles dokumentiert. :wacko:Erweiterung für die Anmeldehinweise bei neuen Usern empfohlen:
Code"Du hast das Recht in der SB zu schweigen. Solltest du auf dieses Recht verzichten kann und wird alles, was du dort von dir gibst, mit Sicherheit gegen dich verwendet werden."
Sammel mal schön weiter.

-
Das schreit doch eigentlich nach Dictionary-Objekt.

Spoiler anzeigen
[autoit]$oCapitals = ObjCreate("Scripting.Dictionary")
[/autoit] [autoit][/autoit] [autoit]$oCapitals.Add("Belgien", "Brüssel")
[/autoit] [autoit][/autoit] [autoit]
$oCapitals.Add("Deutschland", "Berlin")
$oCapitals.Add("Frankreich", "Paris")
$oCapitals.Add("Italien", "Rom")
$oCapitals.Add("Luxemburg", "Luxemburg")
$oCapitals.Add("Niederlande", "Amsterdam")
$oCapitals.Add("Dänemark", "Kopenhagen")
$oCapitals.Add("Irland", "Dublin")
$oCapitals.Add("England", "London")
$oCapitals.Add("Griechenland", "Athen")
$oCapitals.Add("Protugal", "Lissabon")
$oCapitals.Add("Spanien", "Madrid")
$oCapitals.Add("Finnland", "Helsinki")
$oCapitals.Add("Österreich", "Wien")
$oCapitals.Add("Schweden", "Stockholm")
$oCapitals.Add("Estland", "Tallinn")
$oCapitals.Add("Lettland", "Riga")
$oCapitals.Add("Litauen", "Vilnius")
$oCapitals.Add("Malta", "Valletta")
$oCapitals.Add("Polen", "Warschau")
$oCapitals.Add("Slowakei", "Bratislava")
$oCapitals.Add("Slowenien", "Ljubljana")
$oCapitals.Add("Tschechien", "Prag")
$oCapitals.Add("Ungarn", "Budapest")
$oCapitals.Add("Zypern", "Nikosia")
$oCapitals.Add("Bulgarien", "Sofia")
$oCapitals.Add("Rumänien", "Bukarest")For $country In $oCapitals
[/autoit]
$Eingabe = InputBox ("EU Städte + Hauptstädte","Was ist die Hauptstadt von " & $country & "?")
If @error Or $Eingabe = '' Then ExitLoop
$capital = $oCapitals.Item($country)
If $Eingabe = $capital Then
MsgBox (0,"Richtig!","Die Hauptstadt von " & $country & " ist " & $capital & "!")
Else
MsgBox (0,"Falsch","Die Hauptstadt von " & $country & " war nicht " & $Eingabe & @CRLF & @CRLF & "Die Hauptstadt von " & $country & " war " & $capital & "!")
EndIf
Next -
Ich habe dafür nirgends eine Deklaration gefunden, als ich es mal brauchte. Hatte mir dann einfach $iCode in die Console ausgeben lassen - und bei Spaltenbreite ändern war dies dann -12.

-
Meinst du sowas?
Spoiler anzeigen
[autoit]; ver 3.2.12.1
[/autoit] [autoit][/autoit] [autoit]
#Include <WinAPI.au3>
#include <GUIConstantsEx.au3>
#include <StructureConstants.au3>
#include <WindowsConstants.au3>Global $GUI = GUICreate('Test Rotation')
[/autoit] [autoit][/autoit] [autoit]
GUICtrlCreateLabel('Text:', 10, 13, 50, 17)
Global $In = GUICtrlCreateInput('Hallo!', 70, 10, 150, 20)
Global $bt = GUICtrlCreateButton('Schreibe Text', 250, 10, 100, 20)
Global $btDel = GUICtrlCreateButton('Lösche Text', 250, 40, 100, 20)
GUICtrlCreateLabel('Pos. X:', 10, 43, 50, 17)
Global $inX = GUICtrlCreateInput('80', 70, 40, 30, 20)
GUICtrlCreateLabel('Pos. Y:', 110, 43, 50, 17)
Global $inY = GUICtrlCreateInput('280', 170, 40, 30, 20)
GUICtrlCreateLabel('Winkel:', 10, 73, 50, 17)
Global $inDeg = GUICtrlCreateInput('30', 70, 70, 30, 20)
GUICtrlCreateLabel('Höhe:', 110, 73, 50, 17)
Global $inSize = GUICtrlCreateInput('60', 170, 70, 30, 20)
GUICtrlCreateLabel('Breite:', 10, 103, 50, 17)
Global $inWeight = GUICtrlCreateInput('400', 70, 100, 30, 20)
GUICtrlCreateLabel('Font:', 110, 103, 50, 17)
Global $inFont = GUICtrlCreateInput('Comic Sans MS', 170, 100, 200, 20)
GUICtrlCreateGroup(' Stil ', 10, 130, 280, 40)
Global $rDef = GUICtrlCreateRadio('Standard', 15, 145, 65)
GUICtrlSetState(-1, $GUI_CHECKED)
Global $rIt = GUICtrlCreateRadio('Italic', 85, 145, 45)
Global $cbUn = GUICtrlCreateCheckbox('Underlined', 135, 145, 70)
Global $cbSt = GUICtrlCreateCheckbox('StrikeOut', 215, 145, 70)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateLabel('Farbe Schrift:', 10, 183, 80, 17)
Global $inCol = GUICtrlCreateInput('', 90, 180, 60, 20)
GUICtrlCreateLabel('Hintergrund:', 160, 183, 80, 17)
Global $inbCol = GUICtrlCreateInput('', 230, 180, 60, 20)GUISetState()
[/autoit] [autoit][/autoit] [autoit]
Global $RectDo
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
If $msg = $bt Then
Local $type = 1, $col = -1, $bkcol = -1
If BitAND(GUICtrlRead($rIt), $GUI_CHECKED) Then $type = 2
If BitAND(GUICtrlRead($cbUn), $GUI_CHECKED) Then $type += 4
If BitAND(GUICtrlRead($cbSt), $GUI_CHECKED) Then $type += 8
Local $readFont = GUICtrlRead($inFont)
If $readFont = '' Then $readFont = -1
Local $col = GUICtrlRead($inCol), $bkcol = GUICtrlRead($inbCol)
If $col = '' Then $col = -1
If $bkcol = '' Then $bkcol = -1
_WriteRotateText($GUI, GUICtrlRead($In), GUICtrlRead($inX), GUICtrlRead($inY), GUICtrlRead($inDeg), _
GUICtrlRead($inSize), GUICtrlRead($inWeight), $type, $readFont, $col, $bkcol)
ElseIf $msg = $btDel Then
_WinAPI_RedrawWindow($GUI)
EndIf
Until $msg = $GUI_EVENT_CLOSE;==================================================================================================
[/autoit]
; Function Name: _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize [, $iWeight=400 _
; [, $iType=1 [, $sFont=-1 [, $iCol=-1 [, $iBkCol=-1 [,$bRedraw=True]]]]]])
; Description: Schreibt einen Text mit bestimmtem Winkel in das angegebene Fenster
; Parameter(s): $hWnd Handle des Fensters
; $sWrite der zu schreibende Text
; $iX x-Position auf dem Fenster
; $iY y-Position auf dem Fenster
; $iDeg Rotationswinkel des Textes
; $iSize Höhe des Textes
; optional: $iWeight Fontbreite 0 - 1000 (Standard 400)
; optional: $iType Fonttyp 1=normal (Standard); 2=Italic; 4=Underline; 8=StrikeOut
; 1 oder 2 können mit 4 und 8 kombiniert werden (5;9 od. 6;10)
; optional: $sFont Fontname -1=Font der Form (Standard)
; optional: $iCol Fontfarbe -1=schwarz (Standard)
; optional: $iBkCol Hintergrundfarbe -1=Hintergrundfarbe des Fensters (Standard)
; optional: $bRedraw True=Fenster vorher neu zeichnen (vorige Beschriftung löschen - Standard)
; Requirement(s): #Include <WinAPI.au3>; #include <StructureConstants.au3>; #include <WindowsConstants.au3>
;==================================================================================================
Func _WriteRotateText($hWnd, $sWrite, $iX, $iY, $iDeg, $iSize, $iWeight=400, $iType=1, $sFont=-1, $iCol=-1, $iBkCol=-1, $bRedraw=True)
If $bRedraw Then _WinAPI_RedrawWindow($hWnd)
Local $tRect = DllStructCreate($tagRECT)
DllStructSetData($tRect, 'Left', $iX)
DllStructSetData($tRect, 'Top', $iY)
Local $rotate = $iDeg *10
If ($rotate = 900) Or ($rotate = 1800) Or ($rotate = 2700) Then $rotate += 1
Local $RotateMe = DllStructCreate($tagLOGFONT)
DllStructSetData($RotateMe, 'Escapement', $rotate)
DllStructSetData($RotateMe, 'Height', ($iSize * -20)/_WinAPI_TwipsPerPixelY())
If $iWeight <> 400 Then DllStructSetData($RotateMe, 'Weight', $iWeight)
If BitAND($iType, 2) Then DllStructSetData($RotateMe, 'Italic', True)
If BitAND($iType, 4) Then DllStructSetData($RotateMe, 'Underline', True)
If BitAND($iType,
Then DllStructSetData($RotateMe, 'StrikeOut', True)
If $sFont <> -1 Then DllStructSetData($RotateMe, 'FaceName', $sFont)
Local $rFont = _WinAPI_CreateFontIndirect($RotateMe)
Local $hDC = _WinAPI_GetDC($hWnd)
If $iCol <> -1 Then _WinAPI_SetTextColor($hDC, $iCol)
If $iBkCol <> -1 Then _WinAPI_SetBkColor($hDC, $iBkCol) ; wenn Transparenz gewünscht, Folgezeile aktivieren
;~ _WinAPI_SetBkMode($hDC, $TRANSPARENT)
_WinAPI_SelectObject($hdc, $rFont)
_WinAPI_DrawText($hDC, $sWrite, $tRect, BitOR($DT_NOCLIP,$DT_NOPREFIX))
_WinAPI_ReleaseDC($hWnd, $hDC)
EndFunc ;==>_WriteRotateTextMan muß sich ja nicht unbedingt mit GDI+ quälen.
