1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

vb.net 2005 Anfänger

Discussion in 'Programmieren' started by vieturtle, Aug 25, 2006.

Thread Status:
Not open for further replies.
  1. vieturtle

    vieturtle Kbyte

    Hallo, ich hab "Microsoft Visual Basic 2005 Express Edition" installiert, ein kleines Programm geschrieben, hab aber noch e
    einige Probleme:

    1) Ich finde einen bestiimmten Befehl einfach nicht (Die sind ja immer so verzweigt). Und zwar ist es dieser "Sleep"-Befehl, so kenn ich ihn von AutoIt.

    2) Das Programm soll einen bestimmten cmd-befehl mehrmals hintereinander ausführen, der Vorgang soll aber auch gestoppt werden. Doch während der Arbeit kann man seine Buttons nicht mehr anklicken. Was soll ich tun??

    Kennt jemand eine gute Site wo ich später nachsehen soll anstatt hier zu posten?
     
  2. Sailor Bill

    Sailor Bill Halbes Megabyte

    Hi,

    ad 1:
    Schau Dir mal die Sleep-Funktion an.

    ad 2:
    Ich gehe mal davon aus, daß Du eine Schleife gemacht hast.
    Schreibe in die Schleife ein DoEvents. Dann geht das.
     
  3. vieturtle

    vieturtle Kbyte

    danke für die info
     
  4. vieturtle

    vieturtle Kbyte

    Kann es sein, dass bei meinem vb.net irgendwie alles anders ist? Da steht nämlich >Der Name "DoEvents" wurde nicht deklariert<. In der Hilfe steht als Überschrift application.doevents, im text aber wieder nur doevents.
    voll kompliziert :confused:
     
  5. Sailor Bill

    Sailor Bill Halbes Megabyte

    Ich muß zugeben, VB 2005 kenn ich nicht. In VB 6 ist das ein normaler Befehl.

    Poste mal den Teil des Codes mit der Schleife.
     
  6. whisky

    whisky Ganzes Gigabyte

    Ja - vieles....
     
  7. vieturtle

    vieturtle Kbyte

    Do
    If x = True Then Exit Do
    For pc = 0 To clb_pc.Items.Count - 1
    If clb_pc.GetItemChecked(pc) = True Then
    Shell("net send infpc" & pc + 1 & " " & txt_msg.Text, AppWinStyle.Hide, True)
    'Sleep-Befehl
    End If
    Application.DoEvents()
    Next
    Loop
     
  8. vieturtle

    vieturtle Kbyte

    Warum funktionier der Sleep-Befehl nicht?
    Wenn ich zB "Sleep 2000" wird das automatisch zu Sleep(2000).
    Beim Ausführen des Projekt erscheint dann eine Fehlermeldung:
    PInvokeStackImbalance wurde erkannt.
    Message: Ein Aufruf an die PInvoke-Funktion "Duc send!Duc_send.frm_main::Sleep" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.
     
  9. Gironymo

    Gironymo Byte

    Das DoEvents muss vor der Schleife stehen.
    Um andere Aufgaben auszuführen (z.B. Abbrechen-Button), solltest Du Dir mal den Background-Worker ansehen
     
  10. Angel-HRO

    Angel-HRO Megabyte

    ? Es soll während verarbeitung der Schleife auf andere Sachen reagiert werden. Dies entweder mit Background Worker (obwohl ich das ienen Anfänger nicht empfehlen würde), oder mit DoEvents...aber es brningt ja nichts, einmal vor der Schleife auf andere Events zu prüfen und dann die Schleife (die abgeborchen werden können soll) durchzuführen.... besser im SChleifendurchlauf auf Events mittels DoEvents reagieren können
     
  11. vieturtle

    vieturtle Kbyte

    Noch ein AutoIt-Befehl: WinWait oder WinWaitActive
    Es unterbricht die Ausführung des Programms bis ein bestimmtes Fenster erscheint. (Titel und enthaltener Text werden vom User angegeben)
    Weiß jemand wie das in vb.net heißt? Danke.
     
  12. Joris

    Joris ROM

    @ vieturtle: Dein Sleep-Befehl funktioniert wahrscheinlich nicht, weil du die System.Threading nicht importiert hast. Du kannst sie so impotieren:

    Code:
    Imports System.Threading
    
    Dann musst du vor Sleep noch Thread schreiben.

    Also als Code so:

    Code:
    Thread.Sleep(2000)
    
    
    Wenn du die System.Threading Klasse nicht importieren möchtest, kannst du es auch so schreiben:

    Code:
    System.Threading.Thread.Sleep(2000)
    
    
    Viele Grüße

    Joris
     
Thread Status:
Not open for further replies.

Share This Page