1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. ytwinky

Beiträge von ytwinky

  • GetSID, jetzt(auch mit GUI) aber wirklich..

    • ytwinky
    • 9. April 2006 um 11:57

    Hi,
    wer in der Registry nach Userprofilen sucht, kann Glück haben, wenn er alle erwischt..
    Bei der Installation erstellt XP den User 'Administrator' mit entsprechenden Einträgen
    in der Registry und auch in den Ordnern. Diesen Namen kennt JEDER und wenn der dann
    auch noch kein Kennwort hat..
    Egal, niemand hindert uns daran, dieses Konto umzubenennen(z.B. 'Verwalter'). Damit
    schlägt aber die Verzeichnissuche in der Registry fehl, denn die Verzeichnisse
    sind immernoch für den 'Administrator' angelegt(und ich empfehle auch nicht, das zu
    ändern)!
    Wie komme ich nun trotzdem an die SID von 'Verwalter'?
    Richtig, dafür gibts ja Scriptomatic..

    Spoiler anzeigen
    Code
    ; Erstellt von AutoIt Scriptomatic
    ;umgearbeitet von ytwinky ;-)))
    Msgbox(1, "GetSid, aber richtig..", myGetSID("", "", 0))
    Func myGetSID($User=@UserName, $Host=@ComputerName, $NurEiner=True)
    	Local $wbemFlagReturnImmediately=0x10, $wbemFlagForwardOnly=0x20, $colItems="", $angemeldet="Angemeldet: "
    	Local $JaNein[2]=[True, False], $Gesucht="Gesucht: "
    	If $User="" Then $User=@UserName
    	If StringInstr($Host, "\\")=1 Then $Host=StringMid($Host, 3)
    	If $Host="" Then $Host="."
    	$NurEiner=$JaNein[$NurEiner=False]
    	$Output="Computer: " &$Host &@Cr
    	$Output&=StringFormat("%50s", "SID") &StringFormat("%60s", "Name") &@Cr
    	$objWMIService=ObjGet("winmgmts:\\" &$Host &"\root\CIMV2")
    	If IsObj($objWMIService) Then
    		$colItems=$wbemFlagReturnImmediately+$wbemFlagForwardOnly
    		$colItems=$objWMIService.ExecQuery("SELECT * FROM Win32_AccountSID", "WQL", $colItems)
    		If IsObj($colItems) Then
    			For $objItem In $colItems
    				$s=$objItem.Setting
    				$s=StringMid($s, StringInStr($s, "SID=")+4) &@Tab
    				$s&=StringMid($objItem.Element, StringInStr($objItem.Element, "Name=")+5)
    				If StringInstr($s, Chr(34) &$User &Chr(34)) Then $Gesucht&=$s
    				If StringInstr($s, Chr(34) &@UserName &Chr(34)) Then $angemeldet&=$s
    				$OutPut&=StringReplace($s, Chr(34), "") &@Cr
    			Next
    			If $NurEiner Then Return StringReplace($Gesucht &@Cr &$angemeldet, Chr(34), "")
    			Return $OutPut &@Cr &StringReplace($angemeldet, Chr(34), "")
    		Else
    			Return "Keine WMI-Objekte gefunden für Klasse: Win32_AccountSID"
    		Endif
    	Else
    		Return $Host &" ist nicht in diesem Netz.."
    	EndIf
    EndFunc
    Alles anzeigen

    So klappt's auch mit dem 'Verwalter' ;)
    Btw: Eigentlich wollte ich ja nur mit der Stringformatierung spielen..
    Gruß
    ytwinky

  • Konkurrenz

    • ytwinky
    • 8. April 2006 um 17:46

    ..aaahh, wie ich solche 'Unfagen' hasse..
    Natürlich habe ich für hier gestimmt:
    1. habe ich hier schon ein paar Sachen/Skripts gepostet
    2. habe ich hier schon Hilfe erhalten
    3. werden meine Sachen hier auch gelesen
    Ich kann nicht im gesamten Netz posten, das macht mein 56k-Modem nicht mit..
    .. ähm, und auch meine Telefonrechnung :D
    Gruß
    ytwinky

  • brauche hilfe

    • ytwinky
    • 6. April 2006 um 20:32

    Hi,
    kuckma hier:
    http://autoit.aufwaerts.de/thread.php?threadid=263&sid=
    die Zeile, in der ein ProgrammIcon eingesetzt wird, ist zwar
    auskommentiert, zeigt die aber, wie in AutoIt dem Programm ein eigenes Icon zugewiesen werden kann
    Gruß
    ytwinky

  • Richtungswinkel und Entfernung

    • ytwinky
    • 6. April 2006 um 20:25

    Hi,
    nicht immer benutze ich AutoIt zum Zeitvertreib..
    Nach anfänglichen Schwierigkeiten, komme ich jetzt sogar mit Koda klar.
    Einige Sachen gefallen mir daran zwar nicht, aber damit kann ich leben.
    (Ich habe ein von Koda erzeugtes GUI(~9k) durch manuelle Bearbeitung auf
    ~1.5k zusammengestaucht(Schleifen benutzt, u.ä..). Eine richtig 'ernste'
    Anwendung ist folgendes Skript:

    Spoiler anzeigen
    C
    ;<AutoItScript>
    #NoTrayIcon
    ;+----------------------------------------------------------------------------+
    ;|    FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins         |
    Const $Autor="Riwi.au3 ©2006 by Dipl.-Ing. Jörg Zühlke, MD"; aka ytwinky      |
    ;|    EMail: [EMAIL]PIII1kSystem-AutoIt3Forum@yahoo.de[/EMAIL]                               |
    ;|    AutoIt3-Version: 3.1.1.117(beta)                                        |
    ;|    Editor: SciTE 1.67, feste Schriftart, mit Koda 1.4.0                    |
    ;|    Zweck : Berechnung von Richtungswinkel und Entfernung                   |
    ;|    Tab auf 2 setzen wg. Lesbarkeit                                         |
    ;+----------------------------------------------------------------------------+
    #include <GUIConstants.au3>
    Global $Pi=4*Atan(1), $WMod[3], $PrtDim[3]=[" °", " gon", " rad"]
    $Form1 = GUICreate("Riwi", 437, 323, 280, 252)
    ;GUISetIcon("WinkelSymbol.Ico") ;hier eigenes Icon einfügen
    GUICtrlCreateLabel("Status", 1, 1, 41, 13)
    $Group1 = GUICtrlCreateGroup("Nachkommastellen", 3, 13, 201, 39)
    	MakeLabel("Winkel:", 7, 29, 41, 13)
    	$WNk = GUICtrlCreateCombo("4", 50, 27, 40, 21)
    	GUICtrlSetData(-1, "4|6|8|10|*")
    	GUICtrlSetTip(-1, "Nachkommastellen wählen")
    	MakeLabel("Strecken:", 106, 29, 54, 13)
    	$SNk = GUICtrlCreateCombo("3", 162, 27, 40, 21)
    	GUICtrlSetData(-1, "3|5|7|9|*")
    	GUICtrlSetTip(-1, "Nachkommastellen wählen")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Strecken in", 202, 13, 82, 39)
    	$SDim = GUICtrlCreateInput("m", 214, 27, 65, 21, $ES_CENTER, $WS_EX_CLIENTEDGE)
    	AddTip("Streckendimension für die Ausgabe eintragen")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group3 = GUICtrlCreateGroup("Winkelmodus", 282, 13, 153, 39)
    	$WMod[0] = GUICtrlCreateRadio("Deg", 288, 29, 45, 17)
    	AddTip("Altgrad(Vollkreis=360°)")
    	$WMod[1] = GUICtrlCreateRadio("Gon", 340, 29, 45, 17)
    	GUICtrlSetState(-1, $GUI_CHECKED)
    	AddTip("Neugrad(Vollkreis=400gon)")
    	$WMod[2] = GUICtrlCreateRadio("rad", 392, 29, 41, 17)
    	AddTip("radiant(Vollkreis=2Pi) aka Bogenmaß")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group4 = GUICtrlCreateGroup("Berechnung", 1, 56, 436, 218)
    	$Prt1=GUICtrlCreateLabel("Richtungswinkel und Entfernung", 74, 70, 320, 30)
    	GUICtrlSetFont(-1, 16, 800, 0, "MS Sans Serif")
    	GUICtrlSetColor(-1, 0x000080)
    	$Prt2=GUICtrlSetTip(-1, $Autor)
    	MakeLabel("Punktnummer", 8, 96, 80, 17)
    	MakeLabel("Rechtswert", 140, 96, 68, 17)
    	MakeLabel("Hochwert", 268, 96, 58, 17)
    	MakeLabel("Differenzen", 67, 178, 69, 17)
    	MakeLabel("t=", 124, 220, 15, 17)
    	MakeLabel("s=", 124, 252, 17, 17)
    	$PNrS = GUICtrlCreateInput("Standpunkt", 8, 112, 121, 21, -1, $WS_EX_CLIENTEDGE)
    	GUICtrlSetTip(-1, "Standpunktbezeichnung")
    	$rs = GUICtrlCreateInput("50", 136, 112, 121, 21, $ES_RIGHT, $WS_EX_CLIENTEDGE)
    	$hs = GUICtrlCreateInput("50", 264, 112, 121, 21, $ES_RIGHT, $WS_EX_CLIENTEDGE)
    	$PNrZ = GUICtrlCreateInput("Zielpunkt", 8, 144, 121, 21, -1, $WS_EX_CLIENTEDGE)
    	GUICtrlSetTip(-1, "Zielpunktbezeichnung")
    	$rz = GUICtrlCreateInput("60", 136, 144, 121, 21, $ES_RIGHT, $WS_EX_CLIENTEDGE)
    	$hz = GUICtrlCreateInput("60", 264, 144, 121, 21, $ES_RIGHT, $WS_EX_CLIENTEDGE)
    	$dr = GUICtrlCreateInput("", 136, 176, 121, 21, $ES_RIGHT, $WS_EX_CLIENTEDGE)
    	$dh = GUICtrlCreateInput("", 264, 176, 121, 21, $ES_RIGHT, $WS_EX_CLIENTEDGE)
    	$t = GUICtrlCreateInput("", 136, 217, 121, 21, -1, $WS_EX_CLIENTEDGE)
    	GUICtrlSetTip(-1, "Richtungswinkel im eingestellten Winkelmodus")
    	$s = GUICtrlCreateInput("", 136, 249, 121, 21, -1, $WS_EX_CLIENTEDGE)
    	GUICtrlSetTip(-1, "Strecke in der eingegebenen Dimension, gewöhnlich m")
    	MakeLabel("entn.", 396, 96, 33, 17)
    	GUICtrlSetTip(-1, "Entnahmehinweis eintragen")
    	$entS = GUICtrlCreateInput("Bsp.1", 388, 112, 45, 21, -1, $WS_EX_CLIENTEDGE)
    	$entZ = GUICtrlCreateInput("Bsp.2", 388, 144, 45, 21, -1, $WS_EX_CLIENTEDGE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group5 = GUICtrlCreateGroup("Bedienung", 1, 276, 436, 45)
    	$Neu = GUICtrlCreateButton("Neu", 6, 292, 75, 25)
    	AddTip("Alles neu..")
    	$Berechne = GUICtrlCreateButton("Berechnen", 120, 292, 75, 25)
    	AddTip("neue Berechnung der aktuellen Werte")
    	$Speichern = GUICtrlCreateButton("Speichern", 240, 292, 75, 25)
    	AddTip("Speichert die aktuelle Berechnung")
    	$Quit = GUICtrlCreateButton("Exit", 357, 292, 75, 25)
    	AddTip("Na, was wohl..")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    Berechne()
    GUISetState(@SW_SHOW)
    While 1
    	Switch GuiGetMsg()
    		Case $GUI_EVENT_CLOSE
    			ExitLoop
    		Case $Quit
    			ExitLoop
    		Case $WMod[0], $WMod[1], $WMod[2], $SNk, $WNk, $Berechne
    			Berechne()
    		Case $Neu
    			GUICtrlSetData($dr, "")
    			GUICtrlSetData($dh, "")
    			GUICtrlSetData($s, "")
    			GuiCtrlSetData($t, "")
    			GUICtrlSetData($rz, "")
    			GUICtrlSetData($hz, "")
    			GUICtrlSetData($hs, "")
    			GuiCtrlSetData($rs, "")
    			GUICtrlSetData($PNrS, "")
    			GuiCtrlSetData($PNrZ, "")
    			GUICtrlSetState($WMod[1], $GUI_CHECKED)
    			GUICtrlSetData($SNk, "3")
    			GUICtrlSetData($WNk, "4")
    			GUICtrlSetData($PrtDim, "m")
    		Case $Speichern
    			$Prt=GUICtrlRead($Prt1) &@CrLf
    			$Prt&=StringMid($Autor, StringInstr($Autor, " ")) &@CrLf
    			$Prt&="Berechnung vom " &@MDay &"." &@Mon &"." &@Year &", " &@Hour &":" &@Min &":" &@Sec
    			$Prt&=", ausgeführt von " &@UserName &" am " &@ComputerName &@CrLf
    			$Prt&=StringFormat("%22s", "Pkt-Nr.") &StringFormat("%16s", "Rechtswert")
    			$Prt&=StringFormat("%12s", "Hochwert") &StringFormat("%11s", "entn.")  &@CrLf
    			$Prt&=StringFormat("%10s", "Standpunkt:") &TabForm($PNrS) &TabForm($rs) &TabForm($hs) &" "
    			$Prt&=GUICtrlRead($entS) &@CrLf
    			$Prt&=StringFormat("%11s", "Zielpunkt:") &TabForm($PNrZ) &TabForm($rz) &TabForm($hz) &" "
    			$Prt&=GUICtrlRead($entZ) &@CrLf
    			$Prt&=StringFormat("%25s", "Differenzen:") &TabForm($dr) &TabForm($dh) &@CrLf
    			$Prt&=StringFormat("%38s", "t=" &GUICtrlRead($t)) &$PrtDim[GetWMod()] &@CrLf
    			$Prt&=StringFormat("%38s", "s=" &GUICtrlRead($s)) &" " &GUICtrlRead($SDim) &@CrLf
    			$DateiName="Riwi" &@Year &@Mon &@MDay &@Hour &@Min &@Sec &".Txt"
    			$DateiName=FileSaveDialog("Dateispeichern", "", "Textdateien(*.Txt)", 16+2, $DateiName)
    			If @Error=0 Then
    				$DHnd=FileOpen($DateiName, 2)
    					FileWrite($DHnd, $Prt)
    				FileClose($DHnd)
    			EndIf
    		Case Else
    			;;;;;;;;;;;;;;
    	EndSwitch
    WEnd
    Exit
    
    
    ;<Funcs>
    
    
    Func Berechne()
    	GUICtrlSetData($dr, CtrlFormat($hz)-CtrlFormat($hs))
    	GUICtrlSetData($dh, CtrlFormat($rz)-CtrlFormat($rs))
    	GUICtrlSetData($t, ATan2(CtrlFormat($dr), CtrlFormat($dh))*Rho())
    	GUICtrlSetData($t, sf($WNk, $t))
    	GUICtrlSetData($s, Sqrt(GUICtrlRead($dr)^2+GUICtrlRead($dh)^2))
    	CtrlFormat($s)
    EndFunc
    
    
    Func CtrlFormat($Which)
    	GUICtrlSetData($Which, sf($SNk, $Which))
    	Return GUICtrlRead($Which)
    EndFunc
    
    
    Func IIF($Cond, $TrueVal, $FalseVal)
    	Local $NoYes[2]=[$FalseVal, $TrueVal]
    	Return $NoYes[$Cond]
    EndFunc
    
    
    Func ATan2($dy, $dx, $NurPositiv=True) ;Quadrantenrichtige Arcustangens-Funktion in rad
    	Local $Eps=1E-10, $at2
      Select
        Case Abs($dy)<$Eps ;-pi(-180°) | 0(0°)
          $at2=IIf(($dx<0), -$Pi, 0)
        Case Abs($dx)<$Eps ;-pi/2(-90°) | +pi/2(+90°)
          $at2=IIf(($dy<0), -$Pi/2, $Pi/2)
        Case Else
          $at2=Atan($dy/$dx)+IIf(Atan($dy/$dx)<0, IIf($dx<0, $Pi, 0), IIf($dy<0, -$Pi, 0))
      EndSelect
      If $NurPositiv And ($at2<0) Then $at2+=2*$Pi
    	Return $at2
    EndFunc
    
    
    Func Rho()
    	Dim $d[3]=[45, 50, Atan(1)]
    	Return $d[GetWMod()]/$d[2]
    EndFunc
    
    
    Func GetWMod()
    	If GUICtrlRead($WMod[0])=$GUI_CHECKED Then Return 0
    	If GUICtrlRead($WMod[1])=$GUI_CHECKED Then Return 1
    	Return 2
    EndFunc
    
    
    Func MakeLabel($s, $Links, $Oben, $Breite, $Hoehe)
    	GUICtrlCreateLabel($s, $Links, $Oben, $Breite, $Hoehe)
    	GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    EndFunc
    
    
    Func AddTip($s)
    	GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    	GUICtrlSetTip(-1, $s)
    EndFunc
    
    
    Func TabForm($Was)
    	Return StringFormat("%14s", GUICtrlRead($Was))
    EndFunc
    
    
    Func sf($Wie, $Was)
    	If GUICtrlRead($Wie)<>"*" Then
    		Return StringFormat("%7." &GUICtrlRead($Wie) &"f", GUICtrlRead($Was))
    	Else
    		Return GUICtrlRead($Was)
    	EndIf
    EndFunc
    
    
    ;</AutoItScript>
    Alles anzeigen

    Ich habe ein paar nette Tricks eingebaut, vllt. hat ja jemand Verwendung dafür..
    Ein echtes Schmankerl ist jedoch meine Funktion ATan2(..), die immer einen Winkel im
    Bereich von 0..2Pi liefert(läßt sich aber abstellen).
    Hauptziel war jedoch nicht die Erstellung eines ProfiTools, sondern ich wollte einfach
    nur diverse Funktionen von AutoIt erproben.
    Ich bitte um Beachtung, daß ich eine eigene IIF-Funktion verwende: Ist IMO eleganter..
    Achso, ein Icon habe ich nicht mitgeliefert, aber die Stelle, wo es eingebaut wird ;)
    Gruß
    ytwinky

  • Frage: Scrollbalken entfernen

    • ytwinky
    • 2. April 2006 um 14:41

    GtaSpider :
    mein Problem ließ sich leider nur durch Probieren lösen:

    Code
    $Edit1=GUICtrlCreateEdit("Ooops", 8, 66, 241, 117, $ES_OEMCONVERT, $WS_EX_CLIENTEDGE)

    So klappt's auch ohne ScollBars..
    Ich weiß nich, warum, aber so gehz ;)
    Trotzdem Dank
    ytwinky

  • Frage: Scrollbalken entfernen

    • ytwinky
    • 2. April 2006 um 13:32

    Uiiii, das ging ja schnell.
    Danke gtaspider..
    Bin mal gespannt, ob das funktioniert..
    Gruß
    ytwinky

  • Frage: Scrollbalken entfernen

    • ytwinky
    • 2. April 2006 um 09:47

    Hi AlleMann,
    beim Spielen mit SciTE habe ich den Koda-Code-Generator entdeckt..
    Wow, ich bin begeistert und ich habe gleich das wichtigste GUI
    damit entwickelt, das ich benötige: FreeScore.au3 :schild4:

    Spoiler anzeigen
    Code
    #include <GUIConstants.au3>
    #NoTrayIcon
    $Form1=GUICreate("FreeScore", 258, 221, 882, 22, -1, $WS_EX_TOPMOST)
    GUISetIcon("Freecell.Ico")
    GUICtrlCreateLabel("Gewonnen", 9, 6, 72, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Verloren", 9, 26, 72, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("Total", 9, 46, 72, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $gGew=GUICtrlCreateLabel("12861", 80, 6, 44, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    $gVerl=GUICtrlCreateLabel("10794", 80, 26, 44, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    $gTotal=GUICtrlCreateLabel("83655", 80, 46, 44, 20, $SS_RIGHT)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    GUICtrlSetTip(-1, "mehr als 99999 spielt keiner..")
    GUICtrlCreateLabel("=", 125, 6, 10, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("=", 125, 26, 10, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $gGewP=GUICtrlCreateLabel("78.28", 136, 6, 70, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    $gVerlP=GUICtrlCreateLabel("21.72", 136, 26, 70, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x000080)
    $Edit1=GUICtrlCreateEdit("Ooops", 8, 66, 241, 117, -1, $WS_EX_CLIENTEDGE)
    GUICtrlSetData($Edit1, "Dies ist KEIN Tweakprogramm.." &@CRLF &"(Spielstände werden nur gelesen!)")
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    GUICtrlSetTip(-1, "(Geschummelt wird mit Ctrl-Shift-F10)")
    $Button1 = GUICtrlCreateButton("(Not allowed)", 8, 184, 33, 25, $BS_BITMAP)
    GUICtrlSetImage($Button1, "C:\AutoIt3\au3\FreeScore-F5.Bmp")
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetTip(-1, "Aktualisieren..")
    $Button2=GUICtrlCreateButton("(Not allowed)", 44, 184, 40, 25, $BS_BITMAP)
    GUICtrlSetImage($Button2, "C:\AutoIt3\au3\FreeScore-Exit.bmp")
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetTip(-1, "Na, was wohl..")
    $Button3=GUICtrlCreateButton("(Not allowed)", 175, 184, 75, 25, $BS_BITMAP)
    GUICtrlSetImage($Button3, "C:\AutoIt3\au3\FreeScore-Nochmal.bmp")
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetTip(-1, "..doch nochmal ;-))")
    GUISetState(@SW_SHOW)
    ShowIt()
    While 1
    	Switch GuiGetMsg()
    		Case $Button1
    			ShowIt()
    		Case $Button2
    			Exit
    		Case $Button3
    			If WinActivate("FreeCell")=0 Then Run("FreeCell.Exe")
    		Case $GUI_EVENT_CLOSE
    			ExitLoop
    		Case Else
    			;;;;;;;;;;;;;;
    	EndSwitch
    WEnd
    Exit
    
    
    Func ShowIt()
    	Dim $vk=6
    	$Gew=Bin2Int("won")
    	$Verl=Bin2Int("lost")
    	$Total=$Gew+$Verl
    	$GewP=StringFormat("%" &$vk &".2f", Round($Gew/$Total*100, 2))
    	$VerlP=StringFormat("%" &$vk &".2f", Round($Verl/$Total*100, 2))
    	GUICtrlSetData($gGew, $Gew)
    	GUICtrlSetData($gVerl, $Verl)
    	GUICtrlSetData($gTotal, $Total)
    	GUICtrlSetData($gGewP, $GewP &"%")
    	GUICtrlSetData($gVerlP, $VerlP &"%")
    EndFunc
    
    
    Func Bin2Int($Was)
    	Dim $s=RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\FreeCell", $Was)
    	Return GetIt($s, 1)*(16^0)+GetIt($s, 3)*(16^2)+GetIt($s, 5)*(16^3)+GetIt($s, 7)*(16^6)
    EndFunc
    
    
    Func GetIt($s, $Was)
    	Return "0x" &StringMid($s, $Was, 2)
    EndFunc
    Alles anzeigen


    Allerdings habe ich eine Frage dazu:
    Ist es möglich die dämlichen Scrollbar-Reste aus der EditBox
    rauszuwerfen? Nur mit der englischen/Hilfe habe ich es nicht geschafft..
    Wäre schön, wenn mir jemand helfen könnte..
    Gruß und Dank im Voraus
    ytwinky

  • Frage: Rechte für Registry ändern

    • ytwinky
    • 30. März 2006 um 20:19

    Schau einfach mal in RegistryWizard/WinFaq von Frank Ullrich nach..
    ..In der neuen Version 1.67 steht beschrieben, wie du dich mit einer Remote-Registry verbindest..
    http://www.winfaq.de/
    (falls du die Adresse nicht kennst..)
    Gruß
    ytwinky

  • Neues mit _IEPrt - _myBin($Dez, $Trenner)

    • ytwinky
    • 30. März 2006 um 11:20

    Hi,
    Eigentlich wollte ich nur die Einstellung NoDriveTypeAutoRun mit AutoIt bearbeiten..
    Aber wie forme ich in AutoIt ein Byte in einen String mit Nullen und Einsen?
    ..Und wieso nur ein Byte und kein Word?
    ..Und wieso kein DWord?
    Ich weiß, daß es Programme gibt, die von System 'WasWeißIch' in das System 'WohinDennNoch'
    transformieren können, aber warum mit Kanonen auf Spatzen schießen?
    So entstand _myBin($Dez, $Trenner), auch um die Möglichkeiten von _IEPrt zu demonstrieren..
    Sicherlich kein optimales Script und ein weites Betätigungsfeld für Optimierer, aber es
    macht seine Arbeit ;)

    Spoiler anzeigen
    Code
    Func _myBin($Dez, $Trenner="")
    	Local $hx=Hex($Dez, 8), $i, $j, $b="", $hb, $h, $s
    	If Abs($Dez)>2^32-1 Or $Dez<-2^31 Then Return "<font color=red>Ooops, kein Integer.."
    	If StringInstr("01", $Trenner) Then $Trenner="" ;0 und 1 als Trenner wären Unsinn..
    	For $i=1 To StringLen($hx)
    		$hb="0x" &StringMid($hx, $i, 1)
    		$h=""
    		$s=""
    		$j=0
    		Do
    			$h&=(BitAND($hb, 2^$j)<>0)*1
    			$j+=1
    		Until 2^($j)>$hb And Mod(StringLen($h), 4)=0
    		If $i<>1 And Mod($i, 2)<>0 Then $b&=$Trenner
    		For $j=StringLen($h) To 1 Step -1
    			$b&=StringMid($h, $j, 1)
    		Next
    	Next
    	Switch $Dez
    		Case 0 To 255
    			$i=8
    		Case 256 To 65535
    			$i=16+1*($Trenner<>"")
    		Case 65536 To 2^24-1
    			$i=24+2*($Trenner<>"")
    		Case Else
    			$i=StringLen($b)
    	EndSwitch
    	Return StringRight($b, $i) ;weitere Stringbearbeitung beim Benutzer..
    EndFunc
    Alles anzeigen

    Das ist nur was für Puristen, wer sich das gesamte Script downloadet, erhält
    natürlich auch noch eine schicke Ausgabe und als Bonbon die Funktion _myHex($Dez, $Anz).
    Ooops, ich darf nur 2048 KB anhängen, dann eben anders: Download myBin.au3
    Einzige Einschränkung: '0' und '1' sind als Trennzeichen für Binärstrings nicht zugelassen :D
    Und nun fröhliches Bit-Zählen
    Gruß
    ytwinky

  • Registry-KeyTypen als String anzeigen

    • ytwinky
    • 23. März 2006 um 22:41

    Eigentlich ist dieses Skript aus Wut entstanden..
    Ich wollte die Ermittlung des KeyTyps über StringSplit(..) machen:

    Code
    StringSplit("REG_SZ~REG_EXPAND_SZ~REG_BINARY~REG_DWORD~~~REG_MULTI_SZ", "~")


    Das liefert auch perfekt ein Array für die vorhandenen Indizes..
    Da aber niemand genau sagen kann, wer welche Keys mit welchen (geheimen) Typen in die Registry geschrieben hat,
    sollte also statt eines Leerstrings eine Meldung erscheinen.
    Das ist aber mit der o.g. Methode nicht möglich :(
    Also habe ich aus der Not eine Tugend gemacht und eine leicht zu wartenden Function geschrieben:

    Spoiler anzeigen
    Code
    ;<AutoItScript>
    #NoTrayIcon
    AutoItSetOption("MustDeclareVars", 1)
    ;+----------------------------------------------------------------------------+
    ;|    Header: Bestimmen der Übergabeparameter                                 |
    ;|    ( Alles Strings(!!!), bis auf ArgC )                                    |
    ;|    FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins         |
    Const $Author="_strKeyType.au3 ©2006 by ytwinky, MD";                         |
    ;|   	EMail: [EMAIL]PIII1kSystem-AutoIt3Forum@yahoo.de[/EMAIL]                               |
    ;|    (Tastenkombination: keine)                                              |
    ;|    AutoIt3-Version: 3.1.1.114(beta)                                        |
    ;|    Zweck : Anzeigen der in AutoIt3 bekannten Registry-Keytypen             |
    ;|    Tab auf 2 setzen wg. Lesbarkeit                                         |
    ;+----------------------------------------------------------------------------+
    Const $RegKey="HKEY_CLASSES_ROOT\.TestIt"
    Dim $s=RegRead($RegKey, ""), $Wert, $Fehler, $i=0
    If @Error=0 Then
    	Do
    		$i+=1
    		$Wert=RegEnumVal($RegKey, $i)
    		$Fehler=@Error
    		If $Fehler=0 Then
    			$s&=$Wert &": " &_strKeyType(@Extended) &@CrLf &"  " &RegRead($RegKey, $Wert) &@CrLf
    		EndIf
    	Until $Fehler<>0
    Else
    	$s="$RegKey nicht gefunden:" &@CrLf &$RegKey
    EndIf
    MsgBox(4096, "Registry-Info", $s)
    
    
    ;<Unterprogramme>
    
    
    Func _strKeyType($Which)
    	Switch $Which
    		Case 1
    			Return "REG_SZ"
    		Case 2
    			Return "REG_EXPAND_SZ"
    		Case 3
    			Return "REG_BINARY"
    		Case 4
    			Return "REG_DWORD"
    		Case 7
    			Return "REG_MULTI_SZ"
    		Case Else
    			Return "noch nicht eingebaut"
    	EndSwitch
    EndFunc
    
    
    ;</AutoItScript>
    Alles anzeigen

    So läßt sich die Länge eines REG_BINARY-Typs berechnen:
    $BinKeyLen=Ceiling(Len(ReadReg($RegKey, $Wert))/2)
    Die erforderlichen Testwerte möge sich der geneigte Leser selbst erstellen.
    HKEY_CLASSES_ROOT\.TestIt ist ein 'ungefährlicher' Bereich in der Registry,
    weil hier die Extensions stehen und .TestIt AFAIK nicht von Windows benutzt wird.
    Kann sein, daß ich das Rad neu erfunden habe, aber auf alle Fälle weiß ich jetzt:
    -wie RegEnumVal funktioniert
    -welche Nummern die RegistryKey-Typen in AutoIt haben
    Freut euch mit mir ;)
    Gruß
    ytwinky

  • Vnc-ph

    • ytwinky
    • 19. März 2006 um 17:18

    Kein Wunder, daß das Skript 0 mal heruntergeladen wurde..
    ..der Link funktioniert nicht(auch nicht mit RechtsKlick) ;((
    Naja Ctrl-C und Ctrl-V tuts wohl auch :rofl:
    Gruß
    ytwinky

  • Route Print - Anwendung von _SysProg(..) & _IEPrt(..)

    • ytwinky
    • 17. März 2006 um 13:10

    Hi AlleMann,
    Die Ausführung von Netstat war nur der Anfang.
    Ich habe mir _IEPrt(..) nochmal angesehen und verbessert:
    Der With-Befehl ist rausgeflogen, weil er nur für die Optik gut ist!
    In Wirklichkeit setzt der With-Befehl Pointer ein, um die Variablen
    richtig zu adressieren, spart also nix ein..
    Der Faktor 9 scheint eine ganz gute Lösung für die Berechnung der
    Fenstergröße zu sein, denn 8 ist eher zu klein..
    Hier nun als Beispiel der Aufruf von 'Route Print':

    Spoiler anzeigen
    C
    ;(c) 2006 by ytwinky, MD
    #include <Constants.au3>
    Dim $Prt, $ProgName, $Optionen, $MaxB=0, $i, $PrtArray
    $ProgName="Route Print"
    $Optionen="|Find /v""=="""
    $PrtArray=StringSplit(_SysProg($ProgName &" " &$Optionen), @CrLf)
    For $i=1 To UBound($PrtArray, 1)-1
     	If StringLen($PrtArray[$i])>$MaxB Then $MaxB=StringLen($PrtArray[$i])
     	If $PrtArray[$i]<>"" Then $Prt &=$PrtArray[$i] &@CrLF
    Next
    _IEPrt($Prt, $ProgName, 9*$MaxB, 9*UBound(StringSplit($Prt, @CrLf), 1))
    
    
    Func _IEPrt($Was, $Titel, $Breite=660, $Hoehe=300, $Links=100, $Oben=100)
    	Dim $IE=ObjCreate("InternetExplorer.Application.1")
    	$IE.Navigate("about:blank")
    	$IE.Document.Title=$Titel
    	$IE.Left=$Links
    	$IE.Top=$Oben
    	$IE.Width=$Breite
    	$IE.Height=$Hoehe
    	$IE.Visible=True
    	$IE.Document.Body.InnerHtml="Bitte warten.."
    	$IE.Toolbar=False
    	$IE.Menubar=False
    	$IE.Statusbar=False
    	$IE.Document.Body.InnerHtml=$Was
    EndFunc
    
    
    Func _SysProg($Which) ;SystemProgramm ausführen
    	Local $h, $i, $Prt
    	$i=Run(@ComSpec &" /c " &$Which, @SystemDir, @SW_HIDE, $STDOUT_CHILD+$STDERR_CHILD)
    	Sleep(1000)
    	$h=StdOutRead($i)
    	If @Error=0 Then $Prt=$h
    	$h=StdErrRead($i)
    	If @Error=0 Then $Prt = $h
    	$Prt=StringReplace($Prt, Chr(154), "Ü")
    	$Prt=StringReplace($Prt, Chr(129), "ü")
    	$Prt=StringReplace($Prt, Chr(142), "Ä")
    	$Prt=StringReplace($Prt, Chr(132), "ä")
    	$Prt=StringReplace($Prt, Chr(153), "Ö")
    	$Prt=StringReplace($Prt, Chr(148), "ö")
    	Return "<body scroll=auto><Pre>" &$Prt
    EndFunc
    Alles anzeigen


    Happy _sysprogging&_IEPrting..
    ytwinky

  • PC als Gegner

    • ytwinky
    • 2. März 2006 um 20:13

    Ich wollte nicht die Seite als neue Fundstelle 'melden', sondern nur sagen,
    daß bei mir nur EINE Seite angezeigt wurde ;)
    ..kann natürlich sein, daß es nur diese Seite war, weil ich sie noch nicht angesehen hatte..
    ..oder weil ich Google verkehrt gefragt habe..
    ..oder..
    Gruß
    ytwinky

  • Offene Ports mit NetStat anzeigen

    • ytwinky
    • 2. März 2006 um 20:06

    @Testi
    Schönen Dank ;)
    Die Option ano war ja auch nur ein Vorschlag und keine Vorschrift..
    wolkenloser:
    Auch dir schönen Dank für die Blumen ;)
    Du hast es übrigens genau erfaßt:
    Das Skript soll die Grundlage für weitere Kommandozeilen-orientierte Programme sein..
    Es bleibt jedem selbst überlassen, welche benutzt werden sollen..
    Gruß
    ytwinky

  • PC als Gegner

    • ytwinky
    • 1. März 2006 um 22:56

    GtaSpider :
    1 Seite ist gekommen:
    http://www.ce.unipr.it/~gbe/velena.html
    (A C-source code of the bare AI engine is now available)
    Aber da muß man Englisch für können und vermutlich auch ein wenig C verstehen..
    Gruß
    ytwinky

  • Offene Ports mit NetStat anzeigen

    • ytwinky
    • 1. März 2006 um 19:17

    Die eher mittelmäßige Ausgabe von Konsolenprogrammen nervt mich schon gewaltig..
    Nehmen wir z.B.: das NetStat.Exe-Programm zur Anzeige offener Ports
    Es ist ein Leichtes, eine DosBox zu öffnen, NetStat -ano einzugeben und das
    Ergebnis zu prüfen. Danach wieder DosBox schließen, damit der häßliche
    schwarze Fleck den (t)ollen Desktop nicht verschandelt. Es geht auch
    anders: NetStat aufrufen und Ausgabe umleiten und dann per AutoIt ausgeben..
    Leider muß die Ausgabe jetzt aber neu formatiert werden, also anders..
    Dafür gibt es das InternetExplorer.Application-Objekt.
    Ich habe die Ausgabe in eine Function gepackt, damit sie auch in anderen Skripts
    einfach zur Verfügung steht.

    Spoiler anzeigen
    Code
    #include <Constants.au3>
    ;(c) 2006 by ytwinky, MD
    ;und ganz ohne ..matic
    
    
    _IEPrt(_NetStat("ano"), "NetStat.Exe /ano")
    
    
    Func _IEPrt($Was, $Titel, $Breite=660, $Hoehe=300, $Links=100, $Oben=100)
    	Dim $IE=ObjCreate("InternetExplorer.Application.1")
    	With $IE
    		.Navigate("about:blank")
    		.Document.Title=$Titel
    		.Left=$Links
    		.Top=$Oben
    		.Width=$Breite
    		.Height=$Hoehe
    		.Visible=1
    		.Document.Body.InnerHtml="Bitte warten.."
    		.Toolbar=False
    		.Menubar=False
    		.Statusbar=False
    		.Visible=True
    		.Document.Body.InnerHtml=$Was
    	EndWith
    EndFunc
    
    
    Func _NetStat($Options) ;NetStat ausführen
    	Local $ForWriting=1, $h, $i, $Prt
    	$i=Run(@ComSpec &" /c netstat.Exe /" &$Options, @SystemDir, @SW_HIDE, $STDOUT_CHILD+$STDERR_CHILD)
    	Sleep(1000)
    	$h = StdOutRead($i)
    	If @error=0 Then $Prt=$h
    	$h = StdErrRead($i)
    	If @error=0 Then $Prt = $h
    	$Prt = StringReplace($Prt, Chr(154), "Ü")
    	$Prt = StringReplace($Prt, Chr(129), "ü")
    	$Prt = StringReplace($Prt, Chr(142), "Ä")
    	$Prt = StringReplace($Prt, Chr(132), "ä")
    	$Prt = StringReplace($Prt, Chr(153), "Ö")
    	$Prt = StringReplace($Prt, Chr(148), "ö")
    	Return "<body scroll=0><Pre>" &$Prt
    EndFunc
    Alles anzeigen


    Wichtig ist nur, daß der übergebene String im Html-Format übergeben wird.
    Der Eingeweihte sieht sofort, das Titel, Größe, Position beim Aufruf übergeben
    werden KÖNNEN.
    [Edit]
    Dies ist eine verbesserte Version
    Happy protocolling
    ytwinky

  • Warum AutoIt?

    • ytwinky
    • 28. Februar 2006 um 21:06

    Mit AutoIt kann ich meine Skripts testen, eine Exe-Datei erstellen und das alles ohne DLL's, Services und Frameworks
    und die Einrichtung kostet nur den Download..
    Das ist der entscheidende Vorteil:
    Eine vielseitige Hilfe für den Benutzer ohne die Fessel, an eine bestimmte Firma mit ihren Produkten(und Preisen) gebunden zu sein.
    Gruß
    ytwinky

  • PC als Gegner

    • ytwinky
    • 28. Februar 2006 um 20:49
    Zitat

    Original von gtaspideredit: ahh: hab da was gefunden: http://www.tik.ee.ethz.ch/tik/education/…tzler/hirn.html
    alles auf deutsch, genaue erkärung wie mann soetwas erstellt! zwar mit java aber das is ja net so wichtig!

    Stimmt, auf den ersten Blick scheint das wirklich eine gute Basis zu sein.
    Es ist schwierig, ein derart komplexes Thema in einer(für mich)neuen Programmiersprache zu erarbeiten,
    wenn die Grundlagen in einer anderen Sprache vorliegen. Es wird nicht ausbleiben, auf englische Artikel zurückzugreifen,
    aber es sollte nicht die Regel sein, da sonst der Kreis der Beteiligten von vorherein eingeschränkt wird.
    Ich habe keine Angst vor der englischen Sprache.
    Ich habe keine Angst vor der mathematischen Theorie.
    Beides zusammen ist meistens aber ein Cocktail, der das Fassungsvermögen meines Wörterbuchs|Vokabelheftes übersteigt..
    Gruß
    ytwinky

  • Kontexmenü?

    • ytwinky
    • 28. Februar 2006 um 20:36

    Hi gtaspider,
    du meinst nicht vielleicht sowas?
    http://autoit.aufwaerts.de/thread.php?threadid=124&sid=
    Gruß
    ytwinky

  • PC als Gegner

    • ytwinky
    • 28. Februar 2006 um 17:08

    Bleib mal ganz ruhig, Markus..
    Die Mustrum-Site habe ich nur für Tipps dabeigetan :rofl:
    Das Wichtigste war die Wikipedia-Seite..
    Bis später
    ytwinky

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™