Bin mir nicht sicher - deshalb "als Gedanke" ![]()
Edit:
ADS ist nicht illegal, NTFS verwendet Datenströme zur Speicherung von Zusatzinformationen (z.B. Dateiinfos wie Autor etc.).
Das Einbringen von Schadcode über ADS ist natürlich nicht legal.
Bin mir nicht sicher - deshalb "als Gedanke" ![]()
Edit:
ADS ist nicht illegal, NTFS verwendet Datenströme zur Speicherung von Zusatzinformationen (z.B. Dateiinfos wie Autor etc.).
Das Einbringen von Schadcode über ADS ist natürlich nicht legal.
Mal als Gedanke: Verwende ADS. Mach dir die Tatsache, dass sie sicherheitsrelevant sind zugute. So kannst du in diesem Fall ein Sicherheitsskript an eine Systemkomponente "andocken". Von außen nicht sichtbar, aber wenn die Komponente geladen wird startet auch dein Skript. Das Skript würde ich aber so gestalten, dass der PC herunterfgefahren wird, wenn das PW nicht innerhalb von 3...5 sec eingegeben wird.
Hier mal etwas mehr dazu.
Ähmm, ohne user32.dll wird das sehr schwer bzw unmöglich
Ich hatte auch erst mit DLL gearbeitet, hab dann aber doch 'ne andere Lösung gefunden ![]()
Ich würde gerne nach Name oder Stichwort suchen wollen bzw. einen teil des Namens oder Stichwort
Willst du Name / Stichwort vorher vergeben zu jedem Eintrag oder soll automatisch jeder Eintrag geprüft werden auf Vorkommen des Suchbegriffs?
Edit:
Mal auf die Schnelle:
Sucht nach Stichwort und Name, Treffer werden in einem Array gesammelt und über die Eingabefelder nacheinander ausgegeben. Bin davon ausgegangen, dass Name ein Primary Key ist, also immer vergeben wird.
Habe mal deine GUI etwas geordnet, wenn du Controls nicht ändern willst (z.B. Label) spare dir einfach, dafür eine Variable zu vergeben. Und versuche die Reihenfolge im Code, so wie in der grafischen Darstellung zu haben, macht es übersichtlicher.
#include <GUIConstants.au3>
Global $aEntry[1][3] ;Name/Stichwort/Beschreibung
Global $aFound[1][3]
Global $Hinzu = True, $posFound
$Form1 = GUICreate("Form1", 350, 471, 283, 146)
GUICtrlCreateGroup("Suche", 16, 40, 281, 129)
GUICtrlCreateLabel("Suche:", 32, 88, 38, 17)
$inSuche = GUICtrlCreateInput("", 96, 88, 145, 21)
$bSuchen = GUICtrlCreateButton("Suchen", 128, 120, 81, 25, 0)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUICtrlCreateGroup("Neu", 16, 184, 289, 257)
$inName = GUICtrlCreateInput("", 104, 200, 145, 21)
$inStichwort = GUICtrlCreateInput("", 104, 240, 145, 21)
GUICtrlCreateLabel("Name:", 32, 200, 51, 17)
GUICtrlCreateLabel("Stichwort", 32, 240, 56, 17)
$eBeschreibung = GUICtrlCreateEdit("", 104, 280, 153, 113)
$bHinzufuegen = GUICtrlCreateButton("Hinzufuegen", 96, 408, 145, 25, 0)
GUICtrlCreateLabel("Beschreibung", 32, 280, 69, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $bHinzufuegen
If $Hinzu Then
_NewEntry()
Else
_ShowNext()
EndIf
Case $bSuchen
_Search()
EndSwitch
WEnd
Func _NewEntry()
If $aEntry[UBound($aEntry)-1][0] <> '' Then ReDim $aEntry[UBound($aEntry)+1][3]
$aEntry[UBound($aEntry)-1][0] = GUICtrlRead($inName)
$aEntry[UBound($aEntry)-1][1] = GUICtrlRead($inStichwort)
$aEntry[UBound($aEntry)-1][2] = GUICtrlRead($eBeschreibung)
GUICtrlSetData($inName,'')
GUICtrlSetData($inStichwort,'')
GUICtrlSetData($eBeschreibung,'')
EndFunc
Func _Search()
Local $sSuch = GUICtrlRead($inSuche)
If $sSuch = '' Then Return
For $i = 0 To UBound($aEntry) -1
For $k = 0 To 1
If $aEntry[$i][$k] = $sSuch Then
If $aFound[UBound($aFound)-1][0] <> '' Then ReDim $aFound[UBound($aFound)+1][3]
$aFound[UBound($aFound)-1][0] = $aEntry[$i][0]
$aFound[UBound($aFound)-1][1] = $aEntry[$i][1]
$aFound[UBound($aFound)-1][2] = $aEntry[$i][2]
EndIf
Next
Next
If $aFound[UBound($aFound)-1][0] = '' Then Return GUICtrlSetData($eBeschreibung,'KEINE TREFFER')
GUICtrlSetData($bHinzufuegen, 'Nächster Treffer')
GUICtrlSetData($inName, $aFound[0][0])
GUICtrlSetData($inStichwort, $aFound[0][1])
GUICtrlSetData($eBeschreibung, $aFound[0][2])
$Hinzu = False
$posFound = 1
EndFunc
Func _ShowNext()
If (UBound($aFound) > 1) And ($posFound < UBound($aFound)) Then
GUICtrlSetData($inName, $aFound[$posFound][0])
GUICtrlSetData($inStichwort, $aFound[$posFound][1])
GUICtrlSetData($eBeschreibung, $aFound[$posFound][2])
$posFound += 1
Else
GUICtrlSetData($inName,'')
GUICtrlSetData($inStichwort,'')
GUICtrlSetData($eBeschreibung,'KEINE WEITEREN TREFFER')
GUICtrlSetData($bHinzufuegen, 'Hinzufügen')
$Hinzu = True
ReDim $aFound[1][3]
$aFound[0][0] = ''
$aFound[0][1] = ''
$aFound[0][2] = ''
EndIf
EndFunc
Hi,
die Daten stecken in einem Frame und dort wiederum in einer Tabelle.
Ich hab dir hier mal den Weg bis zur Tabelle fertig gemacht:
#include<IE.au3>
#include<array.au3>
$url = 'http://87.245.3.154/'
$oIE = _IECreate($url,0,0)
$oFrame = _IEFrameGetObjByName($oIE, "OnlineShop")
If IsObj($oFrame) Then
ConsoleWrite('OBJEKT Frame - OK' & @CRLF)
$oTable = _IETableGetCollection($oFrame,1)
If IsObj($oTable) Then
ConsoleWrite('OBJEKT Table - OK' & @CRLF)
$aTable = _IETableWriteToArray($oTable,True)
EndIf
EndIf
_IEQuit($oIE)
;~ _ArrayDisplay($aTable)
ConsoleWrite($aTable[0][0] & @CRLF)
MIt Windows eigenen Mitteln (Energieverwaltung) kannst du zumindest einstellen, dass der PC in den Standby wechselt.
Für dieses Standby sendet Windows einen konstanten Wert (mal nach googeln), den du sicher abfangen kannst und daraufhin einen Shutdown() absetzt.
In erster Linie unterscheidet man nach Anwendungsfall:
For-Next ist kopfgesteuert, d.h. eine Bedingung muß erfüllt sein, dann wird in die Schleife eingetreten und ausgeführt solange die Bedingung wahr ist.
Do-Until ist fußgesteuert, d.h. die Schleife wird mindestens einmal ausgeführt und erst beendet, wenn die Austrittsbedingung erfüllt ist.
Kann ich nicht wirklich sagen. Soweit ich weiß, benötigt die Methode GetContainingArray vorherig Arrays.
Aber alles was dich weiter bringt, hilft ![]()
@progandy: 1.073 Bytes bisher
Vielleicht fällt mir ja noch ne Verbesserung ein, sind ja noch 4 Wochen ![]()
Ich verwende aber kein RAR - gibst du dich auch mit ZIP zufrieden?
Edit:
Ich antworte mir jetzt einfach mal selber mit: JA ![]()
Edit2:
Boah, seid ihr heiß drauf. Schon 2-mal runtergeladen und das PW gibts erst in 4 Wochen. ![]()
Na dann viel Spaß beim Lösen - aber nicht beim PW-Crack ![]()
Edit3:
Ich habe mal noch eine Verbesserung vorgenommen. Sind jetzt zwar 50 Byte mehr, aber dafür absolute Funktionalität in allen Lebenslagen ![]()
Der will GetContaining nicht anwenden. Da muß ich auch erst mal passen.
Prüf mal schrittweise durch:
[autoit]$oArray = $fpc.Arrays
If IsObj($oArray) Then
MsgBox(0, '', '.Arrays erfolgreich')
$oArrays = $oArray.GetContainingArray
If IsObj($oArrays) Then
MsgBox(0, '', '.GetContainingArray erfolgreich')
Else
MsgBox(0, '', '.GetContainingArray fehlgeschlagen')
EndIf
Else
MsgBox(0, '', '.Arrays fehlgeschlagen')
EndIf
Hmm, die Methode
[autoit]$array = $fpc.Arrays.GetContainingArray
[/autoit]kann nicht umgesetzt werden. Der zweite Fehler ist ein darauf basierender Fehler.
Hast du mal getestet, ob das Ganze als VBScript überhaupt funktioniert? Nicht, dass wir uns beim Portieren die Köpfe zerbrechen und das Problem liegt irgendwo maschinenseitig. ![]()
Na das ist doch mal 'ne klare Ansage ![]()
Bin ich wirklich der Einzige, der das umter Vista machen möchte?
Naja, auch wenn es wieder ketzerisch klingt - aber warum freiwillig Vista verwenden. ![]()
Der Text soll nicht vorgegeben sein.
Also ein leeres Edit? Ich fragte nach vorgegebenem Text wegen gleicher Datenmenge dafür bei allen ![]()
Ist der betreffende Rechner der ISA selbst, so startet man mit
[autoit]$objFPC = ObjCreate("FPC.Root")
[/autoit]andernfalls mit
[autoit]$objFPC = ObjCreate("FPC.Root", $IsaHost)
[/autoit]Die Unterscheidung ist notwendig. ISAHost ist der Namen des ISA-Servers. Diesen darf man auf dem ISA selbst nicht angeben!
Hast du das berücksichtigt?
Ach nochwas: Füge mal noch ein Refresh ein - und der Containig-Befehl braucht noch Arrays.:
[autoit]$objFPC.Refresh
$objArray = $objFPC.Arrays.GetContainingArray
OK, dann schrumpfe ich Bytes und mache mehr Zeilen wegen besserer Übersicht. ![]()
Ja folgendes noch: Das Verhalten, wenn der Cursor zwischen 2 Worten steht. Ich denke steht er direkt (ohne Leerzeichen zwischen) hinter einem Wort oder direkt davor, so wird dieses angezeigt.
Was ist denn jetzt eigentlich maßgebend für die Größe? Zeilenzahl oder Bytes?
Ich habs derzeit auf 26 Zeilen, wenn Zeilen das Kriterium sind, würde ich noch weiter schrumpfen. ![]()
Pattern: "(?<=Hallo,)\r\n\w*" ==> ergibt: Alex