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. super47

Beiträge von super47

  • @error = -1

    • super47
    • 23. August 2010 um 19:45

    guten abend,

    ich habe diesen code:

    Code
    _ftp()
    Func _ftp()
    ConsoleWrite('@@ (73) :(' & @MIN & ':' & @SEC & ') _ftp()' & @CR) ;### Function Trace
    MsgBox(0, "FTP:", $Datei)
    
    
    $FTP_open = _FTP_Open("myftp")
    $FTP_Connect = _FTP_Connect($FTP_open, "super-skat.de", "s013Anton30", "**********")
    Msgbox(0,"Verbondung ok ?","@error="&@error)
    
    
    MsgBox(0, "$FTP_Connect:", $FTP_Connect)
    $Pfad = "C:\autoit\update\"
    
    
    TrayTip("Auf Webseite", "Foto wird hochgeladen !", 1, 2) ;~ Erfolgreich erstellt Info anzeigen
    MsgBox(0, "FTP:", $Datei)
    
    
    _FTP_FilePut($FTP_Connect, $Pfad & $Datei, "/html/" & $Datei)
    Msgbox(0,"Ist datei hochgeladen?","@error="&@error)
    TrayTip("Auf Webseite", "Datei erfolgreich hochgeladen !", 1, 1) ;~ Erfolgreich erstellt Info anzeigen
    FTP_Close($FTP_open)
    EndFunc
    Alles anzeigen

    mit den Msgbox frage ich den @error ab -----da kommt jeweils -1

    da willich erst mal pruefen ob verbindung klappt

    und dann ob Datei hochgeladen wurde

    irgendwie stüemperhaft :(

    kann mir das jemand in ne vernuenftige form bringen?

    zb meldet das dann verbindung OK oder nicht OK

    Hochladen gescheitert oder gelungen

    bitte um Nachsicht, das sollte einfache sache sein ..hmmm

    danke gruss
    roland

  • IE.au3 - FF.au3 - mozrepl

    • super47
    • 1. August 2010 um 18:18

    danke erst mal

    abwer die problematik ist ausfuehrlich beschrieben, mit der antwort ist mir nur bedingzt geholfen
    gruss roland

  • IE.au3 - FF.au3 - mozrepl

    • super47
    • 1. August 2010 um 09:27

    Guten Tag zusammen,
    ich habe ein script (IE_login.au3) gemacht, welches mit der IE.au3 den IE startet, eine Webseite aufruft, zwei Felder(Benutzer,Passswort) ausfüllt und den Login Button betätigt. (genial _ ich bin sehr stolz auf mich :S )

    ich schicke die IE_login.exe meinem Kollegen, (dieser nutzt die gleiche Webseite) , nun kommt gas grosse Erwachen, er antwortet: " ich habe den FF installiert, den IE habe ich deinstalliert)

    Was Tun ?? ---------Ihm sagen soll IE wieder installieren :) , oder ich schreibe ihm das script für FF

    Ans Werk, sollte ja kein problem sein. Ich Google, suche Tutorial und finde:Tutorial toll, da hab ich ja gefunden was ich brauche.

    Zitat

    Als erstes braucht ihr natürlich eine aktuelle Version der FF.au3, die ihr hier bekommt:
    http://thorsten-willert.de/Themen/FFau3/FF.au3/files

    Dann müsst ihr natürlich noch FireFox haben (*lach*) und das AddOn MozRepl, ohne das der Bot nicht funktionieren kann. Das AddOn bekommt ihr hier:
    http://wiki.github.com/bard/mozrepl
    Wie ihr das handhaben könnt, dass auch z.B. BotUser das nutzen können, wenn ihr mit der FF.au3 einen Bot publiziert, dazu komme ich später.


    die FF.au3 lade ich runter ins Autoit include verzeichniss.
    das AddOn mozrepl lade ich auch runter und lade dieses im FF
    ich sripte ........aha genial der FF startet und der login funktioniert.

    nun wird es wirr ??
    hat mein kollege das AddOn ? (ich will nicht nachfragen, oder ihm die AddOn Installation zumuten)
    , wenn nicht , dann sollte die EXE gleich mit erledigen.
    ich deaktivere in meinem FF das Addon mozrepl, und starte mein script !!
    das ding funktioniert komischerweise ??

    von Danielsan85 habe ich den Link zu Pastebin erhalten

    jetzt kommt eine FFEx.au3 ins spiel ?
    erklärt mir nun bitte jemand zu was das AddOn mozrepl gebraucht wird ? und was das ueberhaupt bewirkt ?
    Die FFFex.au3 installiert das AddOn ?? oder sehe ich das falsch ??
    ich finde dazu nirgends ne vernünftige Anleitung, schlimm wirds, wenn z. b. thorsten willert eine DE Seite betreibt und fast alle wichtigen details, dann in engl. verfasst sind
    eine Stuktur:
    es braucht....FF.au3 ...da sind Funktionen zum Steuern des FF integriert ...das bekommst du daaaaa... und das installierst du sooooooooooo
    benoetigt wird das AddOn....mozrepl (aufgabe) (wie installieren beschreiben)
    bei der Weitergabe der EXE muss: pruefen AddOn vorhanden......, wenn nicht .....installiere (code im script) ---hier brauchts denke ich mal die FFÉx.au3 (beschreibung )
    es kann ja sein, dass ich schwer von begriff bin, oder wegen mangelnder engl. sprache das ganze nicht kapiere.! drum wäre ich froh wenn mir jemand das mal hier beschreiben wuerde.
    danke gruss roland

  • IE Logineingaben funktioniert, aber wie in FF

    • super47
    • 29. Juli 2010 um 18:12

    hi daniel,
    ich habe noch ein tab vor enter rein jetzt gehts .....
    uff aufs mal gehts auch ohne tab ????danke für die gute Hilfe
    jatzt muss ich noch abfragen ob das add on installiert ist .....,wenn nicht sollte das grad installiert werden.
    hm kann ich das gerade im autoit .....als file mitliefern?? runtergeladen hab ich das ding ja
    ich will auch noch raus suchen ob ich das fuer andere browswer auch einrichten kann???

    ich wäre sehr froh, wenn du mir dabei helfen koenntest.

    mit solchen komplexen sachen brauche ich sehr lange bis das endlich zum laufen bringe

    aber ich lasse nicht locker ))

    danke
    gruss roland

  • IE Logineingaben funktioniert, aber wie in FF

    • super47
    • 29. Juli 2010 um 09:32

    oh danke ---ja das addon habe ich installiert

    bis dahin bin ich gekommen:

    Code
    #include <FF.au3> ; Muss immer da sein
    _FFStart("http://srv13.mw-internet.net/") ; Wenn der FF offen sein sollte, ist auch _FFConnect möglich! Startet den FireFox mit der Seite "www.web.de" und wartet mit Fortführung des Scripts, bis geladen
    If _FFIsConnected() Then ; Wenn die Verbindung zum FF hergestellt werden konnte, dann...
    _FFSetValue("test", "username", "name") ; Setzt in das Element mit dem Namen "" den Benutzernamen ein
    _FFSetValue("passwort", "password", "name") ; Setzt in das Element mit dem Namen "" den Benutzernamen ein
    MsgBox(64, "Formular abschicken", "betätigt submit")
    _FFFormSubmit() ; Bestätigt das Formular
    ;_FFFormSubmit([$vForm = 0[, $sMode = "index"[, $sSubmitMode = "submit"]]])
    ;_FFWindowClose() ; Schließt das Fenster wieder
    
    
    Else ; Sonst... (Fehlermeldung!)
    MsgBox(64, "Ein Fehler ist aufgetreten", "Eine Verbindung mit dem Mozilla FireFox war nicht möglich!")
    EndIf
    Alles anzeigen


    Autoit meldet bei ausfuehren mit F5

    Zitat

    >"C:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Dokumente und Einstellungen\Administrator\Desktop\autoit_super_skat\hilfe_beispiel\FF_test.au3" /autoit3dir "C:\Programme\AutoIt3" /UserParams
    +>09:21:05 Starting AutoIt3Wrapper v.2.0.1.24 Environment(Language:0407 Keyboard:00000407 OS:WIN_XP/Service Pack 3 CPU:X86 OS:X86)
    >Running AU3Check (1.54.19.0) from:C:\Programme\AutoIt3
    +>09:21:05 AU3Check ended.rc:0
    >Running:(3.3.4.0):C:\Programme\AutoIt3\autoit3.exe "C:\Dokumente und Einstellungen\Administrator\Desktop\autoit_super_skat\hilfe_beispiel\FF_test.au3"
    __FFStartProcess: ""C:\Programme\Mozilla Firefox\firefox.exe" -new-window "http://srv13.mw-internet.net/" -repl 4242
    _FFConnect: OS: WIN_XP WIN32_NT 2600 Service Pack 3
    _FFConnect: AutoIt: 3.3.4.0
    _FFConnect: FF.au3: 0.6.0.1b-3
    _FFConnect: IP: 127.0.0.1
    _FFConnect: Port: 4242
    _FFConnect: Delay: 5ms
    _FFConnect: Socket: 1596
    _FFConnect: Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.11) Gecko/20100701 Firefox/3.5.11 ( .NET CLR 3.5.30729)
    __FFSendJavaScripts: Sending functions to FireFox .......... done
    _FFLoadWait: ....................... loaded in 6802ms
    __FFSend: try{FFau3 != null?1:0}catch(e){'_FFCmd_Err';};
    __FFRecv: 1
    __FFSend: try{window.content.top.document.getElementsByName('username')[0].value='test'}catch(e){'_FFCmd_Err';};
    __FFRecv: test
    __FFSend: try{window.content.top.document.getElementsByName('password')[0].value='passwort'}catch(e){'_FFCmd_Err';};
    __FFRecv: passwort
    __FFSend: try{window.content.top.document.forms[0].elements.length;}catch(e){'_FFCmd_Err';};
    __FFRecv: 0
    __FFSend: try{window.content.top.document.forms[0].submit();}catch(e){'_FFCmd_Err';};
    __FFRecv:
    _FFLoadWait: .. loaded in 614ms
    +>09:21:29 AutoIT3.exe ended.rc:0
    >Exit code: 0 Time: 26.241

    Alles anzeigen


    er schreibt in die eingabe felder richtig
    aber nach der Msgbox macht er Autovervollständigen

    und abschicken geht nicht

    http://srv13.mw-internet.net/user/index.php

    das ist die login seite

    im IE ohne probleme
    was da allerdings im FF einfacher sein soll ??
    zudem startet der FF sehr langsam......gegen IE

    kann jemand mal code fuer die genannte url testen ---

    danke gruss roland

  • IE Logineingaben funktioniert, aber wie in FF

    • super47
    • 29. Juli 2010 um 08:03

    guten tag,
    folgender code startet eine Url im IE und fuellt zwei felder aus.
    dann wird formular abgeschickt

    Code
    ;_mail($username, $password, $postfach)
    Func _mail($username, $password, $postfach)
    
    
    	;MsgBox(0, $username & ", " & $password & " , " & $postfach, "")
    	$oIE = _IECreate($postfach)
    	; Holt Zeiger zum Login-Formular und zu den Input-Controls von Username und Passwort
    	$o_form = _IEFormGetObjByName($oIE, "loginform")
    	$o_login = _IEFormElementGetObjByName($o_form, "username")
    	$o_password = _IEFormElementGetObjByName($o_form, "password")
    
    
    	; Setzt die Feld-Werte und schickt das Formular ab
    	_IEFormElementSetValue($o_login, $username)
    	_IEFormElementSetValue($o_password, $password)
    	_IEFormSubmit($o_form)
    
    
    EndFunc   ;==>_mail
    Alles anzeigen

    das gleiche will ich nun für den FF umsetzen.
    ich finde Thorsten Willert Zweitzes Tutorial: (ein erstes finde ich nicht ??)

    Zitat

    In diesem Zusammenhang habt ihr sicher auch schon von der IE.au3 gehört... Hören und vergessen, die FF.au3 ist funktioneller, einfacher und schneller! STAUNE!!
    2. Meine Vorbereitung, bevor ich überhaupt anfangen kann

    Als erstes braucht ihr natürlich eine aktuelle Version der FF.au3, die ihr hier bekommt:
    http://thorsten-willert.de/Themen/FFau3/FF.au3/files

    Dann müsst ihr natürlich noch FireFox haben (*lach*) und das AddOn MozRepl, ohne das der Bot nicht funktionieren kann. Das AddOn bekommt ihr hier:
    http://wiki.github.com/bard/mozrepl
    Wie ihr das handhaben könnt, dass auch z.B. BotUser das nutzen können, wenn ihr mit der FF.au3 einen Bot publiziert, dazu komme ich später.

    Wenn ihr auch AutoIt & Co habt, steht uns nichts weiter im Wege!
    schlecht finde ich, deutsches tut ..aber in Beispiele alles in engl. kommentiert

    Sorry was z b ist ein BotUser ??

    stundenlang habe ich mich mit dem installieren des AddOn MozRepl, rumgeschlagen. (das Tut ist denke ich mal eher für Profi )

    Zitat

    6. Muss ich das mit MozRepl jedem erklären, der meine Bots nutzen will?


    Nein ...! Denn Thorsten Willert und Thunder-man (Frank Michalski) haben da vorgesorgt und eine UDF kreiert, die überprüft, ob MozRepl bereits installiert ist. Wenn dies nicht der Fall ist, wird das direkt nachgeholt.
    Ich habe es leider noch nicht testen können, es soll aber funktionieren.
    Hier die UDF:

    also wenn ich ne exe mache, und ich die weitergebe soll das addon direckt instaliert werden ??


    wer zeigt mir bitte wie ich den eingangs angegeben code füer den IE für den FF schreibe...?

    dann hätte ich mal ein autologin fuer diese beiden broswer
    aber wie ist das mit andern ? Opera z b ?
    danke erst mal gruss roland

  • ControlListView - - eine Datei selektieren.

    • super47
    • 20. Juli 2010 um 19:42

    erst mal danke....

    muss das erst mal umsetzen

    dauert bei mir bisschen länger aber probem sollte geloest sein...

    das mit find text muss auch erst mal ansehn

    danke gruss roland

  • ControlListView - - eine Datei selektieren.

    • super47
    • 20. Juli 2010 um 19:16

    hi wollt damit nur unterscheiden dass das nicht men code ist

    die datei die ich suche steht im listview
    aber ich weis net an welcher stelle

    also muss ich die irgendwie suchen.........dann select und dann nen button betätigen

    wenn die datei immer an letzer stelle steht ginge das einfach mit count anzahl feststellen

    und dann die letze selectieren

    ich werd erst mal weitersuchen und mit der Hilfe

    Hast du eigenlich deine Übersetzung in deutsch MSL fertig ?

    gruss roland

  • ControlListView - - eine Datei selektieren.

    • super47
    • 20. Juli 2010 um 18:52

    hi schlafbär,
    ich bin immer noch schwer von begriff :(

    in einmem listview stehn mehrer dateien .............

    ich will eine bekannte Datei selktieren. z b . 10.06.16.12.55.18.FEI

    bei listbox schreibe ich ein selectstring (Datei)

    Zitat

    ControlCommand("Datei mit", "", "[CLASS:#32770; INSTANCE:1]", "SelectString", $select)

    aber ich finde nicht zurecht wie das mit dem listview geht.


    Immer noch zusammenspiel SKat und MSL

    schoen dass mal wieder was von dir hoere,
    gruss roland

  • ControlListView - - eine Datei selektieren.

    • super47
    • 20. Juli 2010 um 15:39

    Guten Tag, ich hänge mal wieder an einer Grundlagenproblematik rum.. :cursing:

    Spoiler anzeigen

    #include <Array.au3>
    #include <GuiListView.au3>

    WinActive("Datei mit")
    WinActivate("Datei mit")

    $hListView = ControlGetHandle("Datei mit", "", "SysListView321")
    $aText = _GUICtrlListView_GetItemTextArray($hListView, _GUICtrlListView_GetItemCount($hListView) - 1)
    _ArrayDisplay($aText)

    $gut0 = ControlListView("Datei mit", "", "SysListView321", "FindItem", "10.06.16.12.55.18.FEI", 1);Datei 0
    $gut1 = ControlListView("Datei mit", "", "SysListView321", "FindItem", "10.05.08.20.40.25.FEI", 1);Datei 1
    $gut2 = ControlListView("Datei mit", "", "SysListView321", "GetItemCount")
    ControlListView("Datei mit", "", "SysListView321", "SelectAll") ;funtionert nicht , geht auch manuell nicht

    MsgBox(0, $gut0, "0")
    MsgBox(0, $gut1, "1")
    MsgBox(0, $gut2, "2")

    ;wie kann ich in dem listviev eine Datei (z b , Datei 1 , selektieren ??
    ;in ne list box habe das gemacht ohne problem
    ;hier wollte ich mit FIND...die ID der datei suchen, um dann selektieren

    die Frage habe ich im Code mit Kommentar eingefuegt..

    Vielen Dank
    Gruss roland

  • Scipt ausfüehren JA/NEIN

    • super47
    • 12. Juli 2010 um 17:10

    hi BUGFIX,
    danke erst mal fuer deine Muehe.

    folgender code funktioniert

    Code
    While ProcessExists($netskatexe)
    	; Hauptschleife Wartet auf Spielende
    	If WinExists($tTitle) Then
    		While WinActive($tTitle)
    			$thWnd = WinGetHandle($tTitle)
    			$thandle = ControlGetHandle($thWnd, "", "Button3")
    			$var = ControlGetText($thWnd, "", "Button3")
    			If $var = "Spielergebnis als Email verschicken" Then
    				_ScanneLogDir($Pfad_SpielProtokol)
    			EndIf
    			Sleep(30)
    		WEnd
    	EndIf
    	Sleep(30)
    
    
    	; Hauptschleife Wartet auf Fortsetzen
    	If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    		While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    			ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    			Send("{ENTER}")
    			Sleep(10000)
    			ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    			Sleep(2000)
    		WEnd
    	EndIf
    WEnd
    Alles anzeigen


    While ProcessExists($netskatexe)prüft ob Programm lauft

    dann kommt eine schleife:

    Zitat

    If WinExists($tTitle) Then
    While WinActive($tTitle)
    $thWnd = WinGetHandle($tTitle)
    $thandle = ControlGetHandle($thWnd, "", "Button3")
    $var = ControlGetText($thWnd, "", "Button3")
    If $var = "Spielergebnis als Email verschicken" Then
    _ScanneLogDir($Pfad_SpielProtokol)
    EndIf
    Sleep(30)
    WEnd
    EndIf

    Alles anzeigen


    Da wird geprüft ob das programm ein bestimmtes fenster (erscheint am ende dess spiels), offen ist.
    dann wird die FUNC _ScanneLogDir($Pfad_SpielProtokol) ausgefüehrt. (in dieser wird auch das script dann beendet

    es gibt noch eine weitere schleife in der schleife While ProcessExists($netskatexe)

    Zitat

    ; Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(2000)
    WEnd
    EndIf

    Alles anzeigen

    da wirs in edit1 in diesem Fenster ein text ----- $mail_forts--(=ne mail adresse) Global $mail_forts = $CmdLine[3]
    eingefuegt.

    in dieser zweiten schleife wollte ich nun JA/NEIN einbauen, so dass das Edit1 Feld nicht automatisch ausgefüllt wird, sonder der Nutzer selbst was eintragen kann.
    mit ExitLoop kommt msgbox immer wieder (logisch weil fenster offen ist), lässt sich also nicht schliessen, bzw startet immer wieder.
    ExitLoop 2 beendet diese Schleife und die Hauptschleife.
    aber leider auch das ganze script, das soll aber nicht sein, weil das script ja bei Spielende noch was machen soll, nämlich den code in Schleife 1 ausführen.

    ich hoffe es ist so verständlich,
    das in deinem letzten Beitrag (Änderungen markiert mit ";#############"). Probiers aus
    habe ich nciht kapiert :sleeping:

    Vielen dank für die Geduld
    Gruss Roland

  • Scipt ausfüehren JA/NEIN

    • super47
    • 12. Juli 2010 um 14:53

    da muss weitermachen

    Code
    While ProcessExists($netskatexe)
    	; Hauptschleife Wartet auf Spielende
    	If WinExists($tTitle) Then
    		While WinActive($tTitle)
    			$thWnd = WinGetHandle($tTitle)
    			$thandle = ControlGetHandle($thWnd, "", "Button3")
    			$var = ControlGetText($thWnd, "", "Button3")
    			If $var = "Spielergebnis als Email verschicken" Then
    				_ScanneLogDir($Pfad_SpielProtokol)
    			EndIf
    			Sleep(30)
    		WEnd
    	EndIf
    Alles anzeigen

    im gesamtscript ist das direckt über dem abschnitt mit dem ja/ nein

    den gesamt code habe weiter oben in nem spoiler

    danke gruss roland

  • Scipt ausfüehren JA/NEIN

    • super47
    • 12. Juli 2010 um 13:33

    ich glaube cih klass die abfrage weg :-((

    anscheinend doch nicht so einfach,

    da kann ich dann lange rumsuchen (als anfänger)

    gruss roland

    Ps:
    das mit der msgbox geht ja nun
    nur darf das ding nicht das script beenden, wenn ich auf NEIN drücke

  • Scipt ausfüehren JA/NEIN

    • super47
    • 12. Juli 2010 um 12:32

    komme da nicht mit:-(

    mit

    Code
    exitloop 2


    schliesst die Msgbox
    aber es soll nicht das komplette script beenden ?

    ich fuege mal das gesamtscript hier ein (aber sehr langes ding )

    Spoiler anzeigen

    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=netskatstart.ico
    #AutoIt3Wrapper_Outfile=netskatstart.exe
    #AutoIt3Wrapper_Res_Comment=Codet by Gummibaer
    #AutoIt3Wrapper_Res_Description=AutoRunner for Netskat
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.12
    #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p
    #AutoIt3Wrapper_Res_LegalCopyright=Gummibaer
    #AutoIt3Wrapper_Res_SaveSource=y
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Run_Tidy=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Opt("TrayAutoPause", 0)
    Opt("TrayIconDebug", 0)
    Opt("TrayIconHide", 0)
    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.0.0
    Author: myName

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------

    ;[includes]
    #include <Inet.au3>
    #include <GuiTab.au3>
    #include <SendMessage.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <File.au3>
    #include <Array.au3>

    _Checkinstallation()

    If UBound($CmdLine) <> 4 Then
    MsgBox(0, "Parameter", "nicht alle Parameter beim Start von Netskatstart.exe eingegeben" & @CRLF & "Autoit wird beendet.")
    ;Exit

    EndIf
    Global $netskat_Title = "NetSkat -"
    Global $tTitle = "Turnier-Liste"
    Global $sTitle = "Einstellungen für"
    Global $neuTitle = "Neuen Spielernamen eingeben"
    Global $spielername_bearbeiten = "Eigenen Spielernamen bearbeiten"
    Global $netskatexe = "netskat.exe"
    Global $spieler_neu = $CmdLine[2]
    Global $mail_forts = $CmdLine[3]
    ;Global $NetSkatDir = _getNetSkatDir()
    $NetSkatDir = "c:\Programme\Cutesoft\Netskat\"
    If Not FileExists($NetSkatDir) Then
    MsgBox(0, "pfad", $NetSkatDir & @CRLF & "existiert nicht")
    $NetSkatDir = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die Netskat.exe", "C:\Programme", 7)
    EndIf
    MsgBox(0, "Pfad netskat", $NetSkatDir, 1)
    If Not ProcessExists($netskatexe) Then ; Wenn NetSkat nicht gestartet ist starte sie
    If Not $NetSkatDir Then ; Prüfe ob string lerr wenn ja dann msgbox + programm beenden
    MsgBox(48, "Fehler", "NetSkat wurde nicht gefunden!")
    Exit
    Else
    Run($NetSkatDir & "\" & $netskatexe, $NetSkatDir)
    EndIf
    EndIf
    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster

    Local $netskat_gesamt_titel = WinGetTitle("[active]")
    $baseline = StringSplit($netskat_gesamt_titel, " ") ; teile sting anhand des lerrzeichen

    $Spieler = $baseline[5] ;
    ;MsgBox(0, "", $Spieler)
    If $Spieler <> $CmdLine[2] Then
    ControlSend($netskat_Title, "", "", "!es") ; Sende ALT+e+s
    WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
    WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster

    $gefunden = ControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "FindString", $spieler_neu)
    ;MsgBox(0, "find ", $gefunden)
    If $gefunden = 0 Then
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:1]")
    WinActivate($neuTitle) ; Sende Actevirungsbefehl
    WinWaitActive($neuTitle) ; Warte auf Actives Fenster
    ControlSetText($neuTitle, "", "Edit1", $spieler_neu)
    Sleep(2000)
    ControlClick($neuTitle, "", "[CLASS:Button; INSTANCE:2]")
    Sleep(2000)
    WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
    WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")

    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
    ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+e
    WinWait($sTitle) ; Warte auf einstellungsfenster "Einstellungen für"
    WinActivate($sTitle) ; Sende Actevirungsbefehl
    WinWaitActive($sTitle) ; Warte auf Actives Fenster

    ; Hole Handle und ids für tabzuweisung
    $shWnd = WinGetHandle($sTitle)
    $shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
    $TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
    $TabID = $TabID[0]

    ; Wechsel zum Tab persönliche daten
    _GUICtrlTab_SetCurFocus($shTab, 2) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")
    ;MsgBox(0, "", "1")
    ;ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:6]")
    ; Wechsel zum Tab Spiel-server
    _GUICtrlTab_SetCurFocus($shTab, 8) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ControlSetText($sTitle, "", "Edit1", "92.51.143.26")

    ;MsgBox(0, "", "2")
    ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:5]")
    EndIf


    ControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", $spieler_neu)
    MsgBox(0, "Spielername wechseln", "Neu eingestellt" & " " & $spieler_neu & @CRLF & "nach 2 sec schliesse ich selbst ", 2)
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")

    EndIf


    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
    ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+e

    WinWait($sTitle) ; Warte auf einstellungsfenster
    WinActivate($sTitle) ; Sende Actevirungsbefehl
    WinWaitActive($sTitle) ; Warte auf Actives Fenster
    ;MsgBox(0, "", "?????????")
    ; Hole Handle und ids für tabzuweisung
    $shWnd = WinGetHandle($sTitle)
    $shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
    $TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
    $TabID = $TabID[0]

    ; Wechsel zum Tab Datenverzeichniss
    _GUICtrlTab_SetCurFocus($shTab, 4) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ; Lese SpielerDatenVerzeichniss aus
    $Pfad_SpielProtokol = ControlGetText($sTitle, "", "Edit1")
    IniWrite(@ScriptDir & "\netskat.mrc", "super-tool", "Pfad_SpielProtokoll", $Pfad_SpielProtokol)
    ;MsgBox(0, "", "pfad geschrieben")
    ControlClick("Einstellungen für ", "", "[CLASS:Button; INSTANCE:2]")

    _ScanneLogDir($Pfad_SpielProtokol, 1)

    If $CmdLine[1] == "E" Then
    ControlSend($netskat_Title, "", "", "{F2}")
    ControlSend($netskat_Title, "", "", "!e")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ControlSend($netskat_Title, "", "", "{TAB 3}")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ElseIf $CmdLine[1] == "M" Then
    ControlSend($netskat_Title, "", "", "{F2}")
    ControlSend($netskat_Title, "", "", "!M")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ControlSend($netskat_Title, "", "", "^v")
    ElseIf $CmdLine[1] == "FE" Then
    ControlSend($netskat_Title, "", "", "!sf")
    ControlSend($netskat_Title, "", "", "!e")
    ElseIf $CmdLine[1] == "FM" Then
    ControlSend($netskat_Title, "", "", "!sf")
    ControlSend($netskat_Title, "", "", "!n")
    EndIf

    If _Singleton("NetSkatUeberwachung", 1) = 0 Then Exit ; Nur eine Instance erlauben
    While ProcessExists($netskatexe)
    ; Hauptschleife Wartet auf Spielende
    If WinExists($tTitle) Then
    While WinActive($tTitle)
    $thWnd = WinGetHandle($tTitle)
    $thandle = ControlGetHandle($thWnd, "", "Button3")
    $var = ControlGetText($thWnd, "", "Button3")
    If $var = "Spielergebnis als Email verschicken" Then
    _ScanneLogDir($Pfad_SpielProtokol)
    EndIf
    Sleep(30)
    WEnd
    EndIf
    Sleep(30)
    #cs
    ; Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    If WinActive("Daten zum Fortsetzen einer Runde exportieren") And MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    EndIf
    EndIf
    #ce
    ; Hauptschleife Wartet auf Fortsetzen
    ;Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    ;If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    Else
    ExitLoop 2
    EndIf
    WEnd
    EndIf


    WEnd
    _ScanneLogDir($Pfad_SpielProtokol)

    Func _ScanneLogDir($logdir, $verschieben = 0)

    If $logdir = "" Then Return
    If Not FileExists($logdir & "\Spielprotokolle\Archiv") Then DirCreate($logdir & "\Spielprotokolle\Archiv")
    If Not FileExists($logdir & "\Spielprotokolle\Unbekannt") Then DirCreate($logdir & "\Spielprotokolle\Unbekannt")
    Local $hSearch, $sFile, $tFile
    $count = 0
    Dim $FileListArray[1][2]
    $hSearch = FileFindFirstFile($logdir & "\Spielprotokolle\*.TXT")
    ;MsgBox(0, "4---------$hSearch", $hSearch)

    If $hSearch <> -1 Then
    While 1
    $sFile = FileFindNextFile($hSearch)
    ;MsgBox(0, '155----------$sfile', $sFile)

    If @error Then
    SetError(0)
    ExitLoop
    EndIf
    If StringInStr(FileGetAttrib($sFile), "D") == 1 Then ContinueLoop
    $tFile = $logdir & "\Spielprotokolle\" & $sFile
    ;MsgBox(0, '5----------$tfile', $tFile)
    ;MsgBox(0, "6--------------------verschieben", $verschieben)

    If $verschieben = 0 Then
    ReDim $FileListArray[$count + 1][2]
    $t = FileGetTime($tFile, 0)
    $FileListArray[$count][0] = $tFile
    $FileListArray[$count][1] = $t[0] & "." & $t[1] & "." & $t[2] & "." & $t[3] & "." & $t[4] & "." & $t[5]
    $count += 1
    Else
    ;MsgBox(0, "173-------------##", $verschieben & @CRLF & $tFile & @CRLF & $logdir & @CRLF & $sFile)

    FileMove($tFile, $logdir & "\Spielprotokolle\Unbekannt\" & $sFile, 1)
    EndIf
    WEnd
    FileClose($hSearch)
    EndIf
    If $verschieben = 0 Then

    _ArraySort($FileListArray, 1, 0, 0, 1)

    If $FileListArray[0][0] <> "" Then _oeffne_LOG_und_lese_daten_aus($FileListArray[0][0], $logdir)
    EndIf
    ;FileMove($logdir & "\Spielprotokolle\*.TXT", $logdir & "\Spielprotokolle\Unbekannt\", 8)
    EndFunc ;==>_ScanneLogDir

    Func _oeffne_LOG_und_lese_daten_aus($file, $logdir)
    Local $ende = False, $counter, $SpielCounter, $Spieler[3][5]
    Dim $aRecords
    _FileReadToArray($file, $aRecords)
    ;_ArrayDisplay($aRecords, "$aRecords")
    For $i = 1 To $aRecords[0]
    If StringLeft($aRecords[$i], 6) = "Spiel " And StringIsDigit(StringMid($aRecords[$i], 7)) Then
    $rLine = StringSplit($aRecords[$i], " ", 2)
    $SpielCounter = $rLine[1]
    EndIf
    If $ende = True Then
    $counter += 1
    $rLine = StringSplit($aRecords[$i], " ", 2)
    If $counter = 1 Then
    $playerS = $rLine[5]
    ElseIf $counter = 3 Then
    $playerE = $rLine[5]
    ElseIf $counter = 5 Then
    $Spieler[0][0] = $rLine[0]
    $Spieler[0][1] = $rLine[2]
    $Spieler[0][2] = $rLine[5]
    ElseIf $counter = 6 Then
    $Spieler[0][3] = $rLine[4]
    ElseIf $counter = 7 Then
    $Spieler[0][4] = $rLine[2]
    ElseIf $counter = 9 Then
    $Spieler[1][0] = $rLine[0]
    $Spieler[1][1] = $rLine[2]
    $Spieler[1][2] = $rLine[5]
    ElseIf $counter = 10 Then
    $Spieler[1][3] = $rLine[4]
    ElseIf $counter = 11 Then
    $Spieler[1][4] = $rLine[2]
    ElseIf $counter = 13 Then
    $Spieler[2][0] = $rLine[0]
    $Spieler[2][1] = $rLine[2]
    $Spieler[2][2] = $rLine[5]
    ElseIf $counter = 14 Then
    $Spieler[2][3] = $rLine[4]
    ElseIf $counter = 15 Then
    $Spieler[2][4] = $rLine[2]
    EndIf
    EndIf
    If $ende = False And $SpielCounter = 36 And $aRecords[$i] = "******************************************************************" Then $ende = True
    Next
    $t = FileGetTime($file, 0)

    ;~ id datum sp s1 s2 s3 p1 p2 p3 g1 g2 g3 v1 v2 v3 E Spieler
    $url = "http://super-skat.de/skat/Gummibaer/eintragen.php"
    $daten = "/?Datum=" & $t[2] & "." & $t[1] & "." & $t[0] & "." & $t[3] & "&Uhrzeit=" & $t[3] & ":" & $t[4] & ":" & $t[5] & "&sp=36&s1=" & $Spieler[0][0] & "&s2=" & $Spieler[1][0] & "&s3=" & $Spieler[2][0] & "&p1=" & $Spieler[0][4] & "&p2=" & $Spieler[1][4] & "&p3=" & $Spieler[2][4] & "&g1=" & $Spieler[0][1] & "&g2=" & $Spieler[1][1] & "&g3=" & $Spieler[2][1] & "&v1=" & $Spieler[0][2] & "&v2=" & $Spieler[1][2] & "&v3=" & $Spieler[2][2] & "&E=" & $playerE & "&Spieler=" & $playerS
    $string = $url & $daten
    ;MsgBox(0, 'Datensatz', $string);------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    $result = _INetGetSource($string)
    If $result = "OK" Then
    $result = "Daten wurden eingetragen!"
    ElseIf $result = "OK2" Then
    $result = "Daten schon vorhanden!"
    ElseIf $result = "Error" Or $result = "" Then
    $result = "Daten nicht eingetragen!" & @CRLF & " server problem wahrscheinllich"
    Else
    $result = "Keine Verbindung zum Server"
    EndIf
    If MsgBox(4 + 32, "Soll Netskat beendet werde?", "AutoIt--Meldung: " & @CRLF & $result) = 6 Then
    FileMove($file, $logdir & "\Spielprotokolle\Archiv\", 8)
    MsgBox(0 + 48, "verschieben", "Protokolldatei wurde in Ordner Archiv Verschoben")
    Exit
    Else
    MsgBox(0 + 64, "Ergebniss melden:", "Nun kannst du aus Netskat heraus Mailen")
    Exit
    EndIf
    EndFunc ;==>_oeffne_LOG_und_lese_daten_aus


    Func _getNetSkatDir()
    $temp = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString") ; Hole String aus der Reg db
    If Not $temp Then Return
    $baseline = StringSplit($temp, " ") ; teile sting anhand des lerrzeichen
    $tNetSkatDir = StringMid($baseline[2], 3, StringLen($baseline[2]) - 13) ; schneide vore -f und hinten DeIsL1.isu ab
    If $tNetSkatDir = "" Then
    While 1
    $pfad = FileSelectFolder("NetSkat Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die netskat.exe befindet", "", 7)
    If @error = 1 Then
    MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
    Exit
    EndIf
    If FileExists($pfad & "\netskat.exe") Then
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString", "REG_SZ", @WindowsDir & "\unin0407.exe -f" & $pfad & "\DeIsL1.isu")
    Return $pfad
    ExitLoop
    EndIf
    MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine netskat.exe")
    WEnd
    MsgBox(48, "282 suche Netskatordner", "mit oeffnen dialog")

    EndIf

    Return $tNetSkatDir
    EndFunc ;==>_getNetSkatDir

    Func _Checkinstallation()
    If FileExists("mirc.exe") And FileExists("mirc.ini") Then
    If Not FileExists("netskat.mrc") Then FileInstall("netskat.mrc", "netskat.mrc")
    Return
    Else
    While 1
    $pfad = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die mIRC.exe" & @CRLF & "und die mIRC.ini befindet", "", 7)
    If @error = 1 Then
    MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
    Exit
    EndIf
    If FileExists($pfad & "\mirc.exe") And FileExists($pfad & "\mirc.ini") Then ExitLoop
    MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine mIRC.exe")
    WEnd
    FileCopy(@ScriptFullPath, $pfad & "\netskatstart.exe", 1)
    FileInstall("netskat.mrc", $pfad & "\netskat.mrc")
    FileInstall("netskat.jpg", $pfad & "\netskat.jpg")
    FileInstall("netskat_import.exe", $pfad & "\netskat_import.exe")
    FileInstall("grandovert.exe", $pfad & "\grandovert.exe")
    $filenams = $pfad & "\mirc.ini"
    $section = "script"
    $key = "n0"
    $value = "on 1:START:{ /.load -rs netskat.mrc }"
    IniWrite($filenams, $section, $key, $value)
    MsgBox(0 + 64, "Load", "Netskatstart.exe , Sceenshot und Popups installiert")
    ;_SelfDelete()
    Exit
    EndIf

    EndFunc ;==>_Checkinstallation

    das hauptsript muss eben weiterlaufen bis

    Zitat

    ; Hauptschleife Wartet auf Spielende


    ausgefuehrt wird
    ich hoffe es findet jemand den fehler ?

    danke erst mal
    gruss
    roland

  • Scipt ausfüehren JA/NEIN

    • super47
    • 12. Juli 2010 um 11:57
    Code
    ; Hauptschleife Wartet auf Fortsetzen
    	If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    		If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    			While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    				ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    				Send("{ENTER}")
    				Sleep(10000)
    				;MsgBox(0, "", "Ich sende Daten ab", 2)
    				ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    				Sleep(10000)
    ;### Tidy Error -> "else" is closing previous "while" on line 193
    			Else
    				ExitLoop
    ;### Tidy Error -> "endif" is closing previous "while" on line 193
    			EndIf
    ;### Tidy Error -> "wend" is closing previous "if" on line 192
    		WEnd
    	EndIf
    ;### Tidy Error -> "endif" is closing previous "while" on line 176
    EndIf
    ;### Tidy Error: next line creates a negative tablevel.
    ;### Tidy Error: next line creates a negative tablevel for the line after it.
    WEnd
    Alles anzeigen
  • Scipt ausfüehren JA/NEIN

    • super47
    • 12. Juli 2010 um 11:43

    guten tag zusammen
    wahrscheinlich total einfach, aber ich steige nicht durch

    Code
    ; 
    While ProcessExists($netskatexe)
    Hauptschleife Wartet auf Fortsetzen
    	If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    		;If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    			While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    				If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    				ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    				Send("{ENTER}")
    				Sleep(10000)
    				;MsgBox(0, "", "Ich sende Daten ab", 2)
    				ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    				Sleep(10000)
    			WEnd
    	EndIf
    WEnd
    Alles anzeigen

    auf Ja macht das ding das script
    aber auf NEIN startet die Msgbox immer neu
    irgendwie muss ich aus der schleife :cursing:

    wie muss ich das denn machen ??
    danke gruss roland

  • Fenster steuern, auswahl in einer List bzw listview

    • super47
    • 4. März 2010 um 20:13

    guten abend.
    ich habe Mirc installiert und will da Einstellungen steuern.
    da sind sehr viele einstellmöglichkeiten drum will ich damit, (MIRC-Programm) testen.

    angefangen habe ich mal so:

    Code
    Global $nTitle = "mIRC mysql test", $Processexe = "mirc.exe"
    Global $mircDir = "C:\MIRC\mirc6.21"
    		Run($mircDir&"\"&$Processexe,$mircDir)
    		WinActivate($nTitle)						; Sende Actevirungsbefehl
    		WinWaitActive($nTitle)  					; Warte auf Actives Fenster
    
    
    MsgBox(0,"","hi")
    		ControlSend($nTitle, "", "", "{Alt}")
    		ControlSend($nTitle, "", "", "{ENTER}")
    		Send("!T")
    		send("{down}")
    			send("{ENTER}")
    		Sleep (2000)
    		Send("!O")
    		ControlSend($nTitle, "", "", "{ENTER}")
    Alles anzeigen


    windows info liefert ja infos,
    ich blickl das aber nicht ganz, wie kann ich denn ein solches ansprechen und einen aintrag markieren?

    gruss roland_k

  • screenshot bestimmtes fenster

    • super47
    • 28. Februar 2010 um 19:55

    danke euch,

    nun muss ich noch sehen ob das fenster existiert ....(ob programm überhaupt gestartet ist

    gruss roland_k

  • screenshot bestimmtes fenster

    • super47
    • 28. Februar 2010 um 19:14

    guten abend, ich habe hier eine screenshot_ersteller.au3 heruntergeladen und versucht auf mein Problem anzupassen.

    mein reduzierter Code lautet:

    Spoiler anzeigen

    #Region ---Include---
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <ScreenCapture.au3>
    #include <Misc.au3>
    #include <GuiListBox.au3>
    #include <Array.au3>
    #EndRegion ---Include---

    #Region ---Optionen---
    Opt("TrayAutoPause", 0)
    Opt("TrayIconDebug", 0)
    Opt("TrayIconHide", 0)
    Opt("TrayMenuMode", 1)
    Opt("TrayOnEventMode", 0)
    #EndRegion ---Optionen---

    #Region ---Veriablendekleration---
    Global $Nummer = 1
    Global $nTitle = "NetSkat -"
    #EndRegion ---Veriablendekleration---

    #Region ---Systray---
    TraySetIcon(@SystemDir & "\shell32.dll", -142)
    TraySetToolTip("Screenhot ersteller")
    TraySetClick(17)

    ;~ MenuItems:
    $TrayMenu_FotoAlles = TrayCreateItem("Screenshot Netskat erstellen")
    TrayCreateItem("")
    $TrayMenu_OrdnerOffnen = TrayCreateItem("Bilderordner öffnen")
    TrayCreateItem("")
    $TrayMenu_Exit = TrayCreateItem("Beenden")
    #EndRegion ---Systray---

    #Region ---Startup---
    $Pfad = @ScriptDir & "\Bilder\" & @MDAY & "." & @MON & "." & @YEAR
    If FileExists($Pfad) = 1 Then ;~ Es gibt schon Bilder von heute
    $Grossse = DirGetSize($Pfad, 1)
    If $Grossse[1] > 0 Then ;~ Wenn es eine Datei gibt
    $Frage = MsgBox(262468, "Scrennhot ersteller", "Willst du die alten Bilder löschen?")
    If $Frage = 6 Then ;~ Alte Bilder überschreiben
    DirRemove($Pfad, 1)
    DirCreate($Pfad)
    Else
    ;~ Nummer des letten Bildes herausfinden:
    $Durchlauf = 1
    While 1
    If FileExists($Pfad & "\BildNr." & $Durchlauf & ".jpg") = 0 Then
    $Nummer = $Durchlauf
    ExitLoop
    EndIf
    $Durchlauf += 1
    WEnd
    EndIf
    EndIf
    Else
    DirCreate($Pfad)
    EndIf
    #EndRegion ---Startup---

    #Region ---Hotkeys---
    HotKeySet("{F2}", "_foto")
    HotKeySet("{F3}", "_exit")
    #EndRegion ---Hotkeys---

    #Region ---While---
    While 1
    Switch TrayGetMsg()
    Case $TrayMenu_FotoAlles
    MsgBox(0,"","foto machen")
    _foto()

    Case $TrayMenu_Exit
    _exit()
    Case $TrayMenu_OrdnerOffnen
    _bilderordner_offnen()
    EndSwitch
    WEnd
    #EndRegion ---While---

    #Region ---Funktionen---
    Func _bilderordner_offnen() ;~ Ordner mit den Bildern öffnen
    Run("explorer.exe " & $Pfad)
    EndFunc ;==>_bilderordner_offnen

    ;~ Fenster fotographieren:
    Func _foto()
    MsgBox(0,"1","foto machen")
    WinActivate ($nTitle)
    WinWaitActive ($nTitle)
    $fenster = "";hier fehlt richtige angabe des aktiven Fensters ?
    _ScreenCapture_CaptureWnd($Pfad & "\BildNr." & $Nummer & ".jpg", $fenster) ;~ Foto machen
    TrayTip("", "Foto erfolgreich erstellt.", 2, 1) ;~ Erfolgreich erstellt Info anzeigen
    $Nummer += 1 ;~ Nummer hochsetztn für das nächste Bild
    EndFunc ;==>_foto_von_Fenster
    Func _exit() ;~ Programm beeden
    Exit
    EndFunc ;==>_exit

    alles soweit ok :) , bis auf die richtige angabe des tensters das photografiert werden soll.

    Zitat

    Func _foto()
    MsgBox(0,"1","foto machen")
    WinActivate ($nTitle)
    WinWaitActive ($nTitle)
    $fenster = "";hier fehlt richtige angabe des aktiven Fensters ?

    _ScreenCapture_CaptureWnd($Pfad & "\BildNr." & $Nummer & ".jpg", $fenster) ;~ Foto machen

    Alles anzeigen

    irgendwie ist es denke ich ein unterschied ob das fenster maximiert ist oder verkleinert,

    Zitat

    Aus autiot HilfeErstellt von einem bestimmten Fenster einen Screenshot
    #Include <ScreenCapture.au3>
    _ScreenCapture_CaptureWnd($sFileName, $hWnd [, $iLeft = 0 [, $iTop = 0 [, $iRight = -1 [, $iBottom = -1 [, $fCursor = True]]]]])
    Parameter
    $sFileName Kompletter Pfad, Dateiname und Erweiterung der Bilddatei
    $hWnd Handle des Fensters


    ich bin seit Stunden am rumsuchen, bekomme das aber nicht auf die Reihe, :cursing:

    danke im voraus für Lösung
    gruss
    roland_k

  • datei per FTP auf Server laden

    • super47
    • 28. Februar 2010 um 12:00

    hi
    ich bin eben blond:-((
    es geht ...es geschehen noch zeichen und wunder :-))

    danke gruss roland
    PS:ich bin in der autoit hilfe am lesen und anderes testen.

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™