Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Obrazki i losowanie


Rekomendowane odpowiedzi

Opublikowano

Witam! Mam problem. Mógłby ktoś podać przykładowy kod do vb 10 w którym: program gdy zobaczy obrazek1 (znajdujący się w folderze z programem) losuje liczbe od 1 do 3, pisze ją i klika enter a jak zobaczy obrazek2 to losuje liczbe od 4 do 6, pisze ją i klika enter? :) Nwm czy vb ogarnia szukanie obrazkow wiec pytam i prosze o kod. Jezeli kod bedzie dzialal to odwdziecze sie duuuzo iloscia likow + 5 w profilu! Jest to dla mnie bardzo wazne!!!

 

@EDIT: Ogarnąłem już losowanie. Teraz mi trzeba tylko że jak zobaczy obrazek1 to włącza timer 1 a jak obrazek2 to włącza timer2 :)

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Opublikowano

Nie, żeby szukał go na ekranie i gdy znajdzie to żeby uruchamiał timer1 :)

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Opublikowano
Public Class Form1


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
        For Each plik As String In pliki
            If String.Compare(GetMD5(plik).ToLower, "3fc38da271006631636520de7b11875d") = 0 Then
                MsgBox("Plik " + plik + " ma takie md5")
            End If
        Next
    End Sub
    Private Shared Function GetMD5(ByVal Filename As String) As String


        Dim MD5 = System.Security.Cryptography.MD5.Create
        Dim Hash As Byte()
        Dim sb As New System.Text.StringBuilder


        Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Hash = MD5.ComputeHash(st)
        End Using


        For Each b In Hash
            sb.Append(b.ToString("X2"))
        Next


        Return sb.ToString
    End Function
End Class

szuka katalog gdzie jest program a md5 wstawiasz jako 2 parametr w string.compare :D

Opublikowano

Ehhh... kompletnie nie rozumiem xD

Mi trzeba aby program znalazł obraz, jak znajdzie odpala timer. Tyle!

 

A Ty mi dajesz coś do szukania katalogu :D

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Opublikowano

Ehhh... kompletnie nie rozumiem xD

Mi trzeba aby program znalazł obraz, jak znajdzie odpala timer. Tyle!

 

A Ty mi dajesz coś do szukania katalogu :D

to wstaw tam md5 obrazka i zamiast msgboxa jak timer1.start() :D

Opublikowano

Jakie md5 obrazka? ;d

 

@EDIT: A może to o co mi chodzi da się załatwić inaczej. Chcę aby timer1 uruchamiał się gdy osoba (w grze) stojąca obok mnie coś napisze :)

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Opublikowano

np tu możesz zuploadować plik i dostaniesz md5 :D

http://onlinemd5.com/

tylko z kodu usun tam .ToLower bo ja miałem wszystko małymi literami a ty bd miał dużymi :P

 

masz taki kod na 2 pliki :

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
        For Each plik As String In pliki
            If String.Compare(GetMD5(plik), "3fc38da271006631636520de7b11875d") = 0 Then
                Timer1.Start()
            ElseIf String.Compare(GetMD5(plik), "3fc38da271006631636520de7b11875d") = 0 Then
                Timer1.Start()
            End If
        Next
    End Sub
    Private Shared Function GetMD5(ByVal Filename As String) As String

        Dim MD5 = System.Security.Cryptography.MD5.Create
        Dim Hash As Byte()
        Dim sb As New System.Text.StringBuilder

        Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Hash = MD5.ComputeHash(st)
        End Using

        For Each b In Hash
            sb.Append(b.ToString("X2"))
        Next

        Return sb.ToString
    End Function
End Class

Opublikowano

