Au fein, das muß ich gleich mal einbasteln..
Wie sieht denn das mit dem GUI aus, schafft das deine 1000 virtuellen Laufwerke ![]()
Die Schleife ist ja nur eine Schätzung ![]()
Haut das noch hin mit der Darstellung?
Gruß
(ein sich zum Basteln verabschiedender)
ytwinky
Beiträge von ytwinky
-
-
Oder du machst es, wie ich es für Route Print gezeigt habe:
Route Print - Anwendung von _SysProg(..) & _IEPrt(..)
Da hast du alle (Htm-)Möglichkeiten, den Text zu formatieren
(von '<pre> bis '<table>..</table>' etc)
Gruß
ytwinky -
Zitat
Original von BugFix
Braucht man dann eigentlich 'nen Therapeuten um das Trauma zu bewältigen? ?Nicht unbedingt, aber es erleichtert die Sache ein wenig

(Mein Therapeut ist lediglich 2 Jahre älter als ich und hat das auch bewältigt..)
In der Karriereleiter Teen, Twen, Bivi, Uhu ändert sich am Status nix,
aber das Bewußtsein leidet..
Erst jetzt stelle ich fest, daß es nicht unbedingt Liebe auf den Ersten Blick ist,
wenn die Mädels in der Straßenbahn mir den Vortitt lassen oder mir ihren Platz
anbieten
[Edit]
Hier nun die angedrohte/geänderte Version:Spoiler anzeigen
Code
Alles anzeigen#include <GuiConstants.au3> #NoTrayIcon Dim $CD=DriveGetDrive("CDROM") If @Error Then MsgBox(4096, "Ooops, tschuldigung..", "..kein CD/DVD-Laufwerk bei " &@ComputerName &" gefunden!") Exit EndIf Dim $CD_Name[$CD[0]+1], $Radio_[$CD[0]+1], $i, $Lw GuiCreate("CD/DVD - Tray", 540, 179, -1, -1, $WS_OVERLAPPEDWINDOW+$WS_CLIPSIBLINGS) $Group_1=GuiCtrlCreateGroup("Laufwerk", 20, 10, 270, 150) For $i=1 To $CD[0] $CD[$i]=StringUpper($CD[$i]) $CD_Name[$i]=GetNameFromRegistry($CD[$i]) $Radio_[$i]=GuiCtrlCreateRadio($CD[$i] &" " &$CD_Name[$i], 40, $i*25, 200, 20) Next GUICtrlSetState($Radio_[1], $GUI_Checked) $Group_4=GuiCtrlCreateGroup("Schublade", 310, 10, 120, 150) $Auf=GuiCtrlCreateButton("Öffnen", 330, 65, 80, 20) GuiCtrlSetState(-1, $GUI_FOCUS) $Zu=GuiCtrlCreateButton("Schließen", 330, 95, 80, 20) $Pic_8=GuiCtrlCreatePic(@ScriptDir &"\DVD_Lw_68x60.jpg", 450, 17, 68, 60) $Quit=GuiCtrlCreateButton("Ende", 450, 140, 70, 20) GUICtrlSetFont(-1, 11, 800, 0) GuiSetState() While 1 For $i=1 To $CD[0] If GUICtrlRead($Radio_[$i])=$GUI_CHECKED Then $Lw=$CD[$i] Next Switch GUIGetMsg() Case $Auf CDTray($Lw, "open") Case $Zu If DriveStatus($Lw)<>"READY" Then CDTray($Lw, "closed") Case $GUI_EVENT_CLOSE, $Quit ExitLoop EndSwitch Wend Exit Func GetNameFromRegistry($Lw) Dim $Wert, $Reg=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices", "\DosDevices\" &$Lw), $c, $i For $i=1 To StringLen($Reg)-2 Step 2 $c=Dec(StringMid($Reg, $i, 2)) If $c<>0 Then $Wert&=Chr($c) Next $i=StringInStr($Wert, "#")+6 $c=StringInStr($Wert, "__") If $c<7 Then Return "" Return StringReplace(StringMid($Wert, $i, $c-$i), "_", " ") EndFunc
Gruß
ytwinky -
Hi,
auf der Suche nach meinen USB-Sticks dachte ich, das Skript von BugFix könnte helfen.
BugFix untersucht nämlich die Registry nur auf Beschreibungen von optischen Lauwerken.
Doch die Registry liefert noch mehr Informationen.
(Hier nun eine durch Mitarbeit von BugFix verbesserte Version)Spoiler anzeigen
C
Alles anzeigen;<AutoItScript> #NoTrayIcon AutoItSetOption("MustDeclareVars", 1) #include <GUIConstants.au3> ;+----------------------------------------------------------------------------+ ;| Header: Bestimmen der Übergabeparameter | ;| ( Alles Strings(!!!), bis auf ArgC ) | ;| FontAnzeigeCheck: |Il1 sind Alt-0124, Großes i, Kleines L, Eins | Const $Author="USBSticks.au3 ©2006 by ytwinky, MD"; | ;| EMail: PIII1kSystem-AutoIt3Forum@yahoo.de | ;| (Tastenkombination: keine) | ;| AutoIt3-Version: 3.1.1.125(beta) | ;| Zweck : Anzeigen des eines lokalen Standard-Admin-Zugangs | ;| Tab auf 2 setzen wg. Lesbarkeit | ;+----------------------------------------------------------------------------+ ; == GUI generated with Koda == Const $RegKey="HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\", $rv="\DosDevices\" Dim $i=0, $s="", $Wert, $Fehler=0, $Lw, $c, $a, $OnOff[2]=["Off", "On"], $Breite=397 Dim $Edit Do $i+=1 $Wert=RegEnumVal($RegKey, $i) $Fehler=@Error If $Fehler=0 Then If StringInStr(StringUpper($Wert), "DOSDEVICES") Then $Lw+=1 $c=StringRight($Wert, 2) $s&=StringRight($Wert, 2) &@Tab ; $s&=$OnOff[DriveStatus($c)="READY"] &" " $s&=GetNameFromRegistry($c) &@Cr EndIf EndIf Until $Fehler<>0 GUICreate("Bekannte Laufwerke", $Breite, $Lw*14+10, 290, 125) $Edit=GUICtrlCreateEdit("Bitte warten..", 5, 5, $Breite-10, $Lw*14, $ES_OEMCONVERT, $WS_EX_CLIENTEDGE) GUISetState(@SW_SHOW) $a=StringSplit(StringLeft($s, StringLen($s)-1), @Cr) BubbleSort($a, 1, $a[0]) $Lw=DriveGetDrive("ALL") GUICtrlSetData($Edit, "Vorhanden sind " &ShowIt($Lw, " ") &@CrLf &ShowIt($a)) While 1 Switch GuiGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case Else ;-)) EndSwitch WEnd Exit Func GetNameFromRegistry($Lw) Dim $Wert, $Reg=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices", "\DosDevices\" &$Lw), $c, $i, $va, $ve, $vr For $i=1 To StringLen($Reg)-2 Step 2 $c=Dec(StringMid($Reg, $i, 2)) If $c<>0 Then $Wert&=Chr($c) Next ; jetzt prüfen was es ist ; kein Wert=Festplattenpartition; "GENERIC_FLOPPY_DRIVE"; "CdRomNAME"; "CdRom&Ven_NAME"; "RemovableMedia" Select Case StringInStr($Wert, "GENERIC_FLOPPY_DRIVE")>0 Return "GENERIC FLOPPY DRIVE" Case StringInStr($Wert, "CdRom")>0 $i=StringInStr($Wert, "#")+6 $c=StringInStr($Wert, "__") $va=StringInStr($Wert, "&Ven_")+5 $ve=StringInStr($Wert, "#",0,2) Select Case $va=5 Return StringReplace(StringMid($Wert, $i, $c-$i), "_", " ") Case $va>5 $Wert=StringReplace(StringMid($Wert, $va, $ve-$va), "&Prod_", " ") $vr=StringInStr($Wert, "&Rev",0,-1) Return StringReplace(StringLeft($Wert,StringLen($Wert)-($ve-$vr)) & StringReplace(StringRight($Wert, $ve-$vr), "_", ". "),"&", " ") EndSelect Case StringInStr($Wert, "RemovableMedia")>0 Return "RemovableMedia" Case Else Return "Festplattenpartition" EndSelect EndFunc Func BubbleSort(byRef $Feld, $l, $r) ; ist Ok, mit Kleiner zusammen.. If IsArray($Feld) Then Dim $i, $j, $y For $i=$l To $r For $j=$i To $r If $Feld[$j]<$Feld[$i] Then $y=$Feld[$i] $Feld[$i]=$Feld[$j] $Feld[$j]=$y EndIf Next Next Else MsgBox(4096, "Fehler", "$Feld ist kein Array") EndIf EndFunc Func ShowIt(byRef $Feld, $Tr=@CrLf) ; ist Ok, mit Kleiner zusammen.. If IsArray($Feld) Then Dim $i, $p For $i=1 To UBound($Feld)-1 If $Tr<>@CrLf Then $Feld[$i]=StringUpper($Feld[$i]) $p&=$Feld[$i] &$Tr Next Else $p="$Feld ist kein Array!" EndIf Return $p EndFunc ;</AutoItScript>Das bringt mich auf der Suche nach meinen USB-Sticks schon
ein Stück weiter. Lediglich zwei(FAT, 128 bzw 256 MB) lassen nur über das
allgemeine Kriterium: DosDevice und Größe>3MB erkennen
BugFix :
Du hast Recht, es fehlt ein Smily für
[PfingstEdit]
dies ist nun eine geänderte Version, die mir alle Laufwerke anzeigt.
(Nebenbei habe ich jetzt auch die Optionen von StringInstr begriffen
)
BugFix :
Die ganz langen Bezeichnungen der CDVD-Laufwerke auszublenden, verschenkt
Informationen: Mein Brenner wurde ausgeliefert mit Revision H
An diesem Protokoll ist zu erkennen, daß das Upgrade auf Version J
vom System übernommen wurde.
Nach dem '#' hinter der Lw-Bezeichnung steht mit Sicherheit ein Lw-Typ.
(5:wechselbar, 8:USB, 2:Netz???)
Lediglich die beiden USB-Sticks U: und V: hauen hier raus.
(Beide haben feste Laufwerksbuchstaben zugeordnet bekommen, beide hatte
ich im Optimierungswahn mal auf NTFS formatiert[sind aber wieder FAT],
außerdem sind es meine ältesten Sticks[~2003])
Ich glaube, mit diesen Vermutungen liege ich einigermaßen richtig.
Wer die ZusatzInfos nicht benötigt, muß in DecodeName() die StringInstr()
Anweisung von -1 auf -2 ändern und schon bleiben sie weg.
Das Protokoll:Code
Alles anzeigenA: GENERIC_FLOPPY_DRIVE#5&14f74304&0&0 ;OK, Diskette C: DosDevice ;Part. 0,1 D: DosDevice ;Part. 1,1 E: DosDevice ;Part. 0,2 F: DosDevice ;Part. 1,2 G: DosDevice ;Part. 0,3 H: DosDevice ;Part. 1,3 I: DosDevice ;Part. 1,4 J: DosDevice ;Part. 1,5 K: DosDevice ;Part. 1,6 L: CdRom&Ven_Generic&Prod_DVD-ROM&Rev_1.0#2&12b1de20&0&000 ;virt. DVD M: RemovableMedia#8&87d15f4&0&RM ;MMKarte-128MB N: RemovableMedia#8&1fde2770&0&RM O: RemovableMedia#8&1d9465bd&0&RM P: RemovableMedia#8&35998ef&0&RM S: RemovableMedia#8&1014e105&0&RM ;SD-Karte 128MB U: DosDevice ;USB-Stick 128MB V: DosDevice ;USB-Stick 256MB W: CdRomTEAC_CD-W516EB__________________________1.0J____#5&35bcaee8&0&0.0.0 Z: CdRomTSSTcorp_DVD-ROM_SH-D162C_______________TS01____#5&35bcaee8&0&0.1.0Unschwer zu erkennen: die Kommentare nach ; sind manuell eingefügt..
Und hier das Skript:Spoiler anzeigen
HTML
Alles anzeigen;<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="Always.au3 ©2006 by ytwinky, MD"; | ;| EMail: PIII1kSystem-AutoIt3Forum@yahoo.de | ;| (Tastenkombination: keine) | ;| AutoIt3-Version: 3.1.1.125(beta) | ;| Editor: SciTE 1.68, feste Schriftart | ;| Zweck : Anzeigen der vom System gespeicherten Laufwerke | ;| Tab auf 2 setzen wg. Lesbarkeit | ;+----------------------------------------------------------------------------+ Const $RegKey="HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\", $rv="\DosDevices\" Dim $i=0 Dim $s="", $Wert, $Fehler=0 Do $i+=1 $Wert=RegEnumVal($RegKey, $i) $Fehler=@Error If $Fehler=0 And StringInstr($Wert, ":") Then $s&=StringRight($Wert, 2) &" " &DecodeName(StringRight($Wert, 2)) &@Lf EndIf Until $Fehler<>0 $Wert=StringSplit($s, @Lf) BubbleSort($Wert, 1, $Wert[0]) $s="" For $i=1 To $Wert[0] $s&= $wert[$i] &@CrLf Next _IEPrt("<html><pre>" &$s, "Registry-Info", 660, $i*18) 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 DecodeName($Lw) Dim $w, $Reg=RegRead($RegKey, $rv &$Lw), $c, $i For $i=1 To StringLen($Reg)-2 Step 2 $c=Dec(StringMid($Reg, $i, 2)) If $c<>0 Then $w&=Chr($c) Next $i=StringInStr($w, "#") If $i=0 Then Return StringMid($w, 2, 9) $c=StringInstr($w, "#", 0, -1) Return StringMid($w, $i+1, $c-$i-1) EndFunc Func BubbleSort(byRef $Feld, $l, $r) ; ist Ok, mit Kleiner zusammen.. If IsArray($Feld) Then Dim $i, $j, $y For $i=$l To $r For $j=$i To $r If $Feld[$j]<$Feld[$i] Then $y=$Feld[$i] $Feld[$i]=$Feld[$j] $Feld[$j]=$y EndIf Next Next Else MsgBox(4096, "Fehler", "$Feld ist kein Array") EndIf EndFunc ;</AutoItScript>Witzige Erscheinung am Rande:
Obwohl in der Registry alle Laufwerke sortiert abgelegt sind,
werden sie per RegEnumVal() doch nicht soertiert ausgelesen.
Ich hätte zum Sortieren auch meinen QSort nehmen können, aber
den hatte ich ja schon gepostet
[Edit]
Frei nach Murphy:Ein Programm ist nie fertig..
(Schreibfehler berichtigt)
Gruß
ytwinky -
Hi,
bei einer dll mußt du die auch immer mitgeben, wenn du dein Skript
weitergibst(z.B. hier im Forum postest..)
Selbst wenn das Skript kompiliert ist, muß die dll dabeisein.
Praktisch bei einer include-Datei ist, daß der QuellCode einsehbar
ist. Ich kann selber sehen was der Autor gemacht hat(und vor allen
Dingen wie er es gemacht hat)
Bei einer dll sollte schon eine wenigstens ausreichende Dokumentation
dabei sein, damit der Benutzer auch weiß, wie er diese dll benutzen kann
und überhaupt, um alle Möglichkeiten der dll zu erläutern.
(Günter Born hat das bei seinen Modulen schön gezeigt: https://autoit.de/www.borncity.de)
Einfachso eine Blackbox installieren und hoffen, daß die nix Böses macht,
das ist nicht mein Ding..
Es erinnert mich an die Zeit, wo Disketten das einzige Transportmittel
waren. Nach dem Motto: Hier, probier mal diese Startdiskette!
(..und mit viel Glück waren nur die Buchstaben spiegelverkehrt..)
Ich denke, du weißt, was ich meine..
Gruß
ytwinky -
hi peethebee,
danke für die Erklärung..
btw:
Ich glaube, ich habe in meinem vorigen Posting ein paar smilies vergessen
Im Ernst:
Funktioniert CDTray() mit einem virtuellen Laufwerk?
Wenn das virtuelle Laufwerk von DriveGetDrive() als CD-Laufwerk erkannt wird,
dann ist das Ganze kein Problem mehr(und schon fast fertig..)
Ich habe das Skript noch weiterentwickelt, damit auch User, die einen SCSI-Tower mit mehr als zwei optischen Laufwerken besitzen, dies Skript auch benutzen können, aber ich war gestern Abend zu müde, um es fertigzustellen.
M.a.W.: Kommt demnächst..
Gruß
ytwinky -
Hi Bugfix,
ich bin nicht fehlerfrei, wie viele andere auch..
(lediglich Snoopy hat mal gesagt:Nobody's perfect, except me..)
Wie erwähnt, bin ich ein alter Mann und verstehe nicht alle technischen Entwicklungen..
Wie bitteschön wird bei einem virtuellen CD-Laufwerk die Lade ausgefahren?
Gruß
ytwinky -
Hi,
Hab ich schon gekuckt, mit scriptomatic nicht(jedenfalls habe ich nix gefunden)
Und die ganz normalen AutoIt-Funktionen erkennen, daß eine CD/DVD im Laufwerk ist => Lw zu
Aber Lade offen ist genauso, wie keine CD im Lw
[Edit]
ich habe mir(zu Übungszwecken) mal das Skript von Bugfix vorgenommen.
Habe ein paar unnötige Schleifen und Includes entfernt, nicht weil
ich es besser weiß, sondern um zu sehen, ob das dann auch noch geht
Es ist, imho, ein wenig übersichtlicher geworden, sodaß ein leichter
Vergleich mit dem Original-Skript möglich ist..
Tipp: Wenn ich in einer Gruppe zwei RadioButtons habe, brauche ich nur
einen abzufragen, denn der Wert vom anderen ergibt sich autimatisch
[Edit]
Allmählich sind u und i gleichermaßen abgenutzt, da hau ich schon mal daneben
Gruß
ytwinkySpoiler anzeigen
Code
Alles anzeigen#include <GuiConstants.au3> #NoTrayIcon Dim $s=DriveGetDrive("CDROM"), $cd1, $cd1_name, $cd2, $cd2_name $cd1=StringUpper($s[1]) $cd1_name=GetNameFromRegistry($cd1) $Rdy1=DriveStatus($cd1) $cd2=StringUpper($s[2]) $cd2_name=GetNameFromRegistry($cd2) $Rdy2=DriveStatus($cd2) GuiCreate("CD/DVD - Tray", 540, 139, -1, -1, $WS_OVERLAPPEDWINDOW+$WS_CLIPSIBLINGS) $Group_1=GuiCtrlCreateGroup("Laufwerk", 20, 20, 270, 100) $Radio_1=GuiCtrlCreateRadio($cd1 & " " & $cd1_name, 40, 50, 200, 20) GUICtrlSetState($Radio_1, $gui_checked) $Radio_2=GuiCtrlCreateRadio($cd2 & " " & $cd2_name, 40, 80, 200, 20) $Group_4=GuiCtrlCreateGroup("Schublade", 310, 20, 120, 100) $Auf=GuiCtrlCreateButton("Öffnen", 330, 50, 80, 20) GUICtrlSetState(-1, $GUI_FOCUS) $Zu=GuiCtrlCreateButton("Schließen", 330, 80, 80, 20) $Quit=GuiCtrlCreateButton("Ende", 450, 100, 70, 20) $Pic_8=GuiCtrlCreatePic(@ScriptDir & "\DVD_Lw_68x60.jpg", 450, 27, 68, 60) Dim $PrtDim[2]=[$cd1, $cd2] GuiSetState() While 1 $lw=$PrtDim[GUICtrlRead($Radio_2)=1] Switch GuiGetMsg() Case $Auf CDTray($lw, "open") Case $Zu CDTray($lw, "closed") Case $GUI_EVENT_CLOSE, $Quit ExitLoop EndSwitch Wend Exit Func GetNameFromRegistry($Lw) Dim $Wert, $Reg=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices", "\DosDevices\" &$Lw), $c, $i, $j For $i=1 To StringLen($Reg)-2 Step 2 $c=Dec(StringMid($Reg, $i, 2)) If $c<>0 Then $Wert&=Chr($c) Next $i=StringInStr($Wert, "#")+6 $j=StringInStr($Wert, "__") If $j<7 Then Return "" Return StringReplace(StringMid($Wert, $i, $j-$i), "_", " ") EndFunc
Gruß
ytwinky -
Ich habe das Ganze mal über Scriptomatic probiert(es gibt eine Funktion zum Erkennen der Laufwerke, hätte mich auch gewundert, wenn nicht..)
Ich erhalte alle benötigten Information, auch ob ein Silberling eingelegt ist..
..und mit 'weniger' Aufwand(nur das Skript zusammenkürzen)
..und schnell..
..solange keine Scheiben eingelegt sind
Sobald Medien eingelegt sind, wird das Ganze so langsam(durch die durchgeführten Tests), daß es unerträglich ist..
Gruß
ytwinky
Zum Spielen:Spoiler anzeigen
Code
Alles anzeigen; Erstellt von AutoIt Scriptomatic Dim $OLw[10][10], $i, $n, $s="", $colItems $objWMIService=ObjGet("winmgmts:\\.\root\CIMV2") $colItems=$objWMIService.ExecQuery("SELECT * FROM Win32_CDROMDrive", "WQL", 0x30) If IsObj($colItems) Then For $objItem In $colItems $n+=1 $OLw[$n][1]=$objItem.Drive $OLw[$n][2]=$objItem.Caption $OLw[$n][3]=$objItem.MediaLoaded Next Endif For $i=1 To $n $s=$s &"CD" &$i &" " &$OLw[$i][1] &" " &$OLw[$i][2] &" Scheibe drin:" &$OLw[$i][3] &@Lf Next MsgBox(4096, "CD-Report", $s) -
Neenee, du hast das schon richtig gemacht..
Wenn du die Funktion SplashTextOn(..) verwendest, geht ein Fenster mit deinem Text auf..
..ich dachte, der sollte farbig werden.
Schönen Sonntag noch
ytwinky -
Hi weedhead,
na das ist ja prima..
..ich hatte dich mißverstanden, weil ich geglaubt habe, du wolltest den Splashtext einfärben.
Und das hatte ich probiert..
Gruß
ytwinky -
Hallo weedhead,
(Wo habe ich den Namen denn nur schon mal gelesen
)
Probiers aus, ich wünsch dir mehr Glück, als ich hatte, denn ich habe es nicht geschafft..
In der Hilfe steht allerdings auch nix dazu und GUICtrlSetColor() hatter einfach ignoriert.
Kann ja sein, daß ich auf dem Holzweg bin..
Gruß
ytwinky -
Hi,
so, jetzt flackert nix mehr..
Ich habe pro Farbe eine Prüfvariable eingefügt und nur wenn die sich verändert, wird auch im GUI geschrieben.
Das dürfte Prozessor-unabhängig sein.
Gruß
ytwinkySpoiler anzeigen
C
Alles anzeigen; ---------------------------------------------------------------------------- ; ; AutoIt Version: v3.1.1.124 (beta) ; Author: rabbit and Dr.galvany and ytwinky ; ; Script Function: ; RGB Farbwerte ermitteln ; ; ---------------------------------------------------------------------------- #include <GuiConstants.au3> Dim $col[3] $col[0] = "FF" $col[1] = "00" $col[2] = "00" Dim $rr=255, $gg=0, $bb=0 GUICreate("RGB & HEX Finder", 290, 190, -1, -1) $Label = GUICtrlCreateLabel("", 20, 20, 140, 30) GUICtrlSetBkColor(-1, 0xFF0000) $code = GUICtrlCreateLabel("0xFF0000", 180, 25, 140, 30) $rt = GUICtrlCreateLabel("R", 10, 60, 10, 20) $r = GUICtrlCreateSlider(20, 60, 140, 20) GUICtrlSetLimit(-1, 255, 0) GUICtrlSetData(-1, 255) $ge = GUICtrlCreateLabel("G", 10, 90, 10, 20) $g = GUICtrlCreateSlider(20, 90, 140, 20) GUICtrlSetLimit(-1, 255, 0) GUICtrlSetData(-1, 0) $bl = GUICtrlCreateLabel("B", 10, 120, 10, 20) $b = GUICtrlCreateSlider(20, 120, 140, 20) GUICtrlSetLimit(-1, 255, 0) GUICtrlSetData(-1, 0) $copy = GUICtrlCreateButton("Copy", 165, 150, 110, 30) GUICtrlCreateLabel("by rabbit, Dr.Galvany and ytwinky", 5, 165, 160) GUICtrlSetFont(-1, 8) GUICtrlCreateLabel("R = ", 179, 60, 50) $l1 = GUICtrlCreateLabel(255, 200, 60, 50) GUICtrlCreateLabel("G = ", 179, 90, 50) $l2 = GUICtrlCreateLabel(0, 200, 90, 50) GUICtrlCreateLabel("B = ", 179, 120, 50) $l3 = GUICtrlCreateLabel(0, 200, 120, 50) ControlSetText("RGB & HEX Finder","",$l1, GUICtrlRead($r)) ControlSetText("RGB & HEX Finder","",$l2, GUICtrlRead($g)) ControlSetText("RGB & HEX Finder","",$l3, GUICtrlRead($b)) GUISetState() While 1 Sleep(1) If $rr<>GUICtrlRead($r) Then ControlSetText("RGB & HEX Finder","",$l1, GUICtrlRead($r)) If $gg<>GUICtrlRead($g) Then ControlSetText("RGB & HEX Finder","",$l2, GUICtrlRead($g)) If $bb<>GUICtrlRead($b) Then ControlSetText("RGB & HEX Finder","",$l3, GUICtrlRead($b)) $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE ExitLoop Case $msg = $r $col[0] = Hex(GUICtrlRead($r), 2) Call("setcol") $rr=GUICtrlRead($r) Case $msg = $g $col[1] = Hex(GUICtrlRead($g), 2) Call("setcol") $gg=GUICtrlRead($g) Case $msg = $b $col[2] = Hex(GUICtrlRead($b), 2) Call("setcol") $bb=GUICtrlRead($b) Case $msg = $copy ClipPut("0x" & $col[0] & $col[1] & $col[2]) Case Else ;-)) EndSelect WEnd Exit Func setcol() GUICtrlSetBkColor($Label, "0x" & $col[0] & $col[1] & $col[2]) GUICtrlSetData($code, "0x" & $col[0] & $col[1] & $col[2]) EndFunc ;==>setcol -
Hi Dr. Galvany,
das Flackern ist fast weg
In meinen Augen scheint der einzig vernünftige Weg zu sein, nur dann zu Schreiben, wenn sich etwas geändert hat.
Das ist eben der Nachteil dieser Endlosschleifen..
Ich mich kann aber erst später darum kümmern..
..ytwinky.freebasic.de läuft wieder und ich muß schauen, ob da alles in Ordnung ist.
Bis später
ytwinky -
Jupp, und die neueste Version ist vom 24.05.2006, wer also noch ne alte hat..
..sollte updaten..
Gruß
ytwinky -
Hi,
es ist vollbracht(nicht die Installation der neuen Beta 3.1.125, mit der dies alles auch funktioniert..):
Ich habe endlich meinen QSort soweit, daß ich damit sortieren kann, fast wie ich möchte:
-aufwärts
-abwärts
Ich brauchte einen QSort, um die SIDs vom myGetSID() zu sortieren
(von hier stammt auch das zu sortierende File).
Der AutoIt-QSort versagt hier, da die Strings nicht numerisch bewertet werden.
Es macht nun wenig Sinn, wegen eines Problems eine System-Func zu ändern,
also mußte eine Neue her(das war im 1. Versuch Bubble-Sort). Schlauerweise
habe ich hier den Vergleich in eine Extra-Func kleiner() ausgelagert, da ich die
dann auch im QSort() verwenden konnte. Das hat aber nichts genutzt. Der BubbleSort
funktionierte und der QSort nicht! Das gibts doch nicht..
Bis ich auf einmal feststellte, das der QSort nicht FALSCH sortierte, sondern GAR NICHT.
Dann wars kein Problem mehr:Einfach byREF in die Func-Zeile eingefügt und schon kann der
QSort die geänderten Werte auch zurückgeben. Klasse..
Die Funktion kleiner() ist nur für die Bearbeitung von SIDs ausgelegt, wer andere Sachen
sortieren will, muß die Func entsprechend anpassen.
Wenn ein einfacher Textvergleich ausreichend ist, einfach die erste Zeile von kleiner()
entkommentieren und fertig..
Der Einbau in GetSIDGUI ist bereits erledigt..
[Edit]
Toll, dies ist mein 111. Posting
Gruß
ytwinkySpoiler anzeigen
Code
Alles anzeigen;program QSort; ;(c)longtime ago by someone who could program in pascal ;program QSort.Pas has been successfully ported to QSort.au3 Dim $DateiName="C:\AutoIt3\au3\QSort.Txt", $dp, $s, $l, $i, $t, $Feld $Feld=StringReplace(_ReadAll($DateiName), @LF, "") $t=StringSplit($Feld, @CR) BubbleSort($t, 1, $t[0]) $s="" For $i=1 To $t[0] $s&=$t[$i] &@Cr Next MsgBox(4096,"BubbleSort", $s) $t=StringSplit($Feld, @CR) QSort($t, 1, $t[0], ">") $s="" For $i=1 To $t[0] $s&=$t[$i] &@Cr Next MsgBox(4096,"QSort", $s) Exit Func _ReadAll($DateiName) ;2006 By ytwinky Local $ForReading=0, $Size, $DateiHnd, $Warte=3000, $i, $s, $j If FileExists($DateiName) Then $DateiHnd=FileOpen($DateiName, $ForReading) If $DateiHnd<0 Then MsgBox(4096, "Ooops:", "Datei " &$DateiName &" läßt sich nicht öffnen..", $Warte) Exit 1 Else $Size=FileGetSize($DateiName) If $Size>0 Then ;da is was drin.. $Size=FileRead($DateiHnd, $Size) FileClose($DateiHnd) Return $Size Else ;da is nix drin MsgBox(4096, "Ooops:", "Datei " &$DateiName &" ist leer..", $Warte) Exit 1 EndIf EndIf Else MsgBox(4096, "Ooops:", "Datei " &$DateiName &" nicht gefunden..", $Warte) Exit 1 EndIf EndFunc Func QSort(byRef $Feld, $l, $r, $Compare="<") ;gt jetz auch.. If IsArray($Feld) Then Dim $i=$l, $j=$r, $y, $x=$Feld[Int($l+$r)/2] Do While kleiner($Feld[$i], $x, $Compare) $i+=1 Wend While kleiner($x, $Feld[$j], $Compare) $j-=1 Wend If $i<=$j Then $y=$Feld[$i] $Feld[$i]=$Feld[$j] $Feld[$j]=$y $i+=1 $j-=1 EndIf Until $i>$j If $l<$j Then QSort($Feld, $l, $j, $Compare) If $i<$r Then QSort($Feld, $i, $r, $Compare) Else MsgBox(4099, "Fehler", "$Feld ist kein Array") EndIf EndFunc Func BubbleSort(byRef $Feld, $l, $r) ; ist Ok, mit Kleiner zusammen.. Dim $i, $j, $y For $i=$l To $r For $j=$i To $r If Not kleiner($Feld[$i], $Feld[$j]) Then $y=$Feld[$i] $Feld[$i]=$Feld[$j] $Feld[$j]=$y EndIf Next Next EndFunc Func kleiner($a, $b, $Compare="<") ;< also 'kleiner' Vergleich(aufsteigend).. ; Return $a<$b If $a<>$b Then Dim $arra=StringSplit(StringLeft($a, StringInstr($a, @Tab)-1) &"-0", "-") ;Nur SID splitten Dim $arrb=StringSplit(StringLeft($b, StringInstr($b, @Tab)-1) &"-0", "-") ;Nur SID splitten Dim $i, $j If IsArray($arra) And IsArray($arrb) Then $j=$arra[0] If $arrb[0]>$j Then $j=$arrb[0] EndIf For $i=3 To $j If $i>$arra[0] Or $i>$arrb[0] Then Return True If ($arra[$i]*1)<>($arrb[$i]*1) Then Switch $Compare Case "<" Return $arra[$i]*1<$arrb[$i]*1 Case ">" Return $arra[$i]*1>$arrb[$i]*1; abwärts sortieren EndSwitch EndIf Next EndIf EndIf Return False EndFunc -
Hi,
so, die 'unübersichtliche' Ausgabe von myGetSID() hat ein Ende..
Ich habe jetzt eine SortierRoutine(leider nur BubbleSort) eingebaut.
Es war ein ziemlicher Krampf, bis ich soweit war, daß die SIDs denn
auch wirklich sortiert wurden(s. Func Kleiner() ). Der ArraySort()
von AutoIt versagt hier leider und so mußte ich.. und.. und..
Mal schauen, ob ich irgendwann meine QSort-Routine zur Mitarbeit
überreden kann, kann eigentlich so schlimm nicht sein..
Aber das dachte ich auch, als ich den BubbleSort einbauen wollte
Schönen Herrentag noch
ytwinky
[Edit]
QSort eingebaut und geändertes Zip hochgeladen, QuellText geändert..Spoiler anzeigen
C
Alles anzeigen; Erstellt von AutoIt Scriptomatic ;umgearbeitet 2006 von ytwinky ;-))) ;enthält noch keine Sortierung ;-( ;_ArraySort funktioniert nicht so, wie es hier benötigt wird.. #include <GUIConstants.au3> Dim $i, $s ;Koda.1.4.0 Const $SchriftArt="Arial" $GetSID=GUICreate("GetSIDGUI", 288, 210, 340, 125) GUICtrlCreateLabel("GetSID", 79, 4, 113, 41, $ES_CENTER) GUICtrlSetFont(-1, 24, 800, 0, $SchriftArt) GUICtrlSetColor(-1, 0x000080) GUICtrlSetTip(-1, "©2006 by ytwinky, MD") GUICtrlCreateLabel("Benutzer " &@UserName &" an " &@ComputerName, 1, 40, 210, 21, $ES_CENTER) GUICtrlSetFont(-1, 12, 600, 0, $SchriftArt) $Server=GUICtrlCreateInput("localhost", 4, 96, 112, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetTip(-1, "Hier den gewünschten Rechner eintragen") $User=GUICtrlCreateInput(@UserName, 118, 96, 166, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetTip(-1, "Hier den gewünschten Account eintragen") $SID=GUICtrlCreateInput("", 4, 152, 280, 17, -1, $WS_EX_CLIENTEDGE) GUICtrlSetTip(-1, "Hier steht die gesuchte SID oder eine Meldung ;-))") $GetIt=GUICtrlCreateButton("GetSID", 4, 180, 75, 25, BitOR($BS_DEFPUSHBUTTON,$BS_BOTTOM)) GUICtrlSetFont(-1, 10, 800, 0, $SchriftArt) GUICtrlSetTip(-1, "Hier klicken, um die Suche zu starten..") $Quit= GUICtrlCreateButton("Quit", 210, 180, 75, 25) GUICtrlSetTip(-1, "na, was wohl..") GUICtrlSetFont(-1, 10, 800, 0, $SchriftArt) $Radio1 = GUICtrlCreateRadio("Nur Einer", 4, 60, 62, 17) GUICtrlSetTip(-1, "Wenn nur eine Sid gesucht wird(Default)") GUICtrlSetState(-1, $GUI_CHECKED) $Radio2 = GUICtrlCreateRadio("Alle", 100, 60, 79, 17) GUICtrlSetTip(-1, "Wenn alle Benutzer angezeigt werden sollen") $Chk2 = GUICtrlCreateCheckbox("Wirklich alle", 180, 60, 113, 17) GUICtrlSetTip(-1, "Checken, wenn alle vorhandenen Accounts angezeigt werden sollen..") GUICtrlSetState(-1, $GUI_HIDE) GUISetState(@SW_SHOW) While 1 Switch GuiGetMsg() Case $GUI_EVENT_CLOSE, $Quit ExitLoop Case $GetIt GUICtrlSetData($SID, "Protokoll anzeigen.."); $s=myGetSID(GUICtrlRead($User), GUICtrlRead($Server), GUICtrlRead($Radio1)=$GUI_CHECKED) GUICtrlSetData($SID, Modify4OutPut($s, GUICtrlRead($Radio1)=$GUI_CHECKED, GUICtrlRead($User), GUICtrlRead($Server))); Case $Radio1 GUICtrlSetState($Chk2, $GUI_UNCHECKED) GUICtrlSetState($Chk2, $GUI_HIDE) GUICtrlSetData($SID, ""); Case $Radio2 GUICtrlSetState($Chk2, $GUI_SHOW) GUICtrlSetData($SID, ""); Case Else ;-)) EndSwitch Wend Exit Func myGetSID($User=@UserName, $Host=@ComputerName, $NurEiner=True) Local $wbemFlagReturnImmediately=0x10, $wbemFlagForwardOnly=0x20, $colItems="" Local $JaNein[2]=[True, False], $Gesucht="", $Output, $i, $s If $User="" Then $User=@UserName If StringInstr($Host, "\\")=1 Then $Host=StringMid($Host, 3) If $Host="" Then $Host="." $NurEiner=$JaNein[$NurEiner=False] $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 $OutPut&=StringReplace($s, Chr(34), "") &@Cr Next If $NurEiner Then Return StringReplace($Gesucht, Chr(34), "") $s=StringSplit($OutPut, @Cr) ; MsgBox(4096, "Vorher", $OutPut) QSort($s, 1, $s[0]) $OutPut="" For $i=1 To $s[0] $OutPut&=$s[$i] &@Cr Next ; MsgBox(4096, "Nachher", $OutPut) Return $OutPut Else Return "Keine WMI-Objekte gefunden für Klasse: Win32_AccountSID" Endif Else Return $Host &" ist nicht in diesem Netz.." EndIf EndFunc Func Modify4OutPut($s, $NurEiner=True, $User=@UserName, $Host=@ComputerName) Local $v, $t, $i, $u If $NurEiner Then Return StringMid($s, 1, StringInstr($s, @Tab)-1) If GUICtrlRead($Radio2)=$GUI_CHECKED And GUICtrlRead($Chk2)=$GUI_CHECKED Then _IEPrt ("<Pre>Computer: " &$Host &@Cr &$s, "Wirklich alle SIDs..") Else $t=StringSplit($s, @Cr) For $i=1 To $t[0] If StringInstr($t[$i], "S-1-5-21") Then $u=$u &$t[$i] &@Cr If StringInstr($t[$i], "S-1-5-32") Then $v=$v &$t[$i] &@Cr Next _IEPrt ("<Pre>Computer: " &$Host &@Cr &$u &$v, "Alle SIDs") EndIf Return "Protokoll angezeigt.." EndFunc Func _IEPrt($Was, $Titel, $Breite=660, $Hoehe=300, $Links=100, $Oben=100) ;funzt sowieso 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=1 $IE.Document.Body.InnerHtml="Bitte warten.." $IE.Toolbar=False $IE.Menubar=False $IE.Statusbar=False $IE.Visible=True $IE.Document.Body.InnerHtml=$Was EndFunc Func QSort(byRef $Feld, $l, $r, $Compare="<") ;gt jetz auch.. If IsArray($Feld) Then Dim $i=$l, $j=$r, $y, $x=$Feld[Int($l+$r)/2] Do While kleiner($Feld[$i], $x, $Compare) $i+=1 Wend While kleiner($x, $Feld[$j], $Compare) $j-=1 Wend If $i<=$j Then $y=$Feld[$i] $Feld[$i]=$Feld[$j] $Feld[$j]=$y $i+=1 $j-=1 EndIf Until $i>$j If $l<$j Then QSort($Feld, $l, $j, $Compare) If $i<$r Then QSort($Feld, $i, $r, $Compare) Else MsgBox(4099, "Fehler", "$Feld ist kein Array") EndIf EndFunc Func kleiner($a, $b, $Compare="<") ; also 'kleiner' Vergleich(aufsteigend).. ; Return $a<$b If $a<>$b Then Dim $arra=StringSplit(StringLeft($a, StringInstr($a, @Tab)-1) &"-0", "-") ;Nur SID splitten Dim $arrb=StringSplit(StringLeft($b, StringInstr($b, @Tab)-1) &"-0", "-") ;Nur SID splitten Dim $i, $j If IsArray($arra) And IsArray($arrb) Then $j=$arra[0] If $arrb[0]>$j Then $j=$arrb[0] EndIf For $i=3 To $j If $i>$arra[0] Or $i>$arrb[0] Then Return True If ($arra[$i]*1)<>($arrb[$i]*1) Then Switch $Compare Case "<" Return $arra[$i]*1<$arrb[$i]*1 Case ">" Return $arra[$i]*1>$arrb[$i]*1; abwärts sortieren EndSwitch EndIf Next EndIf EndIf Return False EndFunc -
Hi,
da offensichtlich nicht klar ist, wie die Func myGetSid() benutzt wird,
habe ich ein GUI dafür geschrieben und die Schaltflächen mit Hilfstexten
versehen. Ich hoffe, daß dann alle Anwender damit klarkommen..
Gruß
ytwinky
[Edit]
Jetzt auch die richtige Datei angehängt
Spoiler anzeigen
C
Alles anzeigen; Erstellt von AutoIt Scriptomatic ;umgearbeitet 2006 von ytwinky ;-))) ;enthält noch keine Sortierung ;-( ;_ArraySort funktioniert nicht so, wie es hier benötigt wird.. #include <GUIConstants.au3> Dim $i, $s ;Koda.1.4.0 Const $SchriftArt="Arial" $GetSID=GUICreate("GetSIDGUI", 288, 210, 340, 125) GUICtrlCreateLabel("GetSID", 79, 4, 113, 41, $ES_CENTER) GUICtrlSetFont(-1, 24, 800, 0, $SchriftArt) GUICtrlSetColor(-1, 0x000080) GUICtrlSetTip(-1, "©2006 by ytwinky, MD") GUICtrlCreateLabel("Benutzer " &@UserName &" an " &@ComputerName, 1, 40, 210, 21, $ES_CENTER) GUICtrlSetFont(-1, 12, 600, 0, $SchriftArt) $Server=GUICtrlCreateInput("localhost", 4, 96, 112, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetTip(-1, "Hier den gewünschten Rechner eintragen") $User=GUICtrlCreateInput(@UserName, 118, 96, 166, 21, -1, $WS_EX_CLIENTEDGE) GUICtrlSetTip(-1, "Hier den gewünschten Account eintragen") $SID=GUICtrlCreateInput("", 4, 152, 280, 17, -1, $WS_EX_CLIENTEDGE) GUICtrlSetTip(-1, "Hier steht die gesuchte SID oder eine Meldung ;-))") $GetIt=GUICtrlCreateButton("GetSID", 4, 180, 75, 25, BitOR($BS_DEFPUSHBUTTON,$BS_BOTTOM)) GUICtrlSetFont(-1, 10, 800, 0, $SchriftArt) GUICtrlSetTip(-1, "Hier klicken, um die Suche zu starten..") $Quit= GUICtrlCreateButton("Quit", 210, 180, 75, 25) GUICtrlSetTip(-1, "na, was wohl..") GUICtrlSetFont(-1, 10, 800, 0, $SchriftArt) $Radio1 = GUICtrlCreateRadio("Nur Einer", 4, 60, 62, 17) GUICtrlSetTip(-1, "Wenn nur eine Sid gesucht wird(Default)") GUICtrlSetState(-1, $GUI_CHECKED) $Radio2 = GUICtrlCreateRadio("Alle", 100, 60, 79, 17) GUICtrlSetTip(-1, "Wenn alle Benutzer angezeigt werden sollen") $Chk2 = GUICtrlCreateCheckbox("Wirklich alle", 180, 60, 113, 17) GUICtrlSetTip(-1, "Checken, wenn alle vorhandenen Accounts angezeigt werden sollen..") GUICtrlSetState(-1, $GUI_HIDE) GUISetState(@SW_SHOW) While 1 Switch GuiGetMsg() Case $GUI_EVENT_CLOSE, $Quit ExitLoop Case $GetIt GUICtrlSetData($SID, "Protokoll anzeigen.."); $s=myGetSID(GUICtrlRead($User), GUICtrlRead($Server), GUICtrlRead($Radio1)=$GUI_CHECKED) GUICtrlSetData($SID, Modify4OutPut($s, GUICtrlRead($Radio1)=$GUI_CHECKED)); Case $Radio1 GUICtrlSetState($Chk2, $GUI_HIDE) GUICtrlSetData($SID, ""); Case $Radio2 GUICtrlSetState($Chk2, $GUI_SHOW) GUICtrlSetData($SID, ""); Case Else ;-)) EndSwitch Wend Exit 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 &@CRLF $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 &@Lf &$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 Func Modify4OutPut($s, $NurEiner=True) Dim $v, $t, $i, $u If $NurEiner Then Return StringMid($s, 10, StringInstr($s, @Tab)-10) If GUICtrlRead($Radio2)=$GUI_CHECKED And GUICtrlRead($Chk2)=$GUI_CHECKED Then _IEPrt ("<Pre>" &$s, "Wirklich alle SIDs..") Else $t=StringSplit($s, @Cr) For $i=1 To $t[0] If StringInstr($t[$i], "S-1-5-32") Then $v=$v &$t[$i] &@Cr If StringInstr($t[$i], "S-1-5-21") Then $u=$u &$t[$i] &@Cr Next _IEPrt ("<Pre>" &$v &$u, "Alle SIDs") EndIf Return "Protokoll angezeigt.." EndFunc Func _IEPrt($Was, $Titel, $Breite=660, $Hoehe=300, $Links=100, $Oben=100) ;funzt sowieso 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=1 $IE.Document.Body.InnerHtml="Bitte warten.." $IE.Toolbar=False $IE.Menubar=False $IE.Statusbar=False $IE.Visible=True $IE.Document.Body.InnerHtml=$Was EndFunc Func Msg($s) MsgBox(4096, "Msg", $s) EndFunc -
Hi,
für alle FreePDF XP-Fans/-Freaks:
Habe gerade Version 3.07 gedownloadet:
http://shbox.de/fpxpdownload.htm
muß jetz installieren und konfigurieren
Bis später
ytwinky -
..oder die Parameter richtig übergeben..