[autoit]
_IELinkClickByIndex
_IELinkClickByText
_IELinkClickByIndex
_IELinkClickByText
Wie versprochen ein paar Bilder für euch. In Irland war es wirklich wunderschön! ![]()
[Blockierte Grafik: http://www.imgbox.de/users/funkey/Irland1.jpg]
[Blockierte Grafik: http://www.imgbox.de/users/funkey/Irland2.jpg]
[Blockierte Grafik: http://www.imgbox.de/users/funkey/Irland3.jpg]
[Blockierte Grafik: http://www.imgbox.de/users/funkey/Irland4.jpg]
Neue Version meines VNC-Loggers siehr Post#1
So?
#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global Const $MandatoryIniArray[4] = ["Axel","Peter","Yvonne","Willi"]
Global $scriptIni = "AnwesendePersonen.ini"
$aPersonen = IniReadSection(@ScriptDir & "\" & $scriptIni, 'Personen')
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($MandatoryIniArray) -1
_ArraySearch($aPersonen, $MandatoryIniArray[$i])
If @error Then MsgBox(0,"", $MandatoryIniArray[$i] & ' ist nicht da!')
Next
So wie es aussieht, ist das nur für Zahlen gedacht! ![]()
#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global $all[10]
For $i = 0 To 9
$all[$i] = $i
Next
_create_strings(6)
[/autoit] [autoit][/autoit] [autoit]Func _create_strings($length)
Local $test = _ArrayCombinations($all, $length)
_ArrayDisplay($test)
EndFunc
Ich benutze nur die englische Hilfe, sorry. Da finde ich alles was ich brauche, und ich kann mir sicher sein, dass es stimmt.
Ich würde aber die deutsche Hilfe verwenden, wenn sie einen großen Vorteil bieten würde. Zum Beispiel zusätzliche Hilfebeispiele z.B. zu den _GDIPlus- und _WinAPI-Befehlen.
Ich finde es aber toll, dass es so engagierte Leute gibt, die sich die Mühe machen, alle Funktionen zu übersetzen, und es wäre überaus schade, wenn ihr damit aufhören würdet.
Also: Weiter so!! ![]()
Tolle Erweiterungen!
Aber ich verstehe noch nicht ganz, warum du den 'Bug' beibehalten willst?
Nochmal zur Erklärung: Wenn man nach unten drückt, dann fällt der Buchstabe etwas schneller zu Boden. Man kann ihn dann nicht mehr verschieben. Wenn man aber die Leertaste noch bevor der Buchstabe auf den Boden ist drückt, dann wird das Spiel ja neu gestartet (;)), aber es erscheinen 2 blinkende Buchstaben-Buttons, von denen der eine mitten im Feld stehenbleibt, sobald der andere den Boden berührt. Ich kann fast nicht glauben, dass das so gewollt ist. ![]()
Noch etwas: Wenn man ein bischen zu schnell (ungeduldig) ist, dann schlatet sich z.B. die Pause noch 10 Sekunden nachdem man das letzte Mal geklickt hat, noch aus und ein. ![]()
For $i = 0 to 1
[/autoit]Edit: Oder besser:
[autoit]For $i = 0 to UBound($Ip) -1
[/autoit]Jam00: Dann kannst du auch mal die neue Version testen!
;~ #NoTrayIcon
#include <WindowsConstants.au3>
#include <Constants.au3>
#Include <Array.au3>
#Include <Misc.au3>
#Include <File.au3>
Opt('TrayMenuMode', 1)
Opt('GUIEventOptions', 1)
Global $title = 'VNC-Clients', $x = 80, $y = 25, $Label, $LabelHeight = 13, $aSave
_Singleton($title)
GUICreate($title, $x, $LabelHeight, @DesktopWidth - $x, $y, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
GUISetBkColor(0xFFFFDD)
$Label = GUICtrlCreateLabel('', 0, 0, $x, $LabelHeight, 0x1)
GUICtrlSetTip(-1, $title & @CRLF & 'Diese Computer sind derzeit online!')
WinMove($title, '', Default, Default, 0, 0)
_check()
AdlibEnable('_check', 3000)
HotKeySet('^!{F10}', '_Exit')
GUISetState()
While 1
Sleep(10000)
WEnd
Func _check()
Local $sPC, $aPC = _GetConnectionFromPort()
If UBound($aSave) <> UBound($aPC) Then
$aSave = $aPC
For $i = 0 To UBound($aPC) -1
$sPC &= $aPC[$i] & @CRLF
_FileWriteLog('VncVerbindungen.log', $aPC[$i])
Next
GUICtrlSetData($Label, $sPC)
WinMove($title, '', Default, Default, $x, $LabelHeight*$i, 100)
EndIf
EndFunc
Func _Exit()
Exit
EndFunc
Func _GetConnectionFromPort($sPort = '5900')
; funkey 17.06.2009
; gibt IP oder Namen eines verbundenen PC's abhängig vom Port zurück
; Standard-Port ist 5900 für VNC, 3389 wäre für Remotedesktop ('mstsc.exe')
Local $sErgebnis, $aPort
Local $pid = Run(@ComSpec & " /c " & 'netstat -np TCP |findstr ":'&$sPort&'"', "", @SW_HIDE, $STDOUT_CHILD)
Do
$sErgebnis &= StdoutRead($pid)
Until @error
$aPort = StringSplit($sErgebnis, @CRLF, 3)
For $i = UBound($aPort) - 1 To 0 Step -1
If StringInStr($aPort[$i], 'HERGESTELLT') Then
$aPort[$i] = StringRegExpReplace($aPort[$i], '(\s+)(\S+)(\s+)(\S+)(\s+)(\S+):(\S+)(\s+)(\S+)', '$6')
Else
_ArrayDelete($aPort, $i)
EndIf
Next
If Not IsArray($aPort) Then Return SetError(1, 0, "")
Return $aPort
EndFunc
Super gemacht Oscar!!
Wusste ja, dass einer auf meinen Vorschlag eingehen würde! ![]()
Hab auch noch einen Bug entdeckt. Mit der Leertaste kann man ja zum nächsten Wort wechseln. Wenn man aber einmal nach unten drückt und dann die Leertaste, dann funktioniert was nicht mehr richtig. ![]()
Zitat von KennyHabe ein Problem
Wieso postest du solchen Quatsch im Entwickler-Forum?
Meinst du das?
[autoit]GUICtrlSetOnEvent
[/autoit]
dazu brauchst du auch das:
Opt('GUIOnEventMode', 1)
[/autoit]So?
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('GUIOnEventMode', 1)
Opt('TrayOnEventMode', 1)
Opt('TrayMenuMode', 1)
$hGui = GUICreate('Test', 300, 300)
GUISetOnEvent($GUI_EVENT_CLOSE, '_Exit')
GUISetOnEvent($GUI_EVENT_MINIMIZE, '_Minimize')
TraySetOnEvent( -7, '_Restore')
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(2000)
WEnd
Func _Exit()
Exit
EndFunc
Func _Minimize()
TraySetState(1)
GUISetState(@SW_HIDE)
EndFunc
Func _Restore()
TraySetState(2)
GUISetState(@SW_SHOW)
EndFunc
VNC ist eine Software mit der man PCs fernsteuern kann.
Aber warum hast du nicht gleich Google befragt, anstatt hier zu posten
http://de.wikipedia.org/wiki/Virtual_Network_Computing
Meine Idee für ein Programm: Lettris
Ich finde Lettris ist ein nettes Programm für kleine Kinder, die gerade schreiben gelernt haben.
Habe leider wenig Zeit, vllt hat jemand Lust das Spiel in Autoit umzusetzen?!
Da ich immer wissen will, wer außer mir noch mittels VNC auf gewisse Rechner zugreift, habe ich mir heute folgendes Skript erstellt, das mir via netstat alle verbundenen PC's anzeigt. Das Skript starte ich auf den Rechnern, auf denen der VNC-Server läuft. Beenden mittels Strg+Alt+F10
Viel Spaß! Hoffe es kann jemand brauchen.
#include <WindowsConstants.au3>
#include <Constants.au3>
#Include <Array.au3>
#Include <Misc.au3>
#Include <File.au3>
Opt('TrayMenuMode', 1)
Opt('GUIEventOptions', 1)
Global $title = 'VNC-Logger', $x = 80, $y = 25, $Label, $LabelHeight = 13, $aSave
_Singleton($title)
GUICreate($title, $x, $LabelHeight, @DesktopWidth - $x, $y, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
GUISetBkColor(0xFFFFDD)
$Label = GUICtrlCreateLabel('', 0, 0, $x, $LabelHeight, 0x1)
GUICtrlSetTip(-1, $title & @CRLF & 'Diese Computer sind derzeit online!')
WinMove($title, '', Default, Default, 0, 0)
If Not FileExists(@ScriptDir & '\VNC-Logs') Then DirCreate(@ScriptDir & '\VNC-Logs')
[/autoit] [autoit][/autoit] [autoit]_check()
AdlibEnable('_check', 3000)
HotKeySet('^!{F10}', '_Exit')
GUISetState()
While 1
Sleep(10000)
WEnd
Func _check()
Local $sPC, $aPC = _GetConnectionFromPort()
If UBound($aSave) <> UBound($aPC) Then
$aSave = $aPC
For $i = 0 To UBound($aPC) -1
$sPC &= $aPC[$i] & @CRLF
_FileWriteLog(@ScriptDir & '\VNC-Logs\VNC-Connections.log', 'Aktive Verbindung zu: ' & $aPC[$i])
Next
WinMove($title, '', Default, Default, $x, $LabelHeight*UBound($aPC), 100)
If Not IsArray($aPC) Then _FileWriteLog(@ScriptDir & '\VNC-Logs\VNC-Connections.log', 'Keine Verbindungen mehr aktiv!')
GUICtrlSetData($Label, $sPC)
EndIf
EndFunc
Func _Exit()
Exit
EndFunc
Func _GetConnectionFromPort($sPort = '5900')
; funkey 17.06.2009
; gibt IP oder Namen eines verbundenen PC's abhängig vom Port zurück
; Standard-Port ist 5900 für VNC, 3389 wäre für Remotedesktop ('mstsc.exe')
Local $sErgebnis, $aPort
Local $pid = Run(@ComSpec & " /c " & 'netstat -np TCP |findstr ":'&$sPort&'"', "", @SW_HIDE, $STDOUT_CHILD)
Do
$sErgebnis &= StdoutRead($pid)
Until @error
$aPort = StringSplit($sErgebnis, @CRLF, 3)
For $i = UBound($aPort) - 1 To 0 Step -1
If StringInStr($aPort[$i], 'HERGESTELLT') Then
$aPort[$i] = StringRegExpReplace($aPort[$i], '(\s+)(\S+)(\s+)(\S+)(\s+)(\S+):(\S+)(\s+)(\S+)', '$6')
Else
_ArrayDelete($aPort, $i)
EndIf
Next
If Not IsArray($aPort) Then Return SetError(1, 0, "")
Return $aPort
EndFunc
P.S. Ich weiß, es ist nicht perfekt, aber es läuft! Getestet auf WinXP SP2
EDIT: Neue Version. Nun nennt sich das Ding VNC-Logger!
Das 'showflag' ist der fünfte Parameter und nicht der dritte!
Die Zeile Nummer kannst du aus der Ini-Datei streichen. So heißt ja schon die Sektion.
#RequireAdmin
#NoTrayIcon
#include <GUIConstantsEx.au3>
Opt("GUIOnEventMode", 1)
; Variablen
Global $lw_stick = StringLeft(@ScriptDir, 3), $i, $kdnr, $kdnur[10], $daten[10]
$inifile = $lw_stick & "kunden.ini"
GUICreate("Kundenliste", 400, 500)
HotKeySet("{ESC}", "MeinExit")
GUISetOnEvent($GUI_EVENT_CLOSE, "MeinExit")
Global $daten = IniReadSectionNames($inifile)
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $daten[0]
GUICtrlCreateLabel($daten[$i], 15, $i * 22, 50, 20)
GUICtrlCreateLabel(IniRead($inifile, $daten[$i], 'Kunde', 'Firma nicht bekannt'), 70, $i * 22, 220, 20)
GUICtrlSetOnEvent(-1, '_Kunde')
Next
GUISetState()
[/autoit] [autoit][/autoit] [autoit]; Funktionen
While 1
Sleep(10000)
WEnd
Func MeinExit()
Exit
EndFunc ;==>MeinExit
Func _Kunde()
For $i = 0 To $daten[0]
If IniRead($inifile, $daten[$i], 'Kunde', 'Firma nicht bekannt') = GUICtrlRead(@GUI_CtrlId) Then
MsgBox(64, $daten[$i], GUICtrlRead(@GUI_CtrlId))
ExitLoop
EndIf
Next
; Run(@COMSPEC & " /c Start " & $kdnr[$i])
EndFunc ;==>_Kunde
Die Beta-Version kann mehrere Adlibs mittels AdlibRegister afaik. Hab's aber noch nicht getestet.