To jest idealny kod :

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
        For Each plik As String In pliki
            If String.Compare(GetMD5(plik), "3fc38da271006631636520de7b11875d") = 0 Then
                Timer1.Start()
            ElseIf String.Compare(GetMD5(plik), "3fc38da271006631636520de7b11875d") = 0 Then
                Timer1.Start()
            End If
        Next
    End Sub
    Private Shared Function GetMD5(ByVal Filename As String) As String

        Dim MD5 = System.Security.Cryptography.MD5.Create
        Dim Hash As Byte()
        Dim sb As New System.Text.StringBuilder

        Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Hash = MD5.ComputeHash(st)
        End Using

        For Each b In Hash
            sb.Append(b.ToString("X2"))
        Next

        Return sb.ToString
    End Function
End Class

Wystarczy użyć mózgu i go troche przerobić:

dodaj:

x1 timer - nazwij go search

i pomyśl nad tym :

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
 search.Start()
End Sub
 Private Sub search_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer9.Tick
                Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
        For Each plik As String In pliki
            If String.Compare(GetMD5(plik), "3fc38da271006631636520de7b11875d") = 0 Then
                Timer1.Start()
            ElseIf String.Compare(GetMD5(plik), "3fc38da271006631636520de7b11875d") = 0 Then
                Timer1.Start()
            End If
    End Sub
    Private Shared Function GetMD5(ByVal Filename As String) As String

        Dim MD5 = System.Security.Cryptography.MD5.Create
        Dim Hash As Byte()
        Dim sb As New System.Text.StringBuilder

        Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Hash = MD5.ComputeHash(st)
        End Using

        For Each b In Hash
            sb.Append(b.ToString("X2"))
        Next
        Return sb.ToString
    End Function
End Class

:D to wszystko :P

sygna.png

Opublikowano

1. Zrobiłem timer i nazwałem go search.

2. Zrobiłem timer1.

3. Zrobiłem button1.

4. Zrobiłem screena kawałka pulpitu. Obraz wrzuciłem tutaj

http://onlinemd5.com/

5. Otrzymany kod dodałem do kodu w vb

6. Jestem na pulpicie, włączam program, klikam buton1 i msgbox nie wyskakuje ;x

 

Tutaj kod:

 

 

Public Class Form1

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        search.Start()
    End Sub
    Private Sub search_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles search.Tick
        Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
        For Each plik As String In pliki
            If String.Compare(GetMD5(plik), "249CB903485AC68088A0440897E5BE88") = 0 Then
                Timer1.Start()
            ElseIf String.Compare(GetMD5(plik), "249CB903485AC68088A0440897E5BE88") = 0 Then
                Timer1.Start()
            End If
        Next
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        MsgBox("siema")
    End Sub
    Private Shared Function GetMD5(ByVal Filename As String) As String

        Dim MD5 = System.Security.Cryptography.MD5.Create
        Dim Hash As Byte()
        Dim sb As New System.Text.StringBuilder

        Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Hash = MD5.ComputeHash(st)
        End Using

        For Each b In Hash
            sb.Append(b.ToString("X2"))
        Next
        Return sb.ToString
    End Function
End Class

 

 

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Opublikowano

Spróbuj tego :

Public Class Form1

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        search.Start()
    End Sub
    Private Sub search_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles search.Tick
        Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
        For Each plik As String In pliki
            If String.Compare(GetMD5(pliki), "249CB903485AC68088A0440897E5BE88") = 0 Then
            ElseIf String.Compare(GetMD5(pliki), "249CB903485AC68088A0440897E5BE88") = 0 Then
            End If
        Next
        MsgBox("siema")
    End Sub
    Private Shared Function GetMD5(ByVal Filename As String) As String

        Dim MD5 = System.Security.Cryptography.MD5.Create
        Dim Hash As Byte()
        Dim sb As New System.Text.StringBuilder

        Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Hash = MD5.ComputeHash(st)
        End Using

        For Each b In Hash
            sb.Append(b.ToString("X2"))
        Next
        Return sb.ToString
    End Function
End Class

To powinno zadziałać - to działa na zasadzie "wyszukaj obrazek, jeśli nie znalazło to szuka dalej, gdy znalazło wykonaj kolejne polecenie które jest         MsgBox("siema") ", jeśli nie zadziała to dodaj po "

            If String.Compare(GetMD5(pliki), "249CB903485AC68088A0440897E5BE88") = 0 Then

