Ich Failor xD
Quote for truth
vor allem, weil ich auf der Seite davor dass schon gepostet hab wies geht. ![]()
Ich Failor xD
Quote for truth
vor allem, weil ich auf der Seite davor dass schon gepostet hab wies geht. ![]()
Ich fände das auch ein sehr gutes Beispiel. Ich meine Gleichungen hat jeder seit der 7. Klasse und man kann das Programm trotzdem beliebig erweitern... Außerdem ist es nicht so einfach wie ne Pyramide zu berechnen. Man braucht als Grundlage ein Thema was jeder kennt, der die Sekundarstufe 1 erlebt hat. Dazu gehört Integralrechnung eigentlich nicht.
Außerdem soll die Aufgabe nichts mit aufwändiger Gui/Gdi+ etc. zu tun haben, da es ja "nur" um Mathematik geht.
Viele Grüße
RapIT
Naja ich bezweifle dass man logarithmische Gleichungen oder e Funktion in der 7. hatte um nur ein paar Beispiele zu nennen.
Auch Ableitungen sind zwar generell etwas grundlegendes, doch hatte das auch noch nicht jeder...
Integralrechnung wäre glaube ich was zum skripten, aber ohne das Thema in der Schule behandelt zu haben kann man halt kaum mitmachen.
Und eben das ist ja das grundlegende Problem!
Prinzipiell nette Idee, nur sehe ich das Problem darin, dass du vllt. oder Jury sowieso an sich noch nicht so viel Mathe hatte, wie als wenn man mit der Schule durch ist und somit für einige alles um einiges leichter wird...
Außerdem kann ich mal behaupten, dass alle Aufgaben der 9. Klasse ziemlich leicht sind (bin 12. Klässler).
So 10. Klasse sind meistens die grundlegenden Dinge abgeschlossen.
Interessant sind limes Aufgaben ![]()
Als "einfaches" Beispiel:
Welchem Wert nähert sich die Gesamtstrecke an, wenn man eine Treppe baut und dabei die Höhe und Breite immer halbiert... ![]()
oder auch Integralrechnung.
Sowas wäre sicherlich interessanter, als eine Pyramide zu berechnen ![]()
Naja ungarische Notation ist nun kein Muss bei Variablen, also meiner Meinung nach reicht auch ein einfaches: "$Struct".
(.+) findet prinzipiell unendlich viele Zeichen hintereinander:
z.B.
123tsare46546
aber auhc
123 5t43 5346
usw.
Welchen Zweck hat das, wenn du alle grünen Pixel eines Bildes hast? ![]()
Einfach CDROM Laufwerk sperren?
;Example
#include <WinAPI.au3>
Global $Drive = DriveGetDrive('CDROM')
If IsArray($Drive) Then
_WinAPI_LockDevice($Drive[1], 1)
MsgBox(0, '', 'The drive ' & StringUpper($Drive[1]) & ' is locked.')
_WinAPI_LockDevice($Drive[1], 0)
MsgBox(0, '', 'The drive ' & StringUpper($Drive[1]) & ' is unlocked.')
EndIf
Func _WinAPI_LockDevice($sDrive, $fLock)
;Yashied
Local $hFile = _WinAPI_CreateFileEx('\\.\' & $sDrive, 3, 0xC0000000, 0x03)
If Not $hFile Then
Return SetError(1, 0, 0)
EndIf
Local $tPREVENT_MEDIA_REMOVAL = DllStructCreate('byte')
DllStructSetData($tPREVENT_MEDIA_REMOVAL, 1, $fLock)
Local $Ret = DllCall('kernel32.dll', 'int', 'DeviceIoControl', 'ptr', $hFile, 'dword', 0x002D4804, 'ptr', DllStructGetPtr($tPREVENT_MEDIA_REMOVAL), 'dword', DllStructGetSize($tPREVENT_MEDIA_REMOVAL), 'ptr', 0, 'dword', 0, 'dword*', 0, 'ptr', 0)
If (@error) Or (Not $Ret[0]) Then
$Ret = 0
EndIf
_WinAPI_CloseHandle($hFile)
If Not IsArray($Ret) Then
Return SetError(2, 0, 0)
EndIf
Return 1
EndFunc ;==>_WinAPI_LockDevice
Func _WinAPI_CreateFileEx($sFile, $iCreation, $iAccess, $iShare, $iFlagsAndAttributes = 0, $tSecurity = 0, $hTemplate = 0)
;Yashied
Local $Ret = DllCall('kernel32.dll', 'ptr', 'CreateFileW', 'wstr', $sFile, 'dword', $iAccess, 'dword', $iShare, 'ptr', DllStructGetPtr($tSecurity), 'dword', $iCreation, 'dword', $iFlagsAndAttributes, 'ptr', $hTemplate)
If (@error) Or ($Ret[0] = -1) Then
Return SetError(1, 0, 0)
EndIf
Return $Ret[0]
EndFunc ;==>_WinAPI_CreateFileEx
Dann hat sich das mit CD.
Das einzige was bleibt, ist ein USB Stick benutzen und dann halt das mit den Bytes einer .lnk File ändern, dass es ein Programm aufruft, das ginge auch noch (ist die Lücke noch vorhanden?).
Achso... dachte InetRead gilt nur für Files oô
Und Spoiler liegt auf Eis, ich hab zwar rumprobiert, aber wirklich akzeptable Ergebnisse liefert nur GDI+ xD
Das war FileRead was du meinst ![]()
Tjaja meine Spoiler UDF war halt von dem Thread aus die "Beste" ![]()
Fürs Auslesen des Quellcodes:
[autoit]
$Source = BinaryToString(InetRead($URL))
Btw kannste mich auch einfach im "anderen" Forum fragen
PN und so ![]()
Und was macht deine Spoiler UDF?
Schonmal versucht dne Quellcode nach einem Search auszulesen?!
Wobei das ziemlich viele Ergebnisse sind immer... So um die 4 Millionen allein bei "AutoIt"^^
@ Andy:
ganz simples Beispiel:
DLL:
#include "stdafx.h"
extern "C" __declspec(dllexport) int __cdecl BContrast(int x,int y)
{
return x+y;
}
Script:
[autoit]$ret = DllCall(@ScriptDir & "\bitmap.dll", "int:cdecl", "BContrast", "int", 100, "int", 4)
ConsoleWrite($ret[0] & @CRLF)
Ich weiß nicht, was du mit Unterstrich meinst, außerdem probiert mal, die { } direkt unter dem extern "c" zu setzen!
DLL behalten (mit cdecl) und Script von Andy nehmen..
Und das geht nicht?
bei stdcall muss aber das beachtet werden:
Zitat von progandy:
ZitatDie Alternative wenn man stdcall verwenden will, ist folgendes: Im EXPORTS-Abschnitt der .def-Datei müssen die Funktionsnamen aufgelistet werden.
Wie schaut denn dein jetziges Script und DLL aus?
Grad getestet und kanns nicht bestätigen, bei mir läufts einwandfrei.
Hab mal meine MouseClick Funktion mit PostMEssage abgespeckt und nur den Click Aspekt genommen, raus kommt das:
[autoit]Func _MouseClick($hWnd, $Button, $xPos, $yPos, $Count)
Local $MK_LBUTTON = 0x0001
Local $WM_LBUTTONDOWN = 0x0201
Local $WM_LBUTTONUP = 0x0202
Local $MK_RBUTTON = 0x0002
Local $WM_RBUTTONDOWN = 0x0204
Local $WM_RBUTTONUP = 0x0205
Local $WM_MOUSEMOVE = 0x0200
Local $User32 = DllOpen("user32.dll")
Switch $Button
Case "left"
$Btn = $MK_LBUTTON
$BtnDown = $WM_LBUTTONDOWN
$BtnUp = $WM_LBUTTONUP
Case "right"
$Btn = $MK_RBUTTON
$BtnDown = $WM_RBUTTONDOWN
$BtnUp = $WM_RBUTTONUP
EndSwitch
$Pos = __MakeLong($xPos, $yPos)
DllCall($User32, "int", "PostMessage", "hwnd", $hWnd, "int", $WM_MOUSEMOVE, "int", 0, "long", $Pos)
For $i = 1 To $Count
DllCall($User32, "int", "PostMessage", "hwnd", $hWnd, "int", $BtnDown, "int", $Btn, "long", $Pos)
DllCall($User32, "int", "PostMessage", "hwnd", $hWnd, "int", $BtnUp, "int", 0, "long", $Pos)
Next
DllClose($User32)
Return True
EndFunc
Func __MakeLong($LoWord, $HiWord)
Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc
Bitte.
Alles richtig geschrieben?
Alles anzeigenSo, zu dem 8 sek Ding:
[autoit]#include <Timers.au3>
[/autoit] [autoit][/autoit] [autoit]
Opt("SendKeyDelay", 0)
Opt("SendKeyDownDelay", 0);Timer
[/autoit] [autoit][/autoit] [autoit]
$Timer = _Timer_Init();Eigenliche Funktion
[/autoit] [autoit][/autoit] [autoit]
$String = StringSplit("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", "")
For $i = 1 To $String[0]
Send($String[$i])
Next;ConsoleWrite
[/autoit]
ConsoleWrite("Das brauchte jetzt: " & _Timer_Diff($Timer) / 1000 & " Sekunden" & @CRLF)Ergebnis bei mir:
Ineluki
Größenteils, stimmt.
Aber es ist halt immernoch ein AutoIt Script!
Streng genommen müsstest du noch nichtmal das StringSplit mit einberechnen, denn das gehört ja nicht zum eigentlichen Senden des Alphabets ![]()
Wenn du cdecl nimmst einfach in dem DLLCall schrieben:
Type:cdecl ![]()
z.B.:
int:cdecl
Bei stdcall ist es ganz normal int.