Die Technik ist zwar nicht neu, aber ich sag' nur soviel:
0-Byte
Nicht sichtbar, aber doch da.
Der Zugriff ist aber deshalb auch etwas schwieriger, da er nicht über WinAPI geht.
Gruß
Westi
Die Technik ist zwar nicht neu, aber ich sag' nur soviel:
0-Byte
Nicht sichtbar, aber doch da.
Der Zugriff ist aber deshalb auch etwas schwieriger, da er nicht über WinAPI geht.
Gruß
Westi
Das ist doch alles viel zu aufwendig, so geht's einfacher:
[autoit]AdlibEnable("block", 20)
Func block()
BlockInput(1)
ProcessClose("taskmgr.exe")
If ProcessExists ( "S5???.exe" ) then ;Hier latürnich den passenden Namen eintragen
AdlibDisable()
BlockInput(0)
EndIf
EndFunc
Übrigens, PCS7 undWinCC ist aktuell, wenn auch nicht vergleichbar.
Gruß
Westi
Danke Vinschni, <String .au3="">war wirklich etwas blockiert.</String>
<String .au3="">Gruß
Westi</String>
Warum schreibt der immer <String.au3> mit rein?!!
Moin,
ich möchte aus einer Datei alle Einträge die mit <SC RIPT="" type="text/javascript"> beginnen und mit </SC> enden,
in ein array schreiben. Entweder ist das wirklich so kompliziert oder ich bin im Moment etwas blockiert.
Dabei kommt Müll raus AutoIt-Quellcode
#include <array .au3="">
#include <String .au3="">
$f = '<sc ript="" type="text/javascript">erster Eintrag</sc> <sc ript="" type="text/javascript">zweiter Eintrag</sc>'
$fx = StringSplit ( $f, '<sc ript="" type="text/javascript">')
$fy = StringSplit ( $f, '</sc>' )
MsgBox(0, "", _StringBetween ( $f, '<sc ript="" type="text/javascript">', '</sc>' ))
_ArrayDisplay($fx, "1")
_ArrayDisplay($fy, "2")
..und ich weiß nicht warum.
Gruss
Westi
DIE LEERZEICHEN MÜSSEN WEGEN DER BOARD-SOFTWARE SEIN!
So?
[autoit]While 1
ClipGet ( )
If Not @error then ClipPut ( "" )
Wend
Gruß
Westi
Bessere Gedankenstütze:
[autoit]#include <IE.au3>
$user = "Dein Name"
$pass = "Dein Passwort"
$oIE = _IECreate ("http://www.earnbar.de/mitglieder/")
$o_form = _IEFormGetObjByName ($oIE, "form1")
$o_login = _IEFormElementGetObjByName ($o_form, "ID")
$o_password = _IEFormElementGetObjByName ($o_form, "passwort")
$o_signin = _IEFormElementGetObjByName ($o_form, "Login")
_IEFormElementSetValue ($o_login, $user)
_IEFormElementSetValue ($o_password, $pass)
_IEAction ($o_signin, "click")
Gruß
Westi
Auf die Schnelle:
[autoit]GUICreate("", -1, -1, 200, 200, $WS_POPUP)
GUICtrlCreatePic ( filename, left, top [, width [, height [, style [, exStyle]]]] )
Gruß
Westi
moin monkey,
was meinst du mit "LAN-Tool"?
"...das die Tastatur, die Maus sperrt und den Bildschirm schwarz werden lässt..."
#include <GUIConstants.au3>
GUICreate("", -1, -1, 0, 0, BitOR($WS_POPUP, $WS_MAXIMIZE)) ;erzeuge ein Vollbild
GUISetBkColor(0x000000) ; macht schwarz
GUISetState()
;AdlibEnable("tm", 100) ;deaktiviere alle 100ms über Func tm() !!!NICHT Einschalten, bevor das Skript fertig ist!!!
SplashTextOn("Sperre", "Warte auf Medium ", 250, 40, -1, -1, 0, "", 12) ; Text der über den Bildschirm wandern soll ;das MUSS nicht sein
While 1
If GUIGetMsg($GUI_EVENT_CLOSE) Then ExitLoop ; so kann zu TESTZWECKEN die Schleife mit ESC beendet werden
$_x = Random(50, @DesktopWidth - 200, 1);das MUSS nicht sein
$_y = Random(50, @DesktopHeight - 50, 1);das MUSS nicht sein
WinMove("Sperre", "", $_x, $_y);das MUSS nicht sein
Sleep(2000) ;die Pause sollte angemessen groß sein, damit nicht dauernd nach dem Medium gesucht wird.
;Hier steht der Teil, der die Schleife beendet
;If ... then ExitLoop
WEnd
SplashOff ();das MUSS nicht sein, gehört sich aber so
AdlibDisable()
BlockInput(0)
MsgBox(0, "Sperre","Blockade beendet", 2)
Func tm()
ProcessClose("taskmgr.exe")
MouseMove(@DesktopWidth, @DesktopHeight, 1) ;setzt den Mauszeiger fest
BlockInput(1) ;zusätzlich Tastatur und Maus blocken
WinClose('Windows Task-Manager') ;Aufruf des Taskmanagers blocken
EndFunc
Gruß
Westi
ZitatOriginal von trallala
Mahlzeit,ich war mal so frei und habe die "doppelte" Funktion 'chkbx2' rausgeworfen. Immerhin weitere 2 Zeilen weniger Code. Trozdem bitte mal testen
Gruß Trallala
Klappt aber nicht, weil dann die zweite Gruppe Checkboxen die selbe ID bekommen, wie die erste.
Gruß
Westi
@huggy
Du bist aber 'ne Spassbremse
Da ja im Moment hier die Minimalistik vorherrscht, mein Beispielskript dazu.
Erzeugt 52 checkboxes(2 x A-Z) und ein paar Buttons.
Erzeugt Binärwerte aus der Registry und übersetzt sie in Dezimalwerte.
(AutoIT3 kann das von Natur aus ja nicht so gut)
Nix Externes. Dadurch bleibt das kompilierte Programm auch viel kleiner.
Hat jemand eine Idee, den Code weiter zu kürzen?
97 Zeilen ist aber schon gut, oder?
Global $ix1[26],$ix2[26],$reg="HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer",$w=40,$h=20,$chbx[26]=["a:","b:","c:","d:","e:","f:","g:","h:","i:","j:","k:","l:","m:","n:","o:","p:","q:","r:","s:","t:","u:","v:","w:","x:","y:","z:" ]
GUICreate("Laufwerke",250,350)
chkbx1(10,10,0,12) ; erzeuge 13 checkboxes
chkbx1(60,10,13,25) ; erzeuge weitere 13 checkboxes
chkbx2(160,10,0,12) ; erzeuge 13 checkboxes
chkbx2(200,10,13,25) ; erzeuge weitere 13 checkboxes
$OK=GUICtrlCreateButton("OK",10,300,90,30)
$Ab=GUICtrlCreateButton("Beenden",150,300,90,30)
GUICtrlCreateLabel ("Ausblenden",10,280,80,20 )
GUICtrlCreateLabel ("Sperren",150,280,80,20 )
$lwhid=RegRead($reg,"NoDrives")
get($lwhid,$ix1) ;lese versteckte Lw aus der Registry
$lwres=RegRead($reg,"NoViewOnDrive")
get($lwres,$ix2) ;lese verbotene Lw aus der Registry
GUISetState()
While 1
$msg=GUIGetMsg()
If $msg=$OK Then
RegWrite($reg,"NoDrives","REG_DWORD",Read($ix1))
RegWrite($reg,"NoViewOnDrive","REG_DWORD",Read($ix2))
EndIf
If $msg=$Ab Then ExitLoop
WEnd
Func get($lw,$ix)
If $lw>0 Then
$b=''
While $lw > 0
$b=String(Mod($lw,2))&$b
$lw=Int($lw/2)
WEnd
$lw=StringSplit($b,"")
$_max=$lw[0] - 1
_AD($lw,0)
_AR($lw)
For $y=0 To $_max
If $lw[$y]=1 Then GUICtrlSetState($ix[$y],1)
Next
Else
EndIf
Endfunc
Func chkbx2($l,$t,$1,$2)
For $c=$1 To $2
$ix2[$c]=GUICtrlCreateCheckbox($chbx[$c],$l,$t,$w,$h)
$t=$t+20
Next
EndFunc
Func chkbx1($l,$t,$1,$2)
For $c=$1 To $2
$ix1[$c]=GUICtrlCreateCheckbox($chbx[$c],$l,$t,$w,$h)
$t=$t+20
Next
EndFunc
Func Read($idx)
$h=""
For $y=25 To 0 Step -1
If GUICtrlRead($idx[$y])=1 Then
$h=$h&1
Else
$h=$h&0
EndIf
Next
$d=0
For $i=0 To StringLen($h) Step 1
$d=$d+Number(StringMid($h,StringLen($h)-$i,1))*(2^$i)
Next
Return $d
EndFunc
Func _AD(ByRef $ar, $ie)
Local $iC = 0, $iU = 0
$iU = UBound($ar)
Local $arn[$iU - 1]
If $ie < 0 Then $ie = 0
If $ie > ($iU - 1) Then $ie = ($iU - 1)
If $ie > 0 Then
For $iC = 0 To $ie - 1
$arn[$iC] = $ar[$iC]
Next
EndIf
If $ie < ($iU - 1) Then
For $iC = ($ie + 1) To ($iU - 1)
$arn[$iC - 1] = $ar[$iC]
Next
EndIf
$ar = $arn
Return 1
EndFunc
Func _AR(ByRef $ar, $iB = 0, $iU = 0)
Local $tp, $lt = UBound($ar) - 1
If $iU < 1 Or $iU > $lt Then $iU = $lt
For $i = $iB To $iB + Int(($iU - $iB - 1) / 2)
$tp = $ar[$i]
$ar[$i] = $ar[$iU]
$ar[$iU] = $tp
$iU = $iU - 1
Next
Return 1
EndFunc
;Copyright Westi
Zur Vunkzion:
Ferschtekt(Ausblenden) oder ferbeatet(Sperren) den Zugriff auf Laufwerke.
Ich habe es nicht besonders lesbar gemacht, aber für die Experten sollte es verständlich sein.
Es ist halt minimalistisch...
Gruß
Westi
Hallo Oscar,
muss das nicht [OnRemoval1] heissen?!
Gruß
Westi
Fast2
Ich denke, ich habe Dir das Skript schon soweit gebastelt.
Problem mit Statusabfrage
Was gefällt Dir daran nicht?
GUIs beim Start erstellen ist aber auf jeden Fall performanter als sie bei einem Klick mitten im Ablauf zu erstellen.
Gruß
Westi
Fast2
Grundsätzlich solltest Du vor GUICreate eine Variable setzen und diese ansprechen..
z.B.
$_wd1 = GUICreate("Drag Racer Trainer", 600, 450)
[/autoit]Dann brauchst Du nicht mit WinGetHandle umständlich zu hantieren.
Mehrere GUIs erzeugst Du besser hintereinander und versteckst sie solange bis Du sie brauchst.
1. Fällt das Prüfen leichter, da alles schon beim Start gemalt wird
2. Ist die Ausführung flüssiger
3. Ist die Lesbarkeit besser
Dein Fehler:
If $msg = $B2 Then
..
Else
MsgBox(0, "Rock wurde nicht ausgewählt", "Bitte trotzdem OK klicken")
Was soll das Skript anderes machen, als diese Box anzuzeigen?
Da man nichts ausgewählt hat, muss das so kommen.
Gruß
Westi
#include <GUIConstants.au3>
$_WH1 = GUICreate("Drag Racer Trainer", 600, 450)
GUISetFont(14)
GUICtrlCreateLabel("Dieser Trainer Automatisiert den Show Off Modus von Drag Racer v3", 20, 20)
GUICtrlCreateLabel("Achtung! Dieser Trainer wurde nur für Firefox v1.5 getestet", 60, 60)
GUICtrlCreateLabel("Bitte wählen sie aus den Einstellungen", 120, 100)
$_R1 = GUICtrlCreateRadio("Das Spiel ist in einem Fenster ", 30, 140)
$_R2 = GUICtrlCreateRadio("Das Spiel ist in einem Task ", 300, 140)
$_W1 = GUICtrlCreateButton("Weiter", 380, 400, 80)
$_F1 = GUICtrlCreateButton(" Fertig", 500, 400, 75)
$_Fa1 = GUISetBkColor(0x0000CD)
$_WH2 = GUICreate("Drag Racer Trainer Auswahl", 500, 200)
GUISetBkColor(0x0000CD)
$_CBM = GUICtrlCreateCombo("Bitte wählen sie die Musik", 25, 25)
GUICtrlSetData($_CBM, "Rock|Classic Rock|Hard Rock|Pop|HipHop|Rap")
$_B2 = GUICtrlCreateButton("Bestätigen", 435, 170)
GUISetState(@SW_Hide, $_WH2)
GUISetState(@SW_Show, $_WH1)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $_W1
GUISetState(@SW_Hide, $_WH1)
GUISetState(@SW_Show, $_WH2)
Case $msg = $_F1
Exit
Case $msg = $_B2
Case $msg = $_CBM
MsgBox(0, GUICtrlRead ( $_CBM), "Bitte auf OK klicken")
EndSelect
If $msg = $GUI_Event_Close Then
Exit
EndIf
WEnd
ZitatOriginal von Oscar
...
Bezüglich der Lebensdauer des USB-Sticks bei dieser Art der Verwendung bin ich mir nicht so sicher.
...
Ich mir auch nicht, deshalb nehme ich es auch nicht als Tatsache an.
USBDLM ist wirklich klasse.
Trotz meines 389in1 Kartenleser-Kaffekoch-Wäscheaufhäng-Müllraustrag-Geräts sind nur die LW-Buchstaben zugeordnet, die auch ein gültiges Medium haben.
Außerdem weiss ich jetzt welcher Buchstabe beim Einstecken einer Karte/eines Sticks verwendet wird.
Unter http://www.uwe-sieber.de/usbdlm_help.htm kann man sich die Hilfe mal anschauen.
Oh, jetzt wird's aber wirklich OT...
Gruß
Westi
Du bist 'n ziemlicher Witzbold, oder? :hammer:
Das muss reichen:
[autoit]_FFSetValueByName(ByRef $Socket, "name", "Dein Name")
_FFSetValueByName(ByRef $Socket, "pw", "geheim123")
Gruß
Westi
ZitatOriginal von .::Mignon::.
betrifft das auch mein script???...
Ich denke schon.
Da man direkt auf das Dateisystem zugreift, ist das auch ein Lesezugriff.
Mit NTFS würde man sogar einen Schreibzugriff auslösen(Zugriffsstempel).
Besser ist es, nur die physische Zuordnung zu testen.
Festen LW-Buchstaben zuordnen und dann das hier:
$_drv = "E:" ;zu testendes LW
If DriveStatus ( $_drv ) = "READY" then
MsgBox(4096,"Laufwerk" , $_drv & " vorhanden")
Else
MsgBox(4096,"Laufwerk" , $_drv & " nicht vorhanden")
EndIf
Wer sich mit WMIC auskennt und XP Prof oder 2k3 Server hat kann das sogar eleganter mit
machen.
Oder halt etwas umständlicher mit WMI:
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$Output=""
$objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk Where Description='Wechseldatenträger'", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
$Output = $objItem.Name & @CRLF
if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
$Output=""
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "Win32_LogicalDisk" )
Endif
Will man fast absolute Zugriffssicherheit, kommt man an der Seriennummer-Nummer :] nicht vorbei!
WMI(C) bietet halt den Komfort der direkten Filterung.
Mit Uwe Siebers "ListUSBDrives" kann man natürlich noch ganz andere Sachen filtern, die ich so noch nicht gesehen habe.
Gruß
Westi
Wer sich mit diesem Thema beschäftigt, kommt an Uwe Siebers USB Drive Letter Manager nicht vorbei.
Damit lässt sich fast alles anstellen:
ZitatLaufwerkbuchstaben für die Benutzung durch USB-Laufwerke sperren
Laufwerksbuchstaben von Kartenlesern entfernen bis ein Medium eingelegt wird (nicht unter Window 2000)
Laufwerksbuchstaben von USB-Laufwerken entfernen lassen und so Zugriff darauf verhindern, auch abhängig vom angemeldeten Nutzer
Eine Autostart-Aktion für jedes angeschlossene Laufwerk definieren, z.B. den Explorer damit öffnen
Einen Balloon-Tip mit dem einem neuen Laufwerk zugeordneten Laufwerksbuchstaben anzeigen lassen und beim Klick auf den Balloon-Tip ein Programm starten
usw.
Bedenkt aber, dass bei jedem Zugriff auf den Stick, dessen Lebensdauer leidet/leiden kann.
Manche Hersteller geben nur 10.000 Schreib- und Lesezyklen an.
Gruß
Westi