taki kod :

Else
MsgBox("siema") 

to jest chyba przczyna tego.

sygna.png

Opublikowano

1. Zrobiłem timer i nazwałem go search.

2. Zrobiłem timer1.

3. Zrobiłem button1.

4. Zrobiłem screena kawałka pulpitu. Obraz wrzuciłem tutaj

http://onlinemd5.com/
5. Otrzymany kod dodałem do kodu w vb

6. Jestem na pulpicie, włączam program, klikam buton1 i msgbox nie wyskakuje ;x

 

Tutaj kod:

 

Public Class Form1

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
	    search.Start()
    End Sub
    Private Sub search_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles search.Tick
	    Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
	    For Each plik As String In pliki
		    If String.Compare(GetMD5(plik), "249CB903485AC68088A0440897E5BE88") = 0 Then
			    Timer1.Start()
		    ElseIf String.Compare(GetMD5(plik), "249CB903485AC68088A0440897E5BE88") = 0 Then
			    Timer1.Start()
		    End If
	    Next
    End Sub
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
	    MsgBox("siema")
    End Sub
    Private Shared Function GetMD5(ByVal Filename As String) As String

	    Dim MD5 = System.Security.Cryptography.MD5.Create
	    Dim Hash As Byte()
	    Dim sb As New System.Text.StringBuilder

	    Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
		    Hash = MD5.ComputeHash(st)
	    End Using

	    For Each b In Hash
		    sb.Append(b.ToString("X2"))
	    Next
	    Return sb.ToString
    End Function
End Class

 

Nie dawaj tego do timera bo kod sie nie wykona caly bo bedzie juz nastepny tick :D daj kod na szukanie do button click gdyz to musi wszystkie pliki sprawdzic :p

 

A ten screen pulpitu masz na pulpicie?

Opublikowano

kosmo53 - działa!! tylko cały czas wyskakują msgboxy. Jak zrobić by otwierał się tylko raz?

 

@EDIT: a jednak nie działa, wyskakują msgboxy nawet jak niema obrazka ;x

@EDIT2: Chyba naucze się troche autoit i tam spróbuje napisać bo to vb nie ogarnia za bardzo tego szukania obrazków...

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Opublikowano

@Up - to czekam, będę naprawdę bardzo wdzięczy... Nigdzie nie mogę znaleźć tego jak to zrobić...

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Opublikowano
Public Class Form1
    Private Shared Function GetMD5(ByVal Filename As String) As String


        Dim MD5 = System.Security.Cryptography.MD5.Create
        Dim Hash As Byte()
        Dim sb As New System.Text.StringBuilder


        Using st As New IO.FileStream(Filename, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.Read)
            Hash = MD5.ComputeHash(st)
        End Using


        For Each b In Hash
            sb.Append(b.ToString("X2"))
        Next


        Return sb.ToString
    End Function


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim pliki As String() = System.IO.Directory.GetFiles(Application.StartupPath())
        For Each plik As String In pliki
            If String.Compare(GetMD5(plik), "9BB0BBFB1D2B0D13391085F3B94D977A") = 0 Then
                MsgBox("znaleziono obrazek 1")
            ElseIf String.Compare(GetMD5(plik), "45E1ABF1782977CE48C2DF5DDF9BC96D") = 0 Then
                MsgBox("znaleziono obrazek 2")
            End If
        Next
    End Sub
End Class

tylko md5 plików generuj tu 

http://hash.online-convert.com/md5-generator

i wtedy wklejasz do programu to

HEX: 9BB0BBFB1D2B0D13391085F3B94D977A

czyli ma być dużymi literami

 

Tamta strona nwm czemu ale dla obrazków zle md5 generowała :D

Opublikowano

i nadal nie działa ;c

 

wrzuciłem na strone kawałem mojej tapety i md5 wkleiłem do kodu...

Jeżeli pomogłem podziękuj klikając Lubie to! <3


sygna1.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...