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

Beiträge von MaZy

  • GUICtrlSetImage Icon und Bild problem

    • MaZy
    • 19. April 2012 um 15:22

    Samson71
    Du hast mich verstanden :). Ich habe jetzt dafür ein UDF gefunden: http://www.autoitscript.com/forum/topic/92675-icons-udf/

    Aber leider reicht es mir nicht aus. Ich habe hier zum Beispiel ein Gimp Project File. Er hat die Endung .xcf. Der hat auch ein Icon. Ein Fuchs glaub ich mit einer Datei. Zum Bespiel will ich die Datei in meiner Gui hinzufügen und da soll dann das Icon angezeigt werden.

    Wahrscheinlich hat Greenhorn dort recht. Da muss ich es extrahrieren. Sowas wie "Create Icon from File" Funktion

    EDIT: Hab mal ein Bild hochgeladen wo ihr ungefähr vorstellen könnt wie ich das mein. Dort sieht ihr einige Icons aus Bilddateien (Bmp, Jpeg, png) oder ausführbaren Dateien (exe). Per Mausklick starten sie dann auch die mit gespeicherte Pfad zu der Datei.

    Bilder

    • lazyshortcurts2.png
      • 22,1 kB
      • 220 × 430
  • GUICtrlSetImage Icon und Bild problem

    • MaZy
    • 17. April 2012 um 17:42

    Das mit Icons funktionert ja schon. Ich will mich aber auf die Dateipfade beziehen. Die ganzen Dateien die mit .exe ihre Icons werden ja in der Gui angezeigt
    Jedoch, wenn ich als Shortcut in Gui z.B. ein Bild habe, wird es nicht angezeigt. Da ist ja so ein komisches Bild bzw. Icon von Windows. Ist ja auch egal. Ich will lieber das Bild selbst in Button anzeigen sozusagen als Minivorschaubild

    Ich hab das nun bissel erweitert

    [autoit]


    Local $typ
    Local $isExe = 1
    Local $GUI_BUTTON_ID

    [/autoit][autoit][/autoit][autoit]

    $typ = getDatatyp($ShortcutPath)

    [/autoit][autoit][/autoit][autoit]

    if StringLower($typ) <> "exe" Then $isExe = 0

    [/autoit][autoit][/autoit][autoit]

    if not FileExists($ShortcutPath) then ContinueLoop

    [/autoit][autoit][/autoit][autoit]

    local $Width = 60, $Height = 60
    if $isExe Then
    $GUI_BUTTON_ID = GUICtrlCreateButton($ShortcutPath, mod($ValueRow - 1, 4) * $Width, int(($ValueRow - 1)/ 4) * $Height, $Width, $Height, $BS_ICON)
    GUICtrlSetImage($GUI_BUTTON_ID, $ShortcutPath, 0, 1)
    Else
    $GUI_BUTTON_ID = GUICtrlCreatePic($ShortcutPath, mod($ValueRow - 1, 4) * $Width, int(($ValueRow - 1)/ 4) * $Height, $Width, $Height)
    ;GUICtrlSetImage($GUI_BUTTON_ID, $ShortcutPath, 0, 1)
    EndIf

    [/autoit]

    Das ist zwar ne alternative aber das ich GUICtrlCreatePic benutzen muss nervt bissel ^^.
    Dabei hab ich es mit $BS_BITMAP versucht und geht net

  • GUICtrlSetImage Icon und Bild problem

    • MaZy
    • 17. April 2012 um 16:42

    Also es hat trotzdem nicht funktioniert.
    Sogar das das Gegenteil wurde bewirkt. Jetzt sehe ich nicht mal irgendein Icon auf den Button.

    [autoit]


    Local $GUI_BUTTON_ID = GUICtrlCreateButton($ShortcutPath, mod($ValueRow - 1, 4) * $Width, int(($ValueRow - 1)/ 4) * $Height, $Width, $Height, $BS_BITMAP)
    local $Ret = GUICtrlSetImage($GUI_BUTTON_ID, $ShortcutPath, 0, 1)

    [/autoit]
  • GUICtrlSetImage Icon und Bild problem

    • MaZy
    • 7. April 2012 um 21:01

    Hallo,

    ich hab ein Problem.

    Mein Problem ist, wenn ich mit GUICtrlSetImage ein Pfad von Dateien wie .exe angebe werden die Icons auf die Butten gesetzt. Jedoch bei Bildern nicht.
    Ich will, wenn ich ein Bild wähle z. B. .jpg soll es diesen JPG als Bild zeigen.

    Ich programmiere zuzeit sowas wie Shortcuts.

    [autoit]


    local $ShortcutPath = $Shortcuts[$ValueRow][1]

    [/autoit][autoit][/autoit][autoit]

    if not FileExists($ShortcutPath) then ContinueLoop

    [/autoit][autoit][/autoit][autoit]

    local $Width = 60, $Height = 60
    local $GUI_BUTTON_ID = GUICtrlCreateButton($ShortcutPath, mod($ValueRow - 1, 4) * $Width, int(($ValueRow - 1)/ 4) * $Height, $Width, $Height)
    local $Ret = GUICtrlSetImage($GUI_BUTTON_ID, $ShortcutPath, 0, 1)

    [/autoit][autoit][/autoit][autoit]

    ;~ if $Ret == 0 Then
    ;~ $Ret = GUICtrlSetImage($GUI_BUTTON_ID, $ShortcutPath)
    ;~ EndIf

    [/autoit][autoit][/autoit][autoit]

    ConsoleWrite($Ret & " " & $ShortcutPath & " " & $GUI_BUTTON_ID & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    if not $Buttons_Info[$GUI_BUTTON_ID] Then
    $Buttons_Info[$GUI_BUTTON_ID] = $ShortcutPath
    EndIf

    [/autoit]
  • Ein Problem mit Array. Ich kannst nicht lösen

    • MaZy
    • 31. Januar 2012 um 00:32

    Hallo,
    ich programmiere gerade Client-Server Spiel. Naja eher gesagt für testzwecken. Wie arbeitet ein Server mit Client zusammen. Was gibt Server her. Wie kann ein Client sie verarbeiten? Das hab ich mich gefragt und deswegen war ne Idee kleines Testprojekt zu starten. Doch bei eine Kleinigkeit komm ich nicht weiter.

    [autoit]


    Func SendData()
    local $DataStr = getAllPlayerInformationInStr()
    $PlayerCount = GetTrue2DArraySize($Player)
    for $i = 0 to $PlayerCount - 1
    if $Player[$i][7] == 0 Then
    $Ret = TCPSend($Player[$i][0], $DataStr)
    if not $Ret then
    ConsoleWrite("Error while sending data" & @CRLF)
    PlayerRemoveFromList($i) ; lösche ihn aus der Spielerliste
    ExitLoop
    else
    $Player[$i][7] = TimerInit()
    EndIf
    Else
    ; Überprüfe Timeout. Wenn Timeout, Spieler aus der liste löschen
    ; ansonsten Timer löschen bzw. auf 0 setzen
    $ClientTimeoutCount = TimerDiff($Player[$i][7])
    $RecvOk = TCPRecv($Player[$i][0], 10000)
    if $RecvOk == "" & @error Then
    PlayerRemoveFromList($i) ; lösche ihn aus der Spielerliste
    ExitLoop
    EndIf
    if StringInStr($RecvOk, "gotit") Then
    $Player[$i][7] = 0
    $ClientTimeoutCount = 0
    EndIf
    if $ClientTimeoutCount > 10000 Then
    TCPCloseSocket($Player[$i][0])
    PlayerRemoveFromList($i)
    ExitLoop
    EndIf
    EndIf
    Next
    EndFunc

    [/autoit]


    Diese Funktion sendet bzw. soll an alle Spieler Daten senden, die sie brauchen. Z.b. Spielerposition, Healthpoints usw.
    Dabei wird überprüft, ob ein Spieler überhaupt noch richtig existiert. Das heißt, kann Daten nicht gesendet werden heißt e sSpieler nicht ansprechbar. Raus aus dem Spiel^^. Gibt es ein Timout also überlengere Zeit keine Antwort vom Client dann ist es ebenfalls raus.
    Doch das Problem tritt genau da auf.
    Sobald ich aus array lösche mit arraydelete dann stürzt es ab.

    [autoit]


    func PlayerRemoveFromList($arIdx)
    $PlayerCount = GetTrue2DArraySize($Player)
    if $PlayerCount > 0 Then
    _ArrayDelete($Player, $arIdx)
    elseif $arIdx == 0 then
    $Player[0][0] = ""
    $Player[0][1] = ""
    $Player[0][2] = ""
    $Player[0][3] = ""
    $Player[0][4] = ""
    $Player[0][5] = ""
    $Player[0][6] = ""
    $Player[0][7] = ""
    else
    _ArrayDelete($Player, $arIdx)
    EndIf
    EndFunc

    [/autoit]
    Zitat


    >Running:(3.3.2.0):C:\Program Files\AutoIt3\autoit3.exe "C:\Users\Nickname\Documents\AutoIT Scripte\Multiplayertest\server.au3"
    C:\Users\Nickname\Documents\AutoIT Scripte\Multiplayertest\server.au3 (60) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    if $Player[$i][7] == 0 Then
    if ^ ERROR
    ->00:28:37 AutoIT3.exe ended.rc:1
    >Exit code: 1 Time: 14.756

    Alles anzeigen


    Bis jetzt hab ich es mit ExitLoop gelöst, aber das wäre doof, dass die andern Clients, die eigentlich dran wären einen aussetzer bekommen.

    $Player[$i][7] ist einfach ein Timer. Wenn der Server etwas sendet wird ein timer auf $Player[$i][7] gesetzt. Ist es mehr als 10 sek dann fliegt der Client raus mit Begründung: Keine Rückmeldung.
    Ich habe mit $i -= 1 versucht aber ist immernoch das gleiche

  • Ich hab ein komischelektrisches Problem

    • MaZy
    • 24. Dezember 2011 um 13:23

    Hi Leute,

    ich hab etwas unerklärliches Problem. Ich versuchs mal trotzdem. Seit neuestem ist mir aufgefallen, dass mein Mikrofon rauscht. Ich dachte erst das lag daran, dass es langsam veraltet. Dann fiel mir auf, dass es nur dann rauscht wenn ich mit Headsetkabel ein Körperkontakt habe. Das ist sehr komisch. Fass ich es mit ganzer Hand dann rauscht es übertrieben. Dann dachte ich das ich statisch geladen sein könnte. Meine Jacke lädt mich gern auf. Aber wenn ich andere Sachen anfasse oder so muss es doch entladen. Alles kannstr nicht wirklich sein.

    Außerdem wenn ich mein Gehäuse anfasse geht das rauschen weg. Also irgendwas ist da, aber ich kann das mir nicht so erklären. Manchmal spüre ich leicht krippeln am finger wenn cih gehäuse anfasse. Aber wenig spührbar bzw. gar nicht wahrnehmbar. Ich habe gerade bei anderen Metallteilen versucht, da geht das rauschen nicht runter.. also irgendwie läuft da strom raus oder??? :S

  • Max bytes bei TCPSend

    • MaZy
    • 23. Oktober 2011 um 16:54

    Hallo,

    wie ist es denn möglich TCPSend nach Servergeschwindigkeit zu regeln?
    Ich meine, ich sende z.B. eine Datei die etwas groß ist ca 20mb. Wenn ich jetzt mit ca. 600 kbyte/s sende aber der Server nur 200 kbyte/s akzeptiert hängt mein Client natürlich erst mal schön, weil er auf Rückgabewert wartet (wieviel Bytes gesendet wurde).

    Ich hab bei meinen Code einfach ein Slider erstellt wo ich die Geschwindigkeit regele beim Senden, aber das soll ja schon Maxgeschwindigkeit vom Server wie wir beim Upload mit einem FTP oder Fileshare kennen und sich dann darauf einstellen.

    Wisst ihr weiter? :/

    EDIT: Achso, das ganze läuft Lokal.

  • Datenbank nutzen, aber wie?

    • MaZy
    • 19. September 2011 um 20:32
    Zitat von DevFly

    du kannst dir eine php datei basteln die dir z.b. die datenbank infos von z.b deiner DVD Datenbank ausgibt als trenner nimmste z.b. | so das kannste dann mit inetget abfragen einfach die php datei abfragen und danach nimmst du ein stringsplit und nimmst als TRenner den | ergebnis ist ein array mit den infos die du wolltest. Mit winhttp kannste dann die sachen über ein post befehl dann auch wieder schreiben einfach eine php datei basteln die die post befehle abarbeitet. Ist sicherer und schneller und vorallen einfacher!

    Gruss DevFly

    Oder so :D das ist mir nicht eingefallen :D

  • Datenbank nutzen, aber wie?

    • MaZy
    • 19. September 2011 um 20:24

    Also du hast die Möglichkeit nach UDFs zu suchen. Ich hab mal einige gesehen.

    Ansonsten muss du dir das selber schreiben (die ganzen Funktionen) und das könnte ne weile dauern. Dabei muss du es per TCP machen und erst mal zu sehen wie MySQL auf TCP Anfragen/Befehle reagiert, Rückgabewert bzw, Rückgabeantwort gibt.

    Die Anfangssachen stell ich mir simple vor.

    @Edit wenn du mich meintest mit der nachfolgende Post dann nein. Alles in AutoIT
    Ich schreibe mir gerade ein E-Mail-Client mit Automatisierung. Da muss ich z.b. TCP nutzen und erst mal alles mir selber schreiben =/.

  • StringRegExp zwischen Subject und zeilenumbruch.

    • MaZy
    • 19. September 2011 um 19:19

    Hallo nochmal. Danke für die Erklärung. Ich habe zwei verschiedene Tutorials bis zu 80% gelesen (Soll heißen: Das eine durchgelesen und das andere knapp am Beenden).

    Jetzt hab ich ein Problem mit Anführungsstriche.

    Und zwar ist der Bsp.satz so

    [autoit]

    $String = """http://bla.de/?id=10000&subid=100"""
    $StringR = StringRegExp($String, "\bid=178426&(.*)\b", 1)
    if(IsArray($StringR)) Then
    _ArrayDisplay($StringR, "Ergebnisse der StringRegExp")
    Else
    ConsoleWrite("Etwas gefunden?: " & $StringR & @CRLF)
    EndIf

    [/autoit]


    Der findet zwar bis 100 aber ich weiß nicht wie ich das mit anführungsstriche machen kann (nur am ende, der anfang ist egal)
    Hab schon so versucht:

    [autoit]

    $StringR = StringRegExp($String, "\bid=178426&(.+[""]*)\b", 1)

    [/autoit]


    Es findet zwar was, aber wieder bis 100 (oder ArrayDisplay zeigt es nicth an :P

  • StringRegExp zwischen Subject und zeilenumbruch.

    • MaZy
    • 14. September 2011 um 19:51
    Zitat von progandy

    So sollte der regex besser sein:

    [autoit]

    $sSubject = StringRegExp($recv, '(?im)^Subject:\h*(.*)$',1)
    If IsArray($sSubject) Then $sSubject = $sSubject[0]

    [/autoit]


    Besten Dank. Das funktioniert Super!!

    Zitat von UEZ

    Kannst du die Mail Datei hochladen? Denn mit dem Text von oben bekomme ich Test in dem Array zurück!
    Gruß,
    UEZ


    Es gibt keine Datei. Ich verbinde mit TCP und lasse es in Gui anzeigen in einem Textfeld. Aber wenn dich trotzdem interessiert zeig ich hier ein Teil

    Spoiler anzeigen
    Zitat


    Authentication-Results: mta1067.mail.ukl.yahoo.com from=yahoo.de; domainkeys=pass (ok); from=yahoo.de; dkim=pass (ok)
    Received: from 127.0.0.1 (HELO nm10-vm0.bullet.mail.ukl.yahoo.com) (217.146.183.242)
    by mta1067.mail.ukl.yahoo.com with SMTP; Wed, 14 Sep 2011 08:44:30 +0000
    Received: from [217.146.183.212] by nm10.bullet.mail.ukl.yahoo.com with NNFMP; 14 Sep 2011 08:44:30 -0000
    Received: from [217.146.183.43] by tm5.bullet.mail.ukl.yahoo.com with NNFMP; 14 Sep 2011 08:44:30 -0000
    Received: from [127.0.0.1] by omp1028.mail.ukl.yahoo.com with NNFMP; 14 Sep 2011 08:44:30 -0000
    X-Yahoo-Newman-Id: 55577.24590.bm@omp1028.mail.ukl.yahoo.com
    Received: (qmail 40800 invoked by uid 60001); 14 Sep 2011 08:44:29 -0000
    DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.de; s=s1024; t=1315989869; bh=wiZTz0/4Nkl/QmpCUlguXxvyDMyJz7pNDUGyV7Vt43A=; h=X-YMail-OSG:Received:X-Mailer:Message-ID:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=Jux2ngcTfPUIXuwgCb5pHdhzoBR758Is+fx5dl2uvbIhz3yFIRTPMkByZnrHMaADbAezTHvXFVdfgpjK1/CYKXEH8bqeaMu+e3KrObGjhlna+73e4NWndIU/xaQREd+k2xuFR+kPZ2AmmqCfIoo+iPqXeTr9hTu79o5BG6Iiah0=
    DomainKey-Signature:a=rsa-sha1; q=dns; c=nofws;
    s=s1024; d=yahoo.de;
    h=X-YMail-OSG:Received:X-Mailer:Message-ID:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding;
    b=DD0CrHw6vgSsZj9+CH/NYJoAgM5+HYCrKSvkxQnQEi7Psn4w0v9yGy2XcnJL5ioiEnFE5U8nrYxkRo+iHvsbBSiNpu4Nqy/pZPMsXllAMUpdGB2i5KMvB6dwsJqSphOuINbda76JgmyaCgUClfc90wVDOqbLE+RxOp6/YpM8zok=;
    X-YMail-OSG: gpHSw78VM1k0KkFdc50X3f.WnaKX5I39FbmphHbPv2ylAo5
    pSl0IWfS1MYJXDSefMyYtjc1oQ3kT75ucudu2NtRASYFjvJTRyCIz2YyUDwU
    _YFzfLtWEEI6iIJinq4RWMbWSct9Hme3TYI4Q_ZmAuUpsfhrkC.qg8n0VaBQ
    XbNIdbcCBq5D8lMR_.0FiHkxA6kTyJVRlHJJEB59s9XII4.ABNrsxhYBf8FF
    QIVq_FN7oVDcOdgmPpK0I3EWFE8sjh7X5Jy_Zo_K_As1UnTfe6gd8ZIl42u3
    m9gU5hsGCWL18RImpRvDuwwK7fecTwdX1tiTx6KFIbU1dCBiNsh8tzSRRcf7
    iL_KgMB6UQAKB79uargHzGAXuB_i2rd5nqUserpOz6NQ_e4qEh9UEGLDjE2x
    zO1u0jac3e6z8xFPbX7Jbc6_lXHYnbuXd.JXS3oB5GDdzax_V
    Received: from [88.70.82.254] by web28509.mail.ukl.yahoo.com via HTTP; Wed, 14 Sep 2011 09:44:29 BST
    X-Mailer: YahooMailClassic/14.0.5 YahooMailWebService/0.8.113.315625
    Message-ID: <1315989869.24691.YahooMailClassic@web28509.mail.ukl.yahoo.com>
    Date: Wed, 14 Sep 2011 09:44:29 +0100 (BST)
    From: ** ** <***@***.de>
    Subject: Test
    To: ***@***.de
    MIME-Version: 1.0
    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: quoted-printable

    Alles anzeigen


    Zitat von SEuBo


    Schonmal versucht, nach einem StringRegExp Tutorial zu googlen?


    Ich habe nur nach Regex gesucht.. StringRegExp ist mir nicht dummerweise eingefallen :D. Ich habs damals für andere Sprachen auch gebraucht. Ich finds trotzdem sehr schwer das alles zu merken ich meine die leichten basic sachen wie \w \W oder \A oder sogar . sind einfacher zu merken aber wenn dann ^ \b + ? - * kommt die irritieren mich.

  • StringRegExp zwischen Subject und zeilenumbruch.

    • MaZy
    • 14. September 2011 um 13:42

    nee leider hat es nicht funktioniert. Wenn ich den paramter auf 2 umstelle dann findet er etwas aber Subject: wird nicht rausgelassen .. und bei StringR[1] ist nix.

  • StringRegExp zwischen Subject und zeilenumbruch.

    • MaZy
    • 14. September 2011 um 13:13

    Hi,
    ich hab ein Problem. Also ich möchte gern per AutoIT ein Emailclient machen. Ich kann bis jetzt super alles aufrufen, aber ich möchte gern den Betreff auslesen.

    Das Problem ist das erst mal alles vom header gezeigt wird und irgendwann kommt die Zeile:

    Zitat

    "Subject: Test
    irgendwas..."

    Was ich brauche ist "Test". Das ist der Betreff. Also irgendwie zwischen Subject: und zeilenumbruch.

    Ich habs bis jetzt so

    [autoit]

    $StringR = StringRegExp($recv, 'Subject: (.+)',3)

    [/autoit]


    aber das geht net :S

    Nebenbei: Ich suche eine gute Regex tutorial. Alleine Autoithandbuch reicht nicht. Zwar werden alle Möglichkeiten angezeigt , aber ich verliere da den Überblick und weiß nicht was ich da raussuchen soll :S.

  • Stundenplan Tabelle

    • MaZy
    • 19. April 2011 um 22:47

    Hallo, ich habe Ferienprojekt. Ich muss in zwei Wochen + eine Woche in der Schule mein Projekt fertig entwickelt haben. Ich hoffe bei Problemen könnt ihr mir beistehen. Z.B. wie jetzt ^^.
    Mein Projekt ist: Stundenplanverwaltungssystem. Dort soll man nachher mit per Klicks und Drag and Drop Stundenplan für Lehrer und Schüler erstellen können (Wobei ich mich zur Zeit für Lehrerstundenplan fixiert habe).
    Also meine Vorstellung ist so: Lehrer-,Schüler- und Fächerbeispiele werden in der Datenbank erstellt (schon getan). AutoIt fragt sie dann ab und zeigt es in drei Listtabellen. Und dann soll in eine andere Tabelle, die wie ein Stundenplan aussieht mit per Drag n Drop rübergezogen werden.

    Bis jetzt hab ich in MS Access Datenbank Lehrer und Klassen usw. erstellt. Nachher soll das alles von Autoit gelesen werden (wenn nicht geht oder UDF nicht gibt kann ich nachher auch in MySQL machen usw.).

    Mit koda hab mit Design angefangen.

    Zur Zeit sieht es so aus.

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=C:\Users\Nickname\Documents\AutoIT Scripte\Stundenplan\Design\Stundenplan.kxf
    $Form1 = GUICreate("Stundenplan", 1225, 601, -1, -1, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $ComboLehrer = GUICtrlCreateCombo("", 951, 64, 191, 25)
    GUICtrlSetData(-1, "Lehrer")
    $Label1 = GUICtrlCreateLabel("Stundenplan Verwaltung", 2, 0, 354, 41)
    GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Lehrer", 894, 67, 34, 17)
    $Label3 = GUICtrlCreateLabel("Lehrerstundenplanverwaltung", 950, 30, 144, 17, BitOR($SS_CENTER,$SS_CENTERIMAGE,$WS_BORDER))
    $Tab1 = GUICtrlCreateTab(6, 86, 827, 432)
    GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    $TabSheet1 = GUICtrlCreateTabItem("Verwaltung")
    $ListView1 = GUICtrlCreateListView("Stunden|Montag|Dienstag|Mittwoch|Donnerstag|Freitag", 20, 118, 449, 352, BitOR($LVS_REPORT,$LVS_SINGLESEL), BitOR($WS_EX_CLIENTEDGE,$LVS_EX_GRIDLINES))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 70)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 70)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 70)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 4, 70)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 5, 70)
    GUICtrlSetBkColor(-1, 0xF0F0F0)
    $ListView1_0 = GUICtrlCreateListViewItem("1|WIAS02A 102", $ListView1)
    $ListView1_1 = GUICtrlCreateListViewItem("|Informatik", $ListView1)
    $ListView1_2 = GUICtrlCreateListViewItem("2", $ListView1)
    $ListView1_3 = GUICtrlCreateListViewItem("|Mathe", $ListView1)
    $ListView1_4 = GUICtrlCreateListViewItem("3", $ListView1)
    $ListView1_5 = GUICtrlCreateListViewItem("", $ListView1)
    $ListView1_6 = GUICtrlCreateListViewItem("", $ListView1)
    $ListView3 = GUICtrlCreateListView("Lehrer", 480, 119, 143, 351, BitOR($LVS_REPORT,$LVS_NOSORTHEADER,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS,$LVS_AUTOARRANGE,$WS_HSCROLL))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    $ListView3_0 = GUICtrlCreateListViewItem("asd", $ListView3)
    $ListView3_1 = GUICtrlCreateListViewItem("testlehrer1", $ListView3)
    $ListView3_2 = GUICtrlCreateListViewItem("MrJackson", $ListView3)
    $ListView3_3 = GUICtrlCreateListViewItem("MauMau", $ListView3)
    $ListView3_4 = GUICtrlCreateListViewItem("asd", $ListView3)
    $ListView3_5 = GUICtrlCreateListViewItem("Loli", $ListView3)
    $ListView3_6 = GUICtrlCreateListViewItem("hgfj", $ListView3)
    $ListView3_7 = GUICtrlCreateListViewItem(",tuk", $ListView3)
    $ListView3_8 = GUICtrlCreateListViewItem("m,.-", $ListView3)
    $ListView3_9 = GUICtrlCreateListViewItem("gfhn", $ListView3)
    $ListView2 = GUICtrlCreateListView("Fächer", 630, 119, 143, 351, BitOR($LVS_REPORT,$LVS_NOSORTHEADER,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS,$LVS_AUTOARRANGE,$WS_HSCROLL))
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 120)
    $ListView2_0 = GUICtrlCreateListViewItem("Mathe", $ListView2)
    $ListView2_1 = GUICtrlCreateListViewItem("Deutsch", $ListView2)
    $ListView2_2 = GUICtrlCreateListViewItem("Englisch", $ListView2)
    $ListView2_3 = GUICtrlCreateListViewItem("Informatik", $ListView2)
    $ListView2_4 = GUICtrlCreateListViewItem("Naturwissenschaft", $ListView2)
    $Button1 = GUICtrlCreateButton("Speichern", 23, 480, 75, 25, 0)
    $TabSheet2 = GUICtrlCreateTabItem("Stundenplan Übersicht")
    GUICtrlCreateTabItem("")
    $Label4 = GUICtrlCreateLabel("Lehrerstundenplanverwaltung", 6, 48, 170, 26, BitOR($SS_CENTER,$SS_CENTERIMAGE,$WS_BORDER))
    $MenuItem1 = GUICtrlCreateMenu("&MenuItem1")
    $MenuItem3 = GUICtrlCreateMenu("M&enuItem3")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $ListView1
    EndSwitch
    WEnd

    [/autoit]

    Joa, mein Problem ist hier, dass ich die Stunden nur anwählen kann. Ist ja auch irgendwie logisch. Aber dann würde doch das mit Drag n Drop nicht mehr klappen.
    Also ich möchte eine Tabelle haben wie in ein Stundenplan. Dann auf die einzelnen Stunden die Fächer und Klasse reinschieben. Jedoch kann ich die anderen Spalten nicht anklicken.
    Gibst ne alternative bzw andere Tabellenarten?

  • TCP Datei senden und bytes ausrechnen

    • MaZy
    • 3. April 2011 um 20:34

    Ich glaube nicht. Ich habs nämlich auch mit 1024 getestet. Außerdem versende ich mit 100 Kb, aber empfange maximal 1MB.

  • TCP Datei senden und bytes ausrechnen

    • MaZy
    • 3. April 2011 um 18:56

    Danke für deine Hilfe und Idee Sortoc. Jedoch nur deine Idee ist richtig, aber dein Code falsch :D. Bei dir wird leider nur die ersten 1024 zeichen gelesen und das jedes mal.
    Hab mal heute weiter daran gearbeitet.

    Nun hab ich es richtig :)
    Indem ich so gemacht hab
    Global $SendedBytesSumme = 1
    $buffer = BinaryMid($FileRead, $SendedBytesSumme, $UploadRate)
    $SendedBytesSumme += $TCPSendedBytes

    Nun ganze Code hier.

    Spoiler anzeigen
    [autoit]


    $sFile = "C:\Users\Nickname\Documents\AutoIT Scripte\Filesender\video.flv"
    $FileOpenBinary = FileOpen($sFile,16)
    $FileRead = FileRead($FileOpenBinary)
    $FileSize = BinaryLen($FileRead)
    $FileSendSizeLeft = $FileSize
    $UploadRate = 102400 ; 1024 bytes = 1 Kb, 1024*1024 = 1048576 bytes = 1024 Kb = 1 Mb
    $buffer = BinaryMid($FileRead, $SendedBytesSumme, $UploadRate)
    ConsoleWrite("Datei, video.flv " & $FileSize/1024 & " wird gesendet" & @CRLF)
    sleep(1000)

    [/autoit] [autoit][/autoit] [autoit]

    do
    $TCPSendedBytes = TCPSend($TCPConnect, $Buffer)
    $FileSendSizeLeft -= $TCPSendedBytes
    $SendedBytesSumme += $TCPSendedBytes
    $Prozent = 100*$SendedBytesSumme/$FileSize
    GUICtrlSetData($PS1, $Prozent)
    ;~ ConsoleWrite("Gesendete Kb: " & round(($TCPSendedBytes/1024),3) & @CRLF)
    ;~ ConsoleWrite("Noch übriggebliebene Kb: " & round(($FileSendSizeLeft/1024),2) & @CRLF)
    ;~ ConsoleWrite("Prozess bei: " & round($Prozent,2) & "%" & @CRLF)
    $buffer = BinaryMid($FileRead, $SendedBytesSumme, $UploadRate)
    sleep(50)
    Until $FileSendSizeLeft <= 0

    [/autoit]


    Und bei TCPRecv sollte man schon auf hohe Zeichen setzen. Hab 1Mb gemacht.

    Mein Problem ist nur,dass meine CPU Auslastung bis zu 50% hoch kommt. Weiß nicht genau woran das liegt. Hab sogar mit 100 bzw 500 sleep versucht.. aber das ist meiner Meinung nach zu hoch und fängt an zu stottern. Naja noch kann ich damit leben :P

  • TCP Datei senden und bytes ausrechnen

    • MaZy
    • 28. März 2011 um 20:52

    Hi

    ich hab hier ein simplen Code (siehe unten). Ich habe einen TCP Code geschrieben wo die Datei gesendet wird. Die Datei wird empfangen. Und zwar hab ich eine kleine Videodatei ca 28mb als Testdatei genommen. Wenn sie geschickt wird kann man sie auch anschauen.

    Mein Problem ist aber, ich möchte gerne, der das sendet (zur Zeit Client) die restlichen bytes (später in Kbytes) sehen kann bzw auch später Regeln kann.
    Nun ja, die do until schleife läuft ganze Zeit

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    HotKeySet("{q}", "_exit")
    func _exit()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Global $FileSendSizeLeft = 0, $TCPSendedBytes = 0

    [/autoit] [autoit][/autoit] [autoit]

    TCPStartup()
    $TCPConnect = TCPConnect(@IPAddress1, 23322)

    [/autoit] [autoit][/autoit] [autoit]

    if($TCPConnect < 1) Then
    ConsoleWrite("Verbunden fehlgeschlagen" & @CRLF)
    exit
    Else
    ConsoleWrite("Verbunden. Sende Datei" & @CRLF)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $sFile = "C:\Users\Nickname\Documents\AutoIT Scripte\Filesender\video.flv"
    $FileOpenBinary = FileOpen($sFile,16)
    $FileRead = FileRead($FileOpenBinary)
    $FileSendSizeLeft = BinaryLen($FileRead)

    [/autoit] [autoit][/autoit] [autoit]

    do
    $TCPSendedBytes = TCPSend($TCPConnect, $FileRead)
    ConsoleWrite("Gesendete Bytes: " & $TCPSendedBytes & @CRLF)
    $FileSendSizeLeft = ($FileSendSizeLeft-$TCPSendedBytes)
    ConsoleWrite("Noch übriggebliebene Bytes: " & $FileSendSizeLeft & @CRLF)
    sleep(100)
    Until $FileSendSizeLeft <= 0
    exit

    [/autoit]


    Ich bekomme als Meldung das hier:

    Zitat

    Verbunden. Sende Datei
    Gesendete Bytes: 29583166
    Noch übriggebliebene Bytes: 0


    Total komisch. Wenn ich jetzt auskommentiere würde die Schleife nicht beendet werden. Die Datei wird dann weiter gesendet aber die Meldung wäre dann auch die gleiche Bytes die genoch übrig geblieben sind. Eigentlich müsste ja doch zurückgegeben werden wieviel er tatsächlich er gesendet hat und nicht muss oder? Das kann ich ja so oder so mit binarylen lesen.

    server ist nur einfach

    [autoit]

    Do
    $TCPRecv = TCPRecv($TCPAccept,1024)
    If @error Then ExitLoop
    FileWrite("test.flv",$TCPRecv)
    sleep(10)
    Until @error
    ConsoleWrite("Verbindung beendet" & @CRLF)
    exit

    [/autoit]

    EDIT: Achja, das sind 2 verschiedene Scripts natürlich. Also die Codes sind nicht auf der selben .au3 Datei.

  • Ein paar Fragen bevor ich mit etwas Großes anfange...

    • MaZy
    • 27. November 2009 um 17:43

    Hi,

    Ich habe vor wieder ein Chat zu skripten/programmieren. Diesmal will ich es besser struktieren usw. Bevor ich anfange hatte ich aber ein paar Fragen damit ich mich darauf schonmal vorbereiten kann.

    1. Gibt es ein Unterschied zwischen Dim und Local.
    2. Ich habe mal ein Chat per GuiRichEdit gemacht. Ich fand es nicht schlecht. Doch dann habe ich gesehen das es mit html "about:blank" auch geht. Das finde ich viel effektiver vorallem das man dort HTML und Javascript anwenden kann. Daher meine Frage dafür wären, ob es möglich ist den Nick anklickbar zu machen (das müsste mit html(a href=) & javascript kombiniert werden) kann und dann eine Ereignis in GUi vorzunehmen? Also konkret gesagt: Ich möchte wenn man ein User dort anklickt dann ein extra Gui erscheint um dann mit ihn privat unterhalten zu können. Ist das möglich?
    3. Wie ist das bei Java? Wird dort auch mit Textfeldern gearbeitet?

    Ich brauche keine Hilfe für simpeln Chat. Das kann ich schon alles :P

    mfg

  • !!!!!Admin-Tool v 1.0 ist fertig nochmals häftig erweitert vbs verarbeitung und bericht speicherung!! Leute ich brauche eure meinung!!!!!

    • MaZy
    • 11. September 2009 um 23:32

    Was mich nur stört sind die Sleeps. Wenn ich vieles hintereinander klicke uii da geht nichts mehr so richtig ^^

    Wenn es um sachen wie "warten bis etwas eintrifft um dann etwas zu machen" gehtnehme ich do...until.
    Das schöne dann ist aber das mit GUIGetMsg(). Du musst das bei Until mit schreiben damit man nebenbei andere Sachen starten kann

    Sry aber ich bin wirklich Anti-Sleep fan. Bin wirklich Sleepfeindlich^^. Es ist zu verstehen, wenn man Sleep benutzt, um CPU Auslastung unten zu halten, aber nicht wenn es um Inhalte geht.

  • RichEdit and farben

    • MaZy
    • 8. September 2009 um 18:41

    Hi,

    wie kann ich hinkrigen wenn ich eine Variable definiere da ein teil gefärbt wird.

    Ich hab es so:

    [autoit]

    $sSmsg = $sMessage[2] & _GUICtrlRichEdit_SetFontColor($richcreate,RGB2BGR(0xFF0000)) & _GUICtrlRichEdit_SetBold($richcreate, True)&"(Privat): "&_GUICtrlRichEdit_SetBold($richcreate, False)&_GUICtrlRichEdit_SetFontColor($richcreate,RGB2BGR(0x000000))&$sMsg

    [/autoit]


    Aber dumme weise vergaß ich das ich da Return values bekomme.

    wollte so machn $sSmsg = $sMessage[2] & <ROT><FETT>(Privat}</FETT></ROT> & $sMsg
    Ausgabe müsste dann so sein:
    Nick (Privat): war einer cooler Tag.

    So sieht mein Code aus wenn eine Zeile hinzugefügt wird

    [autoit]

    func xaddlinenormal($saddline, $iPM = False)
    _GUICtrlRichEdit_SetItalic($richcreate, false)
    _GUICtrlRichEdit_AppendText($richcreate, @CRLF & $saddline)
    $sSmsg = ""
    EndFunc

    [/autoit]


    mfg

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™