Hi!
Ich glaube, th.meger hatte zu Recht gesagt, dass es vermutlich nicht geht. Dir einzige Chance ist uns zu sagen, um welches Programm/Spiel es sich handelt und nach Möglichkeit einen Screenshot mitzuliefern...
peethebee
Hi!
Ich glaube, th.meger hatte zu Recht gesagt, dass es vermutlich nicht geht. Dir einzige Chance ist uns zu sagen, um welches Programm/Spiel es sich handelt und nach Möglichkeit einen Screenshot mitzuliefern...
peethebee
Hi!
#RequireAdmin führt dazu, dass dein Skript nachher auf jeden Fall mit Adminrechten läuft (also alles darf) - oder aber abgebrochen wird.
Der User wird nach den höhreren Rechten gefragt, wenn er sie nicht schon besitzt.
peethebee (Vista)
Hi!
Keks angenommen
Könnte zwar nicht hundertprozentig erklären, warum es scheitert, aber wenn es jetzt läuft ist es ja wunderbar.
Ein Hinweis noch: Ich würde die Zeiten sinnvoll runden...
Ebenso schönes Wochenende,
peethebee
Hi!
Wie ich zu sehen glaube, bricht er am Zeichen & ab, das ja in AutoIt an manchen Stellen eine Sonderbedeutung hat. Verwende mal stattdessen "und", vielleicht reicht das schon.
peethebee
Hi!
Die ID ist auch eine Nummer. Und über diese kann man den TEXT des CONTROLS mit der ID über GUICTRLRead auslesen
peethebee
Hi!
So in der Art?
[autoit]#cs ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]AutoIt Version: 3.2.2.0
Author:
Script Function:
Script zur Fehlermeldung
#ce ----------------------------------------------------------------------------
[/autoit][autoit][/autoit][autoit]; Und ab gehts...
[/autoit][autoit][/autoit][autoit]#include <GUIConstants.au3>
#include <GuiCombo.au3>
dim $Raumwahl,$Raum,$Nummer,$Rechner
[/autoit][autoit][/autoit][autoit]$Nummer = 00
[/autoit][autoit][/autoit][autoit]GUICreate("Fehlermeldungen", 400, 400)
GUICtrlCreateLabel("Bitte geben Sie hier die Fehlermedung an und wählen Sie den entsprechenden PC und den Raum sowie das Datum aus.", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 350, 60)
$Raumwahl = GUICtrlCreateCombo ( "Raum auswählen...", 40, 40 , 115 , 30 )
GUICtrlSetData(-1, "205|206|216|217|218|219|220|221")
$PC = GUICtrlCreateCombo ( "PC auswählen...", 180, 40 , 115 , 30 )
GUICtrlSetData(-2, "PC auswählen...")
Do
$Nummer = $Nummer+01
IF $Nummer < 10 THEN
ClipPut("0"&$Nummer)
Else
ClipPut($Nummer)
EndIf
_GUICtrlComboAddString($PC, ClipGet())
until $Nummer = 26
_GUICtrlComboAddString($PC, "Lehrer-Arbeitsplatz")
[/autoit][autoit][/autoit][autoit]GUISetState(@SW_SHOW)
[/autoit][autoit][/autoit][autoit]While 1
$msg = GUIGetMsg()
Select
Case $msg = $okbutton
MsgBox(0, "haarhar", GUICtrlRead($Raumwahl))
MsgBox(0, "haarhar", GUICtrlRead($PC))
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
peethebee
Hi!
Opt("WinTitleMatchMode", 1)
$iWinTitleMatchMode = Opt("WinTitleMatchMode", 4)
msgbox(0,"",$iWinTitleMatchMode)
Das geht - mit zweitem Parameter (neuer Wert) liefert er den alten Wert zurück.
peethebee
Nein.
Es gibt zahlreiche UDFs (einzubauen über #include und zu finden hauptsächlich im englischen Forum unter https://autoit.de/www.autoitscript.com). Daneben gibt es Plugins, die sich als DLLs auch in C(++) realisieren lassen. Über letzteren Umweg ließen sich einzelne Funktionen in AutoIt zur Verfügung stellen.
peethebee
Hi!
Das grundlegende Problem dürfte sein, dass du den zweiten Parameter auf 10 setzt. Dieser Wert ist unzulässig (siehe Hilfe). Um einen Text zehn mal senden zu lassen, würde ich eine For-Schleife bauen (siehe ebenfalls Hilfe).
Viel Erfolg,
peethebee
Hi!
Ich gehöre auch zu den Menschen, denen es auffällt, wenn eine Software einfach gefühlt schnell ist. Das sind Optimierungen, die vielleicht nur einen kleinen Geschwindigkeitsfaktor bringen, aber oft die gefühlte Geschwindigkeit schön steigern. Bei AutoIt ist das aufgrund der verhältnismäßig mäßigen Performance durchaus eine Sache, die man sich überlegen sollte...
peethebee
Hi!
Such mal im englischen Forum (https://autoit.de/www.autoitscript.com) nach MessageBoxEx - das ist eine UDF, die genau so etwas bietet und dabei noch sehr schön aussieht. Die Kontrolle solltest du auch behalten damit.
peethebee
Hi!
If FileExists("C:\opengl.dll") Then
MsgBox(0, "", "Datei ist da.")
Else
MsgBox(0, "", "Datei ist nicht da.")
EndIf
Das ist das Grundprinzip.
peethebee
Hi!
iniwrite (@scriptDir & "config.ini" bla bla bla)
->
iniwrite (@scriptDir & "\config.ini" bla bla bla)
peethebee
Hi!
Meinst du @ScriptDir?
peethebee
Hi!
Aus dem Kopf:
$username = InputBox("Username:", "Username:")
ShellExecute("C:\ibm.exe", "/u " & $username)
peethebee
Hi!
Wie machst du es von Hand?
peethebee
Hallo!
Statt Run ist grundsätzlich ShellExecute vorzuziehen, ist näher am System und kann auch nicht ausführbare Dateien direkt starten.
_RunDOS erspart den Umweg über die CMD-Datei, ist also auch vorzuziehen und müsste auch funktionieren.
Aber Dircopy wäre natürlich das einfachste, wenn es klappt. Eventuell ahst du die Pfade falsch angegeben oder Parameter falsch gesetzt. Lass mal die Pfade ausgeben mit einer MsgBox und schau dir das Beispiel in der Hilfe an. Das oben angepsrochene Mappen des Verzeichnisses könnte die Server-Problematik lösen...
peethebee
Hi!
Habe jetzt nur mal grob überflogen, aber schon mal ShellExecute(Wait) oder _RunDOS versucht?
Wie zeigt sich, dass es nicht geht? Fehlermeldung, wenn ja, genau? Skript bleibt stehen, wenn ja, wo? Skript stürzt ab, wenn ja, mit welcher Meldung?
peethebee