Zumindest unter Win7 werden AdminRechte benötigt. Ansonsten schreibt das Skript die Daten nicht in die Registry.
Beiträge von Oscar
-
-
Schnitzel, das geht auch noch kürzer, außerdem werden AdminRechte (#RequireAdmin) benötigt:
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#RequireAdmin
#include <GUIConstantsEx.au3>GUICreate("", 100, 100)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Button1 = GUICtrlCreateButton("Button1", 5, 5)
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_RegSwitch()
EndSwitch
WEndFunc _RegSwitch()
[/autoit]
Local $sRegPath = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System"
Local $bRegistry = RegRead($sRegPath, "DisableRegistryTools")
Local $bTaskmgr = RegRead($sRegPath, "DisableTaskMgr")
RegWrite($sRegPath, "DisableRegistryTools", "REG_DWORD", Number(Not $bRegistry))
RegWrite($sRegPath, "DisableTaskMgr", "REG_DWORD", Number(Not $bTaskmgr))
EndFunc ;==>_RegSwitch -
Ich wollte mich eigentlich dieses Mal raushalten, aber das ist ja jetzt völlig unsinnig.
Alle "Exen" in diesen Thread?
Das ist total absurd, weil unübersichtlich und wenn jemand einen Kommentar dazu abgibt, dann weiß man nicht wofür das gedacht ist.
Wir hatten das Thema ja schon öfter und meiner Meinung nach, wäre dann ein Thread (pro Exe) in "Filebase" die beste Wahl.Aber generell finde ich, dass man hier (in einem AutoIt-Support-Forum) auch das Skript veröffentlichen sollte. Ansonsten gibt es bereits zahlreiche Software-Archive im Internet (z.B. Heise-Software-Verzeichnis), wo man auch viel mehr User erreichen kann.
-
Du verstehst da etwas falsch!
Wenn der Client die Verbindung zum Server aufgebaut hat, dann kann auch der Server Informationen zum Client schicken (ohne dafür extra eine Verbindung aufzubauen). -
Erstelle eine eigene GUI und benutze diese für die Ausgabe (evtl. auch für die Eingabe).
-
Ich weiss nicht genau, ob ich das Javascript richtig interpretiere, deshalb "ohne Gewähr"!
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <Array.au3>$aRates = getWaehrungskurse()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($aRates)Func getWaehrungskurse()
[/autoit]
Local $HTML, $sRates, $sCurr, $aRates, $aCurr
$HTML = InetRead("http://www.oanda.com/lang/de/currency/converter/")
If @error Then Return SetError(1, 0, 0)
$HTML = BinaryToString($HTML)
;~ ConsoleWrite($HTML & @CR)
$sRates = StringRegExpReplace($HTML, '(?s).+\{"askRates"\:\[(.+?)\].+', '$1')
If @error Then Return SetError(1, 0, 0)
$aRates = StringSplit($sRates, ',')
$sCurr = StringRegExpReplace($HTML, '(?s).+,"pairs"\:\[(.+?)\].+', '$1')
If @error Then Return SetError(2, 0, 0)
$aCurr = StringSplit($sCurr, ',')
For $i = 1 To $aCurr[0]
$aRates[$i] = StringReplace($aCurr[$i], '"', '') & ' = ' & StringReplace($aRates[$i], '"', '')
Next
Return $aRates
EndFunc ;==>getWaehrungskurse -
Du greifst auch auf eine ganz andere Seite zu. Dort sind die Kurse und Umrechnungen im Javascript gespeichert.
Das müsstest Du daraus entnehmen. -
Doch! Du kannst eine Funktion auch von einer Funktion aus aufrufen.
-
TheLuBu: Das beseitigt aber nicht alle Warnungen. Von den anderen Funktionen wird auch auf die globalen Variablen zugegriffen.
-
Ja, wobei Du die globalen Variablen, denen ein Wert übergeben wird einfach vor den Funktionsaufruf verschieben kannst. Die müssen dann nicht nochmal in der Funktion deklariert/definiert werden.
-
Du erhälst keine Fehlermeldungen, sondern Warnungen.

Wenn Du alle globalen Variablen vor dem Funktionsaufruf als global deklarierst, dann geht es.
-
Benutze als Style einfach:
[autoit]BitOr($WS_BORDER, $WS_VSCROLL)
[/autoit] -
Warum einen Browser dafür bemühen?
INetRead holt Dir doch auch den Quelltext der Seite:Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
MsgBox(0, 0, getWaehrungskurse())Func getWaehrungskurse()
[/autoit]
Local $HTML, $Kurs_NOK, $Kurs_PLN
SplashTextOn("", "Währungskurse werden von der internationelen EZB-Seite abgerufen", 300, 80)
$HTML = InetRead("http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html")
If @error Then Return SetError(1, 0, 0)
$HTML = BinaryToString($HTML)
;~ ConsoleWrite($HTML & @CR)
$Kurs_NOK = StringRegExpReplace($HTML, '(?s).+>Norwegian krone </td>.+?"rate">(.+?)<.+', '$1')
$Kurs_PLN = StringRegExpReplace($HTML, '(?s).+>Polish zloty </td>.+?"rate">(.+?)<.+', '$1')
SplashOff()
Return $Kurs_NOK & @CR & $Kurs_PLN
EndFunc ;==>getWaehrungskurse -
Deine Lösung kann nicht funktionieren, da _IsPressed immer nur Null oder Eins zurückgibt. Du fragst aber mit Switch GUIGetMsg ab. Null wäre dann also "kein Event vorhanden" und wird demzufolge immer ausgeführt.
Die Übersicht über die Events findest Du in der Hilfe bei GUIGetMsg.

-
Warum benutzt Du nicht $GUI_EVENT_SECONDARYUP?
Spoiler anzeigen
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 633, 454, 192, 114)
$Button1 = GUICtrlCreateButton("Button1", 192, 192, 211, 97, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While True
[/autoit]
$msg = GUIGetMsg()
switch $msg
case $Button1
MsgBox(1, "Button1", "Button1 wurde gedrückt")
case $GUI_EVENT_SECONDARYUP
MsgBox(1, "Rechte Maustaste", "Du hast die rechte Maustaste gedrückt")
case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd -
So geht's mit StringRegExpReplace:
[autoit]
[/autoit]
$string = "C:\2. Freigegeben\Player\10.3\test.msi"
$path = StringRegExpReplace($string, '(.+\\).+', '$1')
$version = StringRegExpReplace($string, '.+\\(.+)\\.+', '$1')
MsgBox(0, 'Test', 'Pfad = ' & $path & @CR & 'Version = ' & $version)Edit: Er wollte die Versionsnummer, nicht die Datei. Geändert!
-
Bei dem $neu = StringSplit($text, @CRLF) fehlt ein ",1" da es sich bei @CRLF um zwei Zeichen handelt.
[autoit]
Es muss also so aussehen:$neu = StringSplit($text, @CRLF, 1)
[/autoit] -
Opt("YYY", 2) gibt es nicht, das Pic überdeckt das Label (nicht deaktiviert), Pfadangabe beim Pic ist absolut (schlecht, weil es dann nur bei Dir funktioniert), die GUIGetMsg-Schleife fehlt und das fehlende EndFunc hat Mich_he schon erwähnt.
Außerdem solltest Du beim posten von Skripten den AutoIt-Tag sowie den Spoiler benutzen.
-
Ich glaube du solltest dich mal ein bisschen damit beschäftigen, wie AutoIt funktioniert...
Dazu müsste er ja mal die Hilfe lesen.

-
Ein Zufallszahlen-Algorithmus sollte bei einer großen Anzahl an zufällig ausgewählten Zahlen eine möglichst gleichmäßige Häufigkeitsverteilung erreichen.
Das heißt: wenn man die Funktion 10000 mal aufruft und jedes Mal eine Zahl zwischen 0 und 9 generieren lässt sollte am Ende jede Zahl ungefähr 1000 mal vorhanden sein.
Wenn das nicht gegeben ist, dann bevorzugt die Funktion einen bestimmten Zahlenbereich, was für viele Anwendungsgebiete schlecht ist.