Ich hatte das auch per WinHttp versucht, allerdings kam da ein anderer Hash raus und ich habs gelassen.
Ging sehr viel einfacher mit der IE.au3.
Beiträge von alpines
-
-
Kenne mich mit Javascript kaum aus, hab mich nur auf die IE Befehle verlassen.
-
Geht anscheinend nicht, kriege auch eine 0 raus. Dann musst du wohl inputs verwenden.
-
Das liegt daran weil der Pfad falsch ist. Versuch mal folgendes.
[autoit]_IENavigate($oIE, "file://rechnung.html")
[/autoit]So gehts auf jeden Fall.
[autoit]#include <IE.au3>
[/autoit][autoit][/autoit][autoit]$oIE = _IECreateEmbedded()
[/autoit][autoit][/autoit][autoit]
$Form1 = GUICreate("Form1", 615, 437, 192, 124)
GUICtrlCreateObj($oIE, 0, 0, 611, 433)
GUISetState(@SW_SHOW)_IENavigate($oIE, "file://C:\Users\DeinUserName\Desktop\index.html")
[/autoit][autoit][/autoit][autoit]While 1
[/autoit][autoit][/autoit][autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
ExitEndSwitch
[/autoit]
WEndUnd in der index.html steht folgendes
.
-
Am besten nimmst du als Objekt einen embedded IE. Da gibt es viele Befehle womit du das machen kannst.
[autoit]
Du musst allerdings im HTML-Dokument id="vorname" hinzufügen.#include <IE.au3>
[/autoit][autoit][/autoit][autoit]
$oIE = _IECreateEmbedded()
$oObj = GUICtrlCreateObj($oIE, ...)$oVorname = _IEGetObjById($oIE, "vorname")
[/autoit]
$sVorname = _IEFormElementGetValue($oVorname) -
Das ist leider nicht das gleiche. Es ist ein Unterschied ob ich 1000x Down drücke oder ich eine Sekunde lang Down halte.
-
Sind die drei Zeilen dein gesamtes Script, oder enthältst du uns etwas vor?
// Bei mir funktionierts auch nicht, verwendest du auch Win 8.1? -
Crosspost: forum/autoit/3579149-taste-gedr-ckt-halten.html
Wo hast du denn versucht die unten Taste gedrückt zu halten?
-
Den Bug hab ich auch während der Entwicklung bemerkt, ich hab keine Ahnung wo das Problem liegt, aber es passiert nur wenn der Klotz am Rand ist und man senkrecht darauf zusteuert.
-
Ich hab die 3.3.12.0 und einen Full HD Monitor und es läuft ohne Probleme.
An die Leute die keinen Full HD Monitor haben aber es trotzdem verwenden möchten: Nvidia bspw. bietet im Treiber Downsampling an. Dort wird Full HD vorgerendert und auf die wirkliche Größe verkleinert.
-
_WinAPI_GetWindowHeight() und _WinAPI_GetWindowWidth().
WinGetPos auch, dann muss man nicht die WinAPI.au3 includen. -
Das ist ja mal richtig produktiv... An der UDF liegt es nicht, die verwende ich selber und alles ist tip top. Erstelle doch mal bei deinem Mailanbieter wo es nicht funktioniert einen Testaccount und trage die Daten hier ein.
-
Halli hallo,
da ich mir vor einer Weile einen Mikrocontroller bestellt habe auf dem ich kleine Spiele spielen möchte (mit einer 9x14 LED-Matrix und 4x4 Keypad-Matrix) habe ich hier Snake gecodet.
Ich wollte es so einfach wie möglich halten damit ich den Code für das Board übernehmen kann.Feedback ist gerne gesehen!
AutoIt
Alles anzeigen#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> Opt("GUIOnEventMode", 1) Global $hDLL = DllOpen("user32.dll") Local $iScale = 15 Local $aDimensions = StringSplit(InputBox("Size", "Field size:", "20x20"), "x", 2) Local $aControls[$aDimensions[0]][$aDimensions[1]] Local $aPlayerPosition[2][3] = [[3, 2], [3, 3, "down"]] Local $iIncX = 0, $iIncY = 1 Local $aBonbon[2] Local $aOldPosition[2] = [$aPlayerPosition[0][0], $aPlayerPosition[1][1]] Local $iScore = 0 $bEscape = False While Not $bEscape $x = Random(0, $aDimensions[0] - 1, 1) $y = Random(0, $aDimensions[1] - 1, 1) $bEscape = True For $i = 0 To UBound($aPlayerPosition) - 1 If $aPlayerPosition[$i][0] = $x or $aPlayerPosition[$i][1] = $y Then $bEscape = False Next WEnd $aBonbon[0] = $x $aBonbon[1] = $y GUICreate("Snake", $aDimensions[0] * $iScale, $aDimensions[1] * $iScale, -1, -1) For $y = 0 To $aDimensions[1] * $iScale - 15 Step $iScale For $x = 0 To $aDimensions[0] * $iScale - 15 Step $iScale $aControls[$x / $iScale][$y / $iScale] = GUICtrlCreateLabel("", $x, $y, $iScale, $iScale) GUICtrlSetBkColor(-1, 0) Next Next GUICtrlSetBkColor($aControls[$aPlayerPosition[0][0]][$aPlayerPosition[0][1]], 0x00FF00) GUICtrlSetBkColor($aControls[$aPlayerPosition[1][0]][$aPlayerPosition[1][1]], 0x00FF00) GUICtrlSetBkColor($aControls[$aBonbon[0]][$aBonbon[1]], 0x00FF00) GUISetOnEvent(-3, "_Exit") GUISetState(@SW_SHOW) While 1 $sButton = _Sleep(200) $aOldPosition[0] = $aPlayerPosition[0][0] $aOldPosition[1] = $aPlayerPosition[0][1] If $sButton = "26" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "down" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "up" Then $aPlayerPosition[UBound($aPlayerPosition) - 1][2] = "up" $iIncY = -1 $iIncX = 0 ElseIf $sButton = "25" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "right" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "left" Then $aPlayerPosition[UBound($aPlayerPosition) - 1][2] = "left" $iIncX = -1 $iIncY = 0 ElseIf $sButton = "27" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "left" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "right" Then $aPlayerPosition[UBound($aPlayerPosition) - 1][2] = "right" $iIncX = 1 $iIncY = 0 ElseIf $sButton = "28" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "up" and $aPlayerPosition[UBound($aPlayerPosition) - 1][2] <> "down" Then $aPlayerPosition[UBound($aPlayerPosition) - 1][2] = "down" $iIncY = 1 $iIncX = 0 EndIf For $i = 0 To UBound($aPlayerPosition) - 1 If $aPlayerPosition[UBound($aPlayerPosition) - 1][0] + $iIncX = $aPlayerPosition[$i][0] and $aPlayerPosition[UBound($aPlayerPosition) - 1][1] + $iIncY = $aPlayerPosition[$i][1] Then _Exit() Next If $aPlayerPosition[UBound($aPlayerPosition) - 1][0] + $iIncX = $aBonbon[0] and $aPlayerPosition[UBound($aPlayerPosition) - 1][1] + $iIncY = $aBonbon[1] Then ReDim $aPlayerPosition[UBound($aPlayerPosition) + 1][3] $aPlayerPosition[UBound($aPlayerPosition) - 1][0] = $aBonbon[0] $aPlayerPosition[UBound($aPlayerPosition) - 1][1] = $aBonbon[1] $aPlayerPosition[UBound($aPlayerPosition) - 1][2] = $aPlayerPosition[UBound($aPlayerPosition) - 2][2] If UBound($aPlayerPosition) = $aDimensions[0] * $aDimensions[1] Then MsgBox(64, "Congratulations", "Good job, you beat the game!") Exit EndIf $bEscape = False While Not $bEscape $x = Random(0, $aDimensions[0] - 1, 1) $y = Random(0, $aDimensions[1] - 1, 1) $bEscape = True For $i = 0 To UBound($aPlayerPosition) - 1 If $aPlayerPosition[$i][0] = $x or $aPlayerPosition[$i][1] = $y Then $bEscape = False Next WEnd $aBonbon[0] = $x $aBonbon[1] = $y GUICtrlSetBkColor($aControls[$aBonbon[0]][$aBonbon[1]], 0x00FF00) $iScore += 1 Else For $i = 1 To UBound($aPlayerPosition) - 1 $aPlayerPosition[$i - 1][0] = $aPlayerPosition[$i][0] $aPlayerPosition[$i - 1][1] = $aPlayerPosition[$i][1] Next $aPlayerPosition[UBound($aPlayerPosition) - 1][0] = $aPlayerPosition[UBound($aPlayerPosition) - 2][0] + $iIncX $aPlayerPosition[UBound($aPlayerPosition) - 1][1] = $aPlayerPosition[UBound($aPlayerPosition) - 2][1] + $iIncY EndIf If $aPlayerPosition[UBound($aPlayerPosition) - 1][0] < 0 or $aPlayerPosition[UBound($aPlayerPosition) - 1][0] > $aDimensions[0] - 1 or $aPlayerPosition[UBound($aPlayerPosition) - 1][1] < 0 or $aPlayerPosition[UBound($aPlayerPosition) - 1][1] > $aDimensions[1] - 1 Then _Exit() For $i = 0 To UBound($aPlayerPosition) - 1 GUICtrlSetBkColor($aControls[$aPlayerPosition[$i][0]][$aPlayerPosition[$i][1]], 0x00FF00) Next GUICtrlSetBkColor($aControls[$aOldPosition[0]][$aOldPosition[1]], 0) WEnd Func _Sleep($iMs) Local $hTimer = TimerInit() Local $sKey = "" While TimerDiff($hTimer) < $iMs $sKey = _IsPressed("26", $hDLL) ? "26" : _IsPressed("25", $hDLL) ? "25" : _IsPressed("27", $hDLL) ? "27" : _IsPressed("28", $hDLL) ? "28" : $sKey WEnd Return $sKey EndFunc Func _Exit() MsgBox(64, "Oops!", "You failed!" & @CRLF & "Score: " & $iScore) Exit EndFunc
Wer will kann es auch gern über den Anhang herunterladen.
-
Ich sollte das beim nächsten Male besser lesen...
Die Variablen die du mit GUICtrlRead da erstellst sind keinenReferenz. D.h. wenn du den aktuellen Text vom Control auslesen willst, musst du immer GUICtrlRead verwenden. Einmal reicht da nicht.
-
-
Ich geb' mal meinen Senf hier mit zu in der Hoffnung das das auch umgesetzt wird.
Du kannst mit der Bass-UDF Beats messen bzw. erkennen. Ich wünsche mir das du eine Funktion einbaust die die Beats zweier Lieder (beim Übergang) übereinander legt und dann langsam rüberfadet.
Das hört sich um Welten besser an als erstmal den Beat auslaufen zu lassen und bei einem anderen Lied wieder einlaufen zu lassen.Wäre super wenn du das umsetzen kannst. Beat-Erkennung gibt es als Beispiel irgendwo im Internet.
-
Das liegt daran das du das Handle von dem Input verwendest und nicht den Inhalt.
[autoit]GUICtrlRead($Input1)
[/autoit] -
Ich hab den Post vorhin noch editiert, hast du versucht das ganze mal zu starten? CMD?
-
Schau mal ob du mit Dependency Walker Funktionen findest die du callen kannst. Eine andere Methode wäre noch zu versuchen ob die die .dll einfach in .exe umbenennen und dann starten kannst. Einige DLL-Dateien sind eigentlich Exe-Dateien. Bzw. starte sie in der CMD mit
damit die Funktionalität im Kontextmenu nicht verloren geht.
-
Du sollst ja auch keine neuen Einträge erstellen sondern nur wissen das das geht.
Daraus kannst du folgern das dort die Einträge sein müssen die im Kontextmenu enthalten sind.
Und daraus kannst du dann dein Programm schreiben.Den RegQueries kann ich entnehmen das von Desktop Restore die dkticnsr.dll gecalled wird.
Allerdings sehe ich keine Parameter oder ähnliches. Gibt es keine Dokumentation zu der DLL?