Also es gibt definitiv mehrere Fenster, die mit 'Handwerker Client' beginnen.
Dann musst du Autoit irgendwie beibringen, welches Fenster es verwenden soll. Dafür ist eigentlich der zweite Parameter bei ControlGetText gedacht. Mit dem Info-Tool erhälst du auch den Visible Text eines Fensters, und den (oder einen Teil davon) gibt man ControlGetText als 2. Parameter ('text') mit. Ich hoffe, dass man die Fenster durch diesen Text unterscheiden kann.
Beiträge von funkey
-
-
Das wäre bedeutend einfacher, aber eine Frage habe ich noch: Gibt es auf dem Rechner vllt mehrere fenster mit dem Namen 'Handwerker Client' ? Das würde einiges erklären.
Autoit würde dann das am weiten liegende 'Handwerker Client'-Fenster nach den Controls durchsuchen, wenn es das falsche Fenster ist, dann kommt natürlich nichts. -
Das glaube ich nicht gern. Entweder es geht oder es geht nicht. Wenn es schon einmal gegangen ist, dann muss es auch einen Weg geben, dass es konstant richtige Werte ausliest, aber ich weiß nun keinen Rat mehr.
-
Suchfunktion benützen
: [ offen ] Wo sind ö/ä/ü bei _IsPressed? -
Hab was gefunden. Ob es so funktioniert wie es soll weiß ich nicht.
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$sMsg = ""
$aNames = _MoniterEnumNames ()
For $x = 1 To $aNames[0]
$nState = _MoniterGetState ($aNames[$x])
Select
Case $nState = 17
$sMsg &= @TAB & "- Power Save - Warning (The device is in a warning state, though also in a power save mode.)" & @CR
Case $nState = 16
$sMsg &= @TAB & "- Power Cycle" & @CR
Case $nState = 15
$sMsg &= @TAB & "- Power Save - Standby (The device is not functioning, but could be brought to full power quickly.)" & @CR
Case $nState = 14
$sMsg &= @TAB & "- Power Save - Low Power Mode (The device is in a power save state but still functioning, and may exhibit degraded performance.)" & @CR
Case $nState = 13
$sMsg &= @TAB & "- Power Save - Unknown (The device is known to be in a power save mode, but its exact status is unknown)" & @CR
Case $nState = 12
$sMsg &= @TAB & "- Install Error" & @CR
Case $nState = 11
$sMsg &= @TAB & "- Not Installed" & @CR
Case $nState = 10
$sMsg &= @TAB & "- Degraded" & @CR
Case $nState = 9
$sMsg &= @TAB & "- Off Duty" & @CR
Case $nState = 8
$sMsg &= @TAB & "- Off Line" & @CR
Case $nState = 7
$sMsg &= @TAB & "- Power Off" & @CR
Case $nState = 6
$sMsg &= @TAB & "- Not Applicable" & @CR
Case $nState = 5
$sMsg &= @TAB & "- In Test" & @CR
Case $nState = 4
$sMsg &= @TAB & "- Warning" & @CR
Case $nState = 3
$sMsg &= @TAB & "- Running or Full Power" & @CR
Case $nState = 2
$sMsg &= @TAB & "- Unknown" & @CR
Case $nState = 1
$sMsg &= @TAB & "- Other" & @CR
EndSelect
MsgBox (0, "Display Results", "Moniter Name = " & $aNames[$x] & @CR & _
"Moniter State = " & $nState & @CR & _
"Moniter State Meaning: " & @CR & $sMsg)
NextFunc _MoniterGetState($name)
[/autoit] [autoit][/autoit] [autoit]
Local $cI_CompName = @ComputerName
Local $wbemFlagReturnImmediately = 0x10;DO NOT CHANGE
Local $wbemFlagForwardOnly = 0x20;DO NOT CHANGE
$objWMIService = ObjGet("winmgmts:\\" & $cI_CompName & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DesktopMonitor", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) Then
For $objItem In $colItems
ConsoleWrite ($objItem.Name & @CRLF)
If $name = $objItem.Name Then
Return $objItem.Availability
EndIf
Next
EndIf
Return -1
EndFunc ;==>_MoniterGetStateFunc _MoniterEnumNames ()
[/autoit]
Local $cI_CompName = @ComputerName
Local $wbemFlagReturnImmediately = 0x10;DO NOT CHANGE
Local $wbemFlagForwardOnly = 0x20;DO NOT CHANGE
Local $i = 1
Local $rArray[1]
$objWMIService = ObjGet("winmgmts:\\" & $cI_CompName & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_DesktopMonitor", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) Then
For $objItem In $colItems
ReDim $rArray[$i + 1]
$rArray[$i] = $objItem.Name
$i += 1
Next
EndIf
$rArray[0] = UBound ($rArray) - 1
Return $rArray
EndFunc -
Kann es sein, dass sich die Instanznummer der Controls ändern? Dann müsstest du die Controls über ihre Position und Größe ansprechen
[autoit]Local $TPanel2 = ControlGetText('Handwerker Client', '', "[CLASS:TPanel; X:11; Y:11; W:528; H:20]")
[/autoit]Die Koordinaten musst du dir mit dem Window Info Tool holen.
-
Welchen Player willst du verwenden? Welche Dateiformate?
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 629, 442, 186, 125)
$Player = ObjCreate("WMPlayer.OCX")
$Obj1_ctrl = GUICtrlCreateObj($Player, 10, 10, 400, 200)$Dein_Video = 'test-video.wmv'
[/autoit] [autoit][/autoit] [autoit]
$Dein_Video = 'http://wstreaming.zdf.de/encoder/livestream6_h.asx'With $Player
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
.fullScreen = True
.windowlessVideo = True
.stretchToFit = True
.enableContextMenu = True
.enabled = True
.uiMode = "full"; none / mini full
.settings.autostart = True
.settings.mute = False
.settings.volume = 100; 0 - 100
.settings.Balance = 0; -100 to 100
EndWith$oMedia = $Player.newMedia($Dein_Video)
[/autoit] [autoit][/autoit] [autoit]
$Player.currentPlaylist.appendItem($oMedia)
$Player.controls.play()
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd -
Ich dachte du hättest schon mehr!? Aber wichtig ist nur, dass es funktioniert, oder?
[autoit]Local $TPanel1 = ControlGetText("Handwerker Client", '', "[CLASS:TPanel; INSTANCE:1]")
[/autoit][autoit][/autoit][autoit]
Local $TPanel2 = ControlGetText('Handwerker Client', '', "[CLASS:TPanel; INSTANCE:2]")If $TPanel1 < $TPanel2 Then
[/autoit]
MsgBox(48, "Warnung", "Auftragssumme nicht ausgefüllt oder zu groß!")
Else
MsgBox(64, "OK", "Die Auftragssumme von "& $TPanel1 &" € ist OK!")
EndIfVerwende die Autoit-Tags, wenn du Code einfügst. [Blockierte Grafik: http://www.autoit.de/wcf/icon/wysiwyg/insertAutoItM.png] [ autoit]Das ist dein Code[ /autoit]
-
Natürlich ist das möglich, wenn du deinen Code posten würdest, dann hätte man es dir schon längst eingebaut.
[autoit]
MsgBox(64, "OK", "Auftragssumme OK!"&@CRLF&$Die_ausgelesene_Zahl)
[/autoit] -
Für den Anfang ganz nett
, aber du hast da noch ein paar Fehler drinn. Du erstellst alle 100 ms ein neues Label --> das ist nicht gut --> wenn das Programm länger läuft, dann kann es abstürzen. Außerdem flackert die Farbanzeige bei dirAusgebesserte Version
[autoit]#cs ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.0.0
[/autoit] [autoit][/autoit] [autoit]
Author: CryfallScript Function:
[/autoit] [autoit][/autoit] [autoit]
Template AutoIt script.#ce ----------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]; Script Start
[/autoit] [autoit][/autoit] [autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]
Opt("SendKeyDelay", 1) ;5 milliseconds
Opt("SendKeyDownDelay", 1) ;1 millisecondHotKeySet("{f1}","freeze")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{f2}","einfg")
TrayTip("Hotkeys", "F1 = Freezen und Entfreezen und F2 = Den aktuellen Farbcode einfügen", 5)Global $on = True
[/autoit] [autoit][/autoit] [autoit]$mouse = MouseGetPos()
[/autoit] [autoit][/autoit] [autoit]
Global $color = PixelGetColor($mouse[0], $mouse[1]), $color_Old
$hexcolor = Hex($color, 6)$mainwindow = GUICreate("Farbcode", 70, 25, @DesktopWidth -75, 0, Default, 0x88)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")Global $Farbe = GUICtrlCreateLabel("#" & $hexcolor, 12, 7)
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
Sleep(100)
If $on = True Then
$mouse = MouseGetPos()
$color = PixelGetColor($mouse[0], $mouse[1])
If $color <> $color_Old Then
$hexcolor = Hex($color, 6)
GUICtrlSetData($Farbe, "#" & $hexcolor)
EndIf
$color_Old = $color
EndIf
WEnd
Func CLOSEClicked()
GUIDelete()
TrayTip("by Cryfall", "cryfall.funpic.de", 5)
;~ Sleep(5000)
Exit
EndFunc
Func freeze()
If $on = True Then
$on = False
ElseIf $on = False Then
$on = True
EndIf
EndFunc
Func einfg()
Send($hexcolor)
EndFunc -
Du willst also zuzusagen Dateien patchen. Ich weiß nicht, ob ich (wir) das hier unterstütze(n). Vllt meldet sich ja mal ein Mod oder Admin hier in diesem Thread und sagt was Sache ist. Ich meinerseits würde dir zu diesem thema nicht weiterhelfen.
-
Diese UDF gefällt mir sehr gut! Hab zwar noch nie so etwas gebraucht, aber man weiß ja nie.

-
Ich hab deine Frage jetzt nicht ganz verstanden. Was willst du genau erreichen?
-
Und wenn er ausgeschaltet ist, dann soll eine MsgBox kommen, oder wie?

Wofür braucht man sowas?
-
Mit ein bischen Hilfe von uns kannst du das bestimmt auch alleine schaffen. Die Funktionen die du willst dürften kein Problem sein zu realisieren.
Versuch mal einen Anfang für das Skript zu finden und dann poste es unter 'Hilfe & Unterstützung'.Wie das mit PHP aussieht kann ich dir leider nicht sagen.
-
Für was für ein Programm brauchst du das und warum? Diese Art von Frage hat nämlich häufig mit Spielen (Bots) zu tun.
-
[autoit]
_IEFormGetCollection($oIE, 0)
[/autoit]Damit bekommst du die Form ohne Namen, siehe auch Hilfe-Beispiel dazu.
-
@GHOST SKIKDA: Ich versteh kein Wort


-
Unter XP kein Problem: Eigenschaften von Anzeige (Desktop Rechtsklick, Eigenschaften), Designs, Windows - klassisch
Unter Vista oder so --> k.A. -
Wie meinst du das? Standard-XP-Ansicht? Der Link ist glaub ich nicht der Richtige.