logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Czekanie jakiegoś czasu przed wykonaniem kolejnej czynności, Visual Basic 2010

DwarfMine 11 Wrz 2011 15:43 4517 8
REKLAMA
  • #1 9916491
    DwarfMine
    Poziom 9  
    Posty: 23
    Ocena: 5
    Witam, napisałem program, który wpisuje różne rzeczy w przeglądarce, ale nie wiem jak zrobić,żeby przed wykonaniem następnej czynności program "zaczekał" np. 3 sekundy... Proszę o pomoc.
    Z poważaniem, DwarfMine
  • REKLAMA
  • #3 9917000
    DwarfMine
    Poziom 9  
    Posty: 23
    Ocena: 5
    A mógłbyś bardziej mi to wytłumaczyć? Bo nie rozumiem
  • REKLAMA
  • Pomocny post
    #4 9917042
    lolcio
    Poziom 16  
    Posty: 133
    Pomógł: 29
    Ocena: 8
    
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    ....cos tam...
    ....cos tam....
     Sleep(3000)
    

    Każde wywołanie procedury sleep zatrzymuje program na określony czas, który podajesz
    w ms.(3000 to 3 s tak jak chciałeś :) ) To jest najprostszy sposób...
  • #5 9918376
    DwarfMine
    Poziom 9  
    Posty: 23
    Ocena: 5
    lolcio napisał:
    
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    ....cos tam...
    ....cos tam....
     Sleep(3000)
    



    Czyli za każdym razem mam wpisać to?

    @Edit
    I wyskakują mi 2 błędy, takie same: Error 1 Statement is not valid in a namespace. C:\Documents and Settings\Krzysiek\Moje dokumenty\Visual Studio 2010\Projects\DarkWarezPoster\DarkWarezPoster\DWP.vb 197 1 DarkWarezPoster


    I drugi:

    Error 2 Statement is not valid in a namespace. C:\Documents and Settings\Krzysiek\Moje dokumenty\Visual Studio 2010\Projects\DarkWarezPoster\DarkWarezPoster\DWP.vb 199 1 DarkWarezPoster

    @EDIT2
    Jakoś sobie poradziłem, nie wywala żadnych błędów, dla testu zrobiłem przycisk, który po kliknięciu czeka 3 sekundy i wywala MsgBoxa, ale po odczekaniu 3 sekund, pprogram wraca do konsloi, i pisze:

    Wywołanie funkcji PInvoke 'Generator postów Darkwarez by Geesiek v. 1.04!DarkWarezPoster.DWP::Sleep' zachwiało równowagą stosu. Prawdopodobna przyczyna to niedopasowanie zarządzanego podpisu funkcji PInvoke i niezarządzanego podpisu docelowego. Sprawdź, czy konwencja wywołania i parametry podpisu funkcji PInvoke pasują do niezarządzanego podpisu docelowego.
  • Pomocny post
    #6 9919435
    lolcio
    Poziom 16  
    Posty: 133
    Pomógł: 29
    Ocena: 8
    A próbowałeś coś w tym stylu:
    
    Sub MyMainMacro()
    
       ' Pause for 15 seconds.
       Application.OnTime When:=Now + TimeValue("00:00:15"), _
          Name:="MyDelayMacro"
    
    End Sub
    
    Public Sub MyDelayMacro()
    
       ' Place your delayed macro commands here.
       MsgBox "This macro runs after 15 seconds."
    
    End Sub
    

    ?? Czemu takie dziwny błąd Ci wyrzuciło, to nie mam pojęcia :) A tak z ciekawości..po co się uczysz tego języka?

    Dziwi mnie że:
    
    Declare Sub Sleep Lib "kernel32" (ByVal milliseconds As Long)
    ' pause for 5 seconds
    Sleep 5000
    
    nie działa Ci.... Coś takiego jeszcze znalazłem:
    
    Public Declare Function GetTickCount Lib "kernel32" () As Long
    
    Public Sub wait(ByVal dblMilliseconds As Double)
        Dim dblStart As Double
        Dim dblEnd As Double
        Dim dblTickCount As Double
        
        dblTickCount = GetTickCount()
        dblStart = GetTickCount()
        dblEnd = GetTickCount + dblMilliseconds
        
        Do
        DoEvents
        dblTickCount = GetTickCount()
        Loop Until dblTickCount > dblEnd Or dblTickCount < dblStart
           
        
    End Sub

    Wystarczy wywołać potem procedure wait z liczba ms, i powinno hulać...
  • REKLAMA
  • #7 9919573
    DwarfMine
    Poziom 9  
    Posty: 23
    Ocena: 5
    W tym ostatnim wyskakuje błąd przy wpisywaniu kodu"
    Error	1	'DoEvents' is not declared. It may be inaccessible due to its protection level.	C:\Documents and Settings\Krzysiek\Moje dokumenty\Visual Studio 2010\Projects\DarkWarezPoster\DarkWarezPoster\DWP.vb	231	13	DarkWarezPoster
    
  • #8 9919637
    lolcio
    Poziom 16  
    Posty: 133
    Pomógł: 29
    Ocena: 8
    A ten wcześniejszy kod próbowałeś uruchomić?
  • REKLAMA
  • #9 9919644
    DwarfMine
    Poziom 9  
    Posty: 23
    Ocena: 5
    Ten Sleep, czy MyMain Macro?
    PS Wejdziesz na GG?
    PS2 Wiesz może jak zrobić coś w stylu:
    If stronajestzaładowana then resztaczynności

Podsumowanie tematu

✨ Użytkownik napotkał problem w programie napisanym w Visual Basic 2010, który ma wprowadzać dane w przeglądarce, polegający na dodaniu opóźnienia przed wykonaniem kolejnej czynności. Odpowiedzi sugerowały użycie funkcji Sleep z biblioteki kernel32, co pozwala na wstrzymanie działania programu na określony czas w milisekundach. Użytkownik miał trudności z implementacją tej funkcji, co skutkowało błędami związanymi z nieprawidłowym umiejscowieniem kodu w przestrzeni nazw. Inne propozycje obejmowały użycie Application.OnTime do wprowadzenia opóźnienia w makrze oraz alternatywne metody z wykorzystaniem GetTickCount. Użytkownik również pytał o sposób sprawdzenia, czy strona jest załadowana przed kontynuowaniem działań.
Wygenerowane przez model językowy.
REKLAMA