Das heißt, ich mache mich strafbar, wenn ich meine Programme im Nachhinein mit z.B. Themida oder Softwarepassport schütze?
Nein natürlich nicht.
Das heißt, ich mache mich strafbar, wenn ich meine Programme im Nachhinein mit z.B. Themida oder Softwarepassport schütze?
Nein natürlich nicht.
Du brauchst als Basisdaten für den Vorhaben mindestens:
1. Kreisradius
2. Mittelpunkt des Kreises
3. beliebiger zweiter Punkt auf der Geraden
1 & 2 definieren den Kreis
und über 2 & 3 lässt sich die Geradengleichung aufstellen (Punktsteigungsformel usw.)
Solche Tests (computerbase) muss man auch richtig lesen ![]()
Das ist der Gesamtverbrauch mit HD5870 Graka und 700W Netzteil
Und selbst in dieser ungeeigenten Testumgebung braucht ein kleiner i3/i5 nur ~70W im Leerlauf.
Mit einem vernünftigen Netzteil (~300W je nachdem wieviele Platten), ohne externe Graka und vielleicht nicht dem ultra delux Mainboard (s. Test) mit jedem Schnick Schnack kommst du auf einen unwesentlich höheren Verbrauch im Vergleich zum Atom-System.
Zumal der Atom so langsam ist, dass er eigentlich überhaupt kein Strom verbrauchen dürfte ![]()
und eine Grade die durch den Mittelpunkt des Kreises läuft.
Dann sind die Fallunterscheidungen von Aspirinjunkie nicht nötig.
Rechnet man das von hand aus ergibt sich dies aus der Lösung der Gleichung, fürs Skript hilft es aber vielleicht (
) wenn man die Fallunterscheidung dann weglassen kann.
Bei Endstufen mit "Clipping-Schutzschaltung" (ka ob das heute serienmäßig verbaut wird) sollte den Lautsprechern nichts passieren.
Strom drauf, Schutzschaltung springt an und anschließend gehts normal weiter.
Bei Monitoren keine Ahnung, das ist dann ein Software-Problem?
Sicher ist dieses System eine praktische Lösung gegen Bot-Threads.
Die Frage ist nur ob damit nicht mehr aufgibt als man gewinnt.
Für einen neuen User, der ja gar nicht weiss welch tolle Community das hier ist, sagt diese Einschränkung auf jeden Fall nicht "Herzlich Willkommen".
Oft kann man aufgrund ungeschickter Formulierungen auch gar nicht erkennen wohin sich die Frage entwickeln wird.
Außerdem gibt es sicher auch User deren Einstieg auf autoit.de mit einer Bot-Anfrage zusammenhängt und sich dann doch entschieden haben sich hier vernünfitg einzubringen.
Im Sinne des Weihnachtsfrieden möchte ich eigentlich keine politische Grundsatzdiskusssion anregen, aber ähnliche Vorgehensweisen (Anti-Terrorkampf, "gläserne Bürger", Bundestrojaner usw.) werden auf der großen Ebene zu Recht heftig kritisiert.
Für mich zählt die Freiheit der Leute die sich an die Regeln halten mehr als eine praktische Lösung gegen Missbrauch.
Ich persönlich finde diese Regel nicht gut.
Ob jemand neues mit einem sinnvollen und interessanten Problem wirklich Lust hat sich das zu geben?
Ich bin da eher skeptisch. Realistischer ist doch das gleich weiter gegoogelt wird und der Thread in einem andere Forum eröffent wird (und dort weitergeführt wird).
Lieber 5 Bot Thread schließen und einen interessanten mehr als anders rum.
Threads im Hilfe-Forum sind für mich sehr lehrreich und haben schon oft den Horizont erweitert.
Zumal dieses Forum keine wirklichen Probleme mit unsauberen Threads, Spam usw. hat. Oder sehe ich das falsch?
P.S. Außerdem ist eine Form des Generalverdacht sehr diskussionswürdig.
Ich bin nun nicht weit gekommen (ist schon spät).
Punkt 2.
Zitat... Von diesen Körpern gibt es nur fünf Stück ...
Hier könnte man schonmal die Namen der 5 Körper erwähnen (für Querleser - dafür gibts aber wohl keine Bonuspunkte).
Zumindest erwartet man anschließend, dass diese näher definiert werden.
Zitat2.2. Die Eulersche Formel
Vor die Erklärung der einzelnen Körper zu setzen passt dann meiner Meinung nach systematisch nicht.
Für alle xml interessierten hier noch die Lösung für meine xml (s. Seite 1)
[autoit]
#Include <_XMLDomWrapper.au3>
#Include <Array.au3>
main()
func main()
Local $sFile = @ScriptDir&"\network.xml"
If FileExists($sFile) Then
$ret = _XMLFileOpen ($sFile)
if @error then MsgBox(1, "", @error)
$wert = _XMLGetValue('/settings/section[@name="Card"]/entry [@name="Unicast"]')
[/autoit][autoit][/autoit][autoit]_ArrayDisplay($wert)
MsgBox(4096, "Error", _XMLError ())
Else
MsgBox(4096, "fehler", "not found")
EndIf
EndFunc
Super ![]()
Könnte noch bitte jemand ein Beispiel für meine xml machen? ![]()
autoBert: Nee daran liegts nicht.
Das Objekt wird in der UDF erstellt.
Allerdings kommt bei mir auch dieser Fehler, was auf ein "ungültiges" xml Format schließen lässt (_XMLFileOpen() => @error=1 mit deinem file).
Woher kommt deine xml denn?
Mit dieser hier funktioniert es z.B.
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<section name="Card">
<entry name="IPTV">0</entry>
<entry name="Unicast">2</entry>
<entry name="Multicast">0</entry>
<entry name="Filedevice">0</entry>
</section>
<section name="Unicast Network Device">
<entry name="DVBServerIP">192.168.1.100</entry>
<entry name="ServerPort">4022</entry>
<entry name="UnicastIP">192.168.1.100</entry>
<entry name="UnicastPort">3456</entry>
<entry name="UnicastNic">0.0.0.0</entry>
<entry name="UCBuffers">7</entry>
</section>
<section name="Unicast Network Device 2">
<entry name="DVBServerIP">192.168.1.100</entry>
<entry name="ServerPort">4022</entry>
<entry name="UnicastIP">192.168.1.100</entry>
<entry name="UnicastPort">3456</entry>
<entry name="UnicastNic">0.0.0.0</entry>
<entry name="UCBuffers">7</entry>
</section>
</settings>
Alles anzeigen
Nur wie komme ich jetzt an die Einträge ran? ![]()
Konfigurationsdateien kommen bei mir in die dafür vorgesehenen Verzeichnisse.
Praktischerweise hat autoit dafür auch die passenden Makros:
@AppDataCommonDir
@AppDataDir
Kannst ja mal die UDF und die xml anhängen.
Vielleicht finden wir dann eine Lösung ![]()
If Not RegRead("HKEY_CURRENT_USER\Software\DEINPROGRAMMNAME", "FirstStart") = 1 Then
MsgBox(0, "Erster Start", "Das Programm wurde zum ersten mal gestartet!")
RegWrite("HKEY_CURRENT_USER\Software\DEINPROGRAMMNAME", "FirstStart", "REG_SZ", "1")
EndIf
Trotzdem braucht man für eine derart simple Abfrage Schreibrechte bei jeder Ausführung.
Ist für dieses Problem absolut unnötig. Dafür spricht eigentlich nichts.
Über den Netzwerk Sender / Receiver lässt sich quasi auch alles über TCP senden und empfangen.
Um via Sendmessage in EG etwas zu empfangen hab ich jetzt nichts gefunden.
edit\ http://www.eventghost.org/forum/viewtopic.php?f=2&t=1062&p=6371&hilit=sendmessage#p6371
_XMLGetValue("/container/wert3 v")?
Ah ok dann wird das Fenster nicht gefunden und du landest in dieser Zeile:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUIOnEventMode", 1)
Global $eventCount = 0
$Form1 = GUICreate("wm_command_autoit", 633, 454, 193, 115)
GUICtrlCreateButton("Test", 10, 10)
GUISetOnEvent($GUI_EVENT_CLOSE, '_ende')
GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
While 1
Sleep(100)
WEnd
Func _ende()
Exit
EndFunc ;==>_ende
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $hWndEdit
$iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
$iCode = BitShift($iwParam, 16) ; Hi Word
ConsoleWrite( @MSEC&" $ilParam :"&$ilParam & @CRLF)
ConsoleWrite( @MSEC&" $iIDFrom :"&$iIDFrom& @CRLF)
ConsoleWrite( @MSEC&" $iCode :"&$iCode& @CRLF)
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
Funktioniert mit diesem EG-Plugin
eg.RegisterPlugin(
name = "wm_command_autoit",
author = "Nuts",
version = "1.0.",
kind = "program",
createMacrosOnAdd = True,
)
# die actions je nach Bedarf definieren. ich hatte da mit verschiedenen Werten experimentiert
ACTIONS = (
(eg.ActionGroup, 'GroupMainControls', 'Main controls', None, (
('Exit', 'Quit Application', None, 1000),
('PlayPause', 'Play/Pause', None, 1001),
('Play', 'Play', None, 1002),
('Next', 'Next', None, 1003),
('Prev', 'Prev', None, 1004),
('Stop', 'Stop', None, 1005),
('Visualisierung', 'Visualisierung', None, 1006),
('Repeate', 'Repeate', None, 1007),
('Shuffle', 'Shuffle', None, 1008),
('Vol+', 'Vol+', None, 1009),
('Vol-', 'Vol-', None, 1010),
('Mute', 'Mute', None, 1011),
('Up', 'Up', None, 1012),
('Down', 'Down', None, 1013),
('Right', 'Right', None, 1014),
('Left', 'Left', None, 1015),
('Enter', 'Enter', None, 1016),
)),
)
from eg.WinApi import FindWindow, SendMessageTimeout, WM_COMMAND
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]class ActionPrototype(eg.ActionClass):
# findwindow muss man ans autoit Skript anpassen
def __call__(self):
try:
hWnd = FindWindow("AutoIt v3 GUI", "wm_command_autoit")
return SendMessageTimeout(hWnd, WM_COMMAND, self.value, 0)
except:
raise self.Exceptions.ProgramNotRunning
class Nuts(eg.PluginClass):
[/autoit] [autoit][/autoit] [autoit]def __init__(self):
self.AddActionsFromList(ACTIONS, ActionPrototype)
Bin mir nur nicht so sicher ob das eine ganz saubere Lösung ist.
Irgendwie klappt es nicht der Nachricht mitzugeben vom wem die Nachricht kommt.
Allerdings verzichten darauf auch andere Plugins, die mit Sendmessage arbeiten (s. Mediaplayerclassic Plugin).
Vielleicht kann Progandy dazu noch was sagen?
Ich hatte da auch mal was über WM_Command erstellt (als .py in einem neuen Ordner im Pluginverzeichnis von Eventghost abspeichern)
eg.RegisterPlugin(
name = "wm_command_autoit",
author = "Nuts",
version = "1.0.",
kind = "program",
createMacrosOnAdd = True,
)
# die actions je nach Bedarf definieren. ich hatte da mit verschiedenen Werten experimentiert
ACTIONS = (
(eg.ActionGroup, 'GroupMainControls', 'Main controls', None, (
('Exit', 'Quit Application', None, 100),
('PlayPause', 'Play/Pause', None, 0x500101),
('Play', 'Play', None, 102),
('Next', 'Next', None, 103),
('Prev', 'Prev', None, 104),
('Stop', 'Stop', None, 105),
('Visualisierung', 'Visualisierung', None, 106),
('Repeate', 'Repeate', None, 107),
('Shuffle', 'Shuffle', None, 108),
('Vol+', 'Vol+', None, 109),
('Vol-', 'Vol-', None, 110),
('Mute', 'Mute', None, 111),
('Up', 'Up', None, 112),
('Down', 'Down', None, 113),
('Right', 'Right', None, 114),
('Left', 'Left', None, 115),
('Enter', 'Enter', None, 0x500116),
)),
)
from eg.WinApi import FindWindow, SendMessageTimeout, WM_COMMAND
class ActionPrototype(eg.ActionClass):
# findwindow muss man ans autoit Skript anpassen
def __call__(self):
try:
hWnd = FindWindow("AutoIt v3 GUI", "wm_command_autoit")
return SendMessageTimeout(hWnd, WM_COMMAND, self.value, 1000)
except:
raise self.Exceptions.ProgramNotRunning
class Nuts(eg.PluginClass):
def __init__(self):
self.AddActionsFromList(ACTIONS, ActionPrototype)
Alles anzeigen
Lässt sich im autoit Skript dann über GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") auswerten.
In der Funktion _GetCOMObjectControls("Control0") kommt mit dem Paramter "Control0" bei $sRet nichts an.
Und da kein Fehler abgefangen wird zieht sich das dann durch bis zur Deklaration des Arrays.
Ohne das Objekt näher zu kennen ist da nichts zu machen ![]()
Same here @Win7 32bit