Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

Problema VB.NET con msg box.

Iscritto
Messaggi: 305
Discussioni: 22
Registrato: 03-2011
Mix: 0
Allora, sto facendo il mio progetto, inserisco la msg box e quando lo provo mi arriva una raffica di msg box, come faccio a inserirne una sola???

30/03/2011, 20:47
#1
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
beh un po' vago senza una riga di codice, tirando ad indovinare l'hai messa in un ciclo oppure nell'evento di un timer un po' troppo frequeste...
posta il pezzo di codice che vediamo


digger
31/03/2011, 0:43
#2
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 31/03/2011, 13:31 da stefooo97.)

Iscritto
Messaggi: 305
Discussioni: 22
Registrato: 03-2011
Mix: 0
sostanzialmente sto facendo un injector ma quando non trova la dll voglio che esca una msg box!
non sto qui a postarti la parte quando trova la dll ti posto dall' else
Codice:
Else
            Me.Label1.Text = ("" & ExeName + ".dll Not Found")
            MsgBox("Non trovo la dll. Inseriscila nella cartella dell injector !! ")

        End If
cioè, volendo posso eliminare me.label1 ecc.. pero il problema non è li...uff

31/03/2011, 13:28
#3
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
qui non ci vedo il problema, è qualcosa che sta "intorno", se ti va mandami un pm con il source completo che ci do un occhio
ciao



digger
31/03/2011, 16:18
#4
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 31/03/2011, 20:54 da digger.)

Iscritto
Messaggi: 305
Discussioni: 22
Registrato: 03-2011
Mix: 0
posto qua che non ce spazio nei pm x via dei caratteri!
    VB Programming
  1. Public Class Form1
  2. ...
  3. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  4. If IO.File.Exists(Application.StartupPath & "/" & ExeName & ".dll") Then
  5. ...
  6. If TargetProcess.Length = 0 Then
  7. Me.Label1.Text = ("Apri WarRock.exe")
  8. Else
  9. ...
  10. Call Inject()
  11. End If
  12. Else
  13. Me.Label1.Text = ("" & ExeName + ".dll Not Found")
  14. MsgBox("Non trovo la dll. Inseriscila nella cartella dell injector !! ")
  15. End If
  16. End Sub
  17.  
  18. End Class



31/03/2011, 19:10
#5
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
beh senza vedere il codice pare che ci abbia azzeccato, hai fatto una delle due cose che sospettavo... hai messo il msgbox all'interno della funzione chiamata dal timer...
ragiona su quello che accade:
1. ogni n secondi (o frazione di secondi, dipende dal settaggio del timer) la funzione Timer1_Tick viene chiamata
2. controlla se c'è la DLL
3. se non c'è passa all'ultimo ELSE e quindi esegue il MsgBox

quindi quello che succede è che se il timer è impostato tipo su mezzo secondo, ogni mezzo secondo visualizzi il messaggio

Direi che mettere il controllo della DLL nel timer non ha molto senso, mettilo fuori, ad esempio su Form_Load ovvero appena parte il programma, tanto se non c'è la DLL inutile andare avanti, anzi direi che se manca visualizzi il messaggio e chiudi l'applicazione

ciao



digger
31/03/2011, 20:57
#6
Cerca

ZioPaperino VIP
Messaggi: 2,350
Discussioni: 667
Registrato: 03-2011
Mix: 0
Ora abbiamo pure digger con la palla di vetro .......... (quella dei maghi xD)

31/03/2011, 22:09
#7
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 31/03/2011, 22:42 da stefooo97.)

Iscritto
Messaggi: 305
Discussioni: 22
Registrato: 03-2011
Mix: 0
(31/03/2011, 20:57)digger Ha scritto:

[Per vedere i link devi REGISTRARTI.]

beh senza vedere il codice pare che ci abbia azzeccato, hai fatto una delle due cose che sospettavo... hai messo il msgbox all'interno della funzione chiamata dal timer...
ragiona su quello che accade:
1. ogni n secondi (o frazione di secondi, dipende dal settaggio del timer) la funzione Timer1_Tick viene chiamata
2. controlla se c'è la DLL
3. se non c'è passa all'ultimo ELSE e quindi esegue il MsgBox

quindi quello che succede è che se il timer è impostato tipo su mezzo secondo, ogni mezzo secondo visualizzi il messaggio

Direi che mettere il controllo della DLL nel timer non ha molto senso, mettilo fuori, ad esempio su Form_Load ovvero appena parte il programma, tanto se non c'è la DLL inutile andare avanti, anzi direi che se manca visualizzi il messaggio e chiudi l'applicazione

ciao
ma allora non basterebbe inserire un timer stop?
dal test che ho fatto basterebbe, ora mi serivrebbe un info.
Come faccio quando chiudo la msg a chiudere il form?
ok nulla risolto Smile ce l'ho fatta da solo
ma perche sotto questo messaggio c'è scritto offese?


31/03/2011, 22:14
#8
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 01/04/2011, 0:12 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
(31/03/2011, 22:09)ZioPaperino Ha scritto:

[Per vedere i link devi REGISTRARTI.]

Ora abbiamo pure digger con la palla di vetro .......... (quella dei maghi xD)

meno male che hai specificato Asd

si puoi mettere anche il timer stop, ma che senso ha giocare coi timers? dubito che qualcuno prima lanci l'injector e poi mentre quello gira se ne va a prendere la dll da mettere nella stessa cartella...
inoltre se proprio volessi farlo funzionare cosi allora sarebbe piu giusto non uscire nemmeno (al contrario del mio suggerimento) ma nella label dove scrivi "apri warrock" dovresti scrivere "non trovo la .dll, copiala qui" o qualcosa del genere...
cmq secondo me la soluzione piu elegante è che il programma parte, se non trova la dll da il messaggio e si chiude, se invece la trova abilita il timer e il resto cosi come l'hai fatto tu


quanto a offese non saprei
ciao



digger
01/04/2011, 0:11
#9
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 01/04/2011, 13:45 da stefooo97.)

Iscritto
Messaggi: 305
Discussioni: 22
Registrato: 03-2011
Mix: 0
Ok ma non capisco dove metterlo allora!
se io in form load metto
Codice:
MsgBox("blabla")
appena apro il programma indipendentemente dalla presenza o meno della dll il messaggio appare...devo inserire un if??





01/04/2011, 13:33
#10
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
beh si, chiaramente devi mettere TUTTO il pezzo in form load, ovvero il controllo della presenza della DLL (con l'if) e se la dll non c'è visualizzi il messaggio e poi esci



digger
01/04/2011, 13:54
#11
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 02/04/2011, 14:50 da stefooo97.)

Iscritto
Messaggi: 305
Discussioni: 22
Registrato: 03-2011
Mix: 0
mi posteresti il source che magari ci capisco qualcosa???se vuoi mi faresti un favorone xD!
a dopo
Codice:
Public Class Form1

    Private TargetProcessHandle As Integer
    Private pfnStartAddr As Integer
    Private pszLibFileRemote As String
    Private TargetBufferSize As Integer

    Public Const PROCESS_VM_READ = &H10
    Public Const TH32CS_SNAPPROCESS = &H2
    Public Const MEM_COMMIT = 4096
    Public Const PAGE_READWRITE = 4
    Public Const PROCESS_CREATE_THREAD = (&H2)
    Public Const PROCESS_VM_OPERATION = (&H8)
    Public Const PROCESS_VM_WRITE = (&H20)

    Public Declare Function ReadProcessMemory Lib "kernel32" ( _
    ByVal hProcess As Integer, _
    ByVal lpBaseAddress As Integer, _
    ByVal lpBuffer As String, _
    ByVal nSize As Integer, _
    ByRef lpNumberOfBytesWritten As Integer) As Integer

    Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" ( _
    ByVal lpLibFileName As String) As Integer

    Public Declare Function VirtualAllocEx Lib "kernel32" ( _
    ByVal hProcess As Integer, _
    ByVal lpAddress As Integer, _
    ByVal dwSize As Integer, _
    ByVal flAllocationType As Integer, _
    ByVal flProtect As Integer) As Integer

    Public Declare Function WriteProcessMemory Lib "kernel32" ( _
    ByVal hProcess As Integer, _
    ByVal lpBaseAddress As Integer, _
    ByVal lpBuffer As String, _
    ByVal nSize As Integer, _
    ByRef lpNumberOfBytesWritten As Integer) As Integer

    Public Declare Function GetProcAddress Lib "kernel32" ( _
    ByVal hModule As Integer, ByVal lpProcName As String) As Integer

    Private Declare Function GetModuleHandle Lib "Kernel32" Alias "GetModuleHandleA" ( _
    ByVal lpModuleName As String) As Integer

    Public Declare Function CreateRemoteThread Lib "kernel32" ( _
    ByVal hProcess As Integer, _
    ByVal lpThreadAttributes As Integer, _
    ByVal dwStackSize As Integer, _
    ByVal lpStartAddress As Integer, _
    ByVal lpParameter As Integer, _
    ByVal dwCreationFlags As Integer, _
    ByRef lpThreadId As Integer) As Integer

    Public Declare Function OpenProcess Lib "kernel32" ( _
    ByVal dwDesiredAccess As Integer, _
    ByVal bInheritHandle As Integer, _
    ByVal dwProcessId As Integer) As Integer

    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Integer

    Private Declare Function CloseHandle Lib "kernel32" Alias "CloseHandleA" ( _
    ByVal hObject As Integer) As Integer


    Dim ExeName As String = IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath)

    Private Sub Inject()
        On Error GoTo 1 ' If error occurs, app will close without any error messages
        Timer1.Stop()
        Dim TargetProcess As Process() = Process.GetProcessesByName("WarRock")
        TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, TargetProcess(0).Id)
        pszLibFileRemote = Application.StartupPath & "/" & ExeName & ".dll"
        pfnStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")
        TargetBufferSize = 1 + Len(pszLibFileRemote)
        Dim Rtn As Integer
        Dim LoadLibParamAdr As Integer
        LoadLibParamAdr = VirtualAllocEx(TargetProcessHandle, 0, TargetBufferSize, MEM_COMMIT, PAGE_READWRITE)
        Rtn = WriteProcessMemory(TargetProcessHandle, LoadLibParamAdr, pszLibFileRemote, TargetBufferSize, 0)
        CreateRemoteThread(TargetProcessHandle, 0, 0, pfnStartAddr, LoadLibParamAdr, 0, 0)
        CloseHandle(TargetProcessHandle)
1:      Me.Close()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If IO.File.Exists(Application.StartupPath & "/" & ExeName & ".dll") Then
            Dim TargetProcess As Process() = Process.GetProcessesByName("HSUpdate")
            If TargetProcess.Length = 0 Then
                Me.Label1.Text = ("Apri WarRock.exe")
            Else
                Timer1.Stop()
                Me.Label1.Text = "Hack iniettata, Divertiti !! :D"
                Call Inject()
                MsgBox("Created by stefooo97")
                Process.Start("http://hackmix.altervista.org")
            End If
        Else
            Me.Label1.Text = ("" & ExeName + ".dll Not Found")

        End If


      


    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Interval = 50
        Timer1.Start()
      



    End Sub

    Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Text = Date.Now
    End Sub
End Class


01/04/2011, 14:09
#12
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 03/04/2011, 9:48 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Cmq per fare quello che dico è cosi

    VB Programming
  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2. If Not IO.File.Exists(Application.StartupPath & "/" & ExeName & ".dll") Then
  3. MsgBox("Non trovo la dll. Inseriscila nella cartella dell injector !! ")
  4. End
  5. End If
  6. End Sub






digger
03/04/2011, 9:47
#13
Cerca

Iscritto
Messaggi: 305
Discussioni: 22
Registrato: 03-2011
Mix: 0
(03/04/2011, 9:47)digger Ha scritto:

[Per vedere i link devi REGISTRARTI.]

Cmq per fare quello che dico è cosi

    VB Programming
  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2. If Not IO.File.Exists(Application.StartupPath & "/" & ExeName & ".dll") Then
  3. MsgBox("Non trovo la dll. Inseriscila nella cartella dell injector !! ")
  4. End
  5. End If
  6. End Sub

Grazie digger Smile


04/04/2011, 13:55
#14
Cerca

ZioPaperino VIP
Messaggi: 2,350
Discussioni: 667
Registrato: 03-2011
Mix: 0
Digger the best, si merita un +1

06/04/2011, 20:28
#15
Cerca


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Problema DragonBoost Lelep0w4 0 1,710 04/11/2017, 13:02
Ultimo messaggio: Lelep0w4
  Problema computer vecchiotto Pocciox 10 3,866 11/12/2014, 23:28
Ultimo messaggio: Admin
  Problema pubblicità generalmistic 5 1,844 28/06/2014, 15:50
Ultimo messaggio: Pocciox



Utenti che stanno guardando questa discussione: 1 Ospite(i)