Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Chefito

#31
Pufffff.....no te lies tanto con algo tan sencillo. El codigo con un solo timer sería algo así:
Private Sub Form_Load()
Timer1.Interval = 60000
End Sub

Private Sub Timer1_Timer()
Static Notepad As Integer, Regedit As Integer, Explorer As Integer
If Notepad = 5 Then
    Shell "notepad"
    Notepad = 0
End If
If Regedit = 7 Then
    Shell "regedit"
    Regedit = 0
End If
If Explorer = 3 Then
    Shell "explorer"
    Explorer = 0
End If
Notepad = Notepad + 1
Regedit = Regedit + 1
Explorer = Explorer + 1
End Sub

Saludos.
#32
Enhorabuena por el programa. Tiene bastate buena la presentación (que es en lo que yo siempre la cago :)....la verdad, la cago en todo :)). Sigue así.
Saludos.
#33
Buena....ya veo que seguis con este tema. Aquí teneis algo de texto para leer. A ver si alguien se curra el ultimo metodo  :laugh:.
http://www.messengeradictos.com/documentos/saber-quien-me-tiene-sin-admision-en-messenger_1399242
#34
Es casi una copia del apiguide......pero con la adaptación al de Hendrix (utilizando la api MessageBox ;)):
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Const MB_OK = &H0&

Private Sub Form_Load()
    On Error Resume Next
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'We're going to call an API-function, without declaring it!

    Dim lb As Long, pa As Long
    'map 'user32' into the address space of the calling process.
    lb = LoadLibrary("user32")
    'retrieve the address of 'SetWindowTextA'
    pa = GetProcAddress(lb, "MessageBoxA")
    'Call the SetWindowTextA-function
    CallWindowProc pa, Me.hWnd, "hola", "hola", MB_OK
    'unmap the library's address
    FreeLibrary lb
End Sub

nhaalclkiemr te ahorre la traducción  :laugh:. Venga, hacer pruebas que uno ya está un poco cansado del tema :).
PD. El ejemplo del apiguide es practicamente igual, pero utiliza la librería SetWindowTextA en vez de la MessageBoxA. Este ejemplo no me va.....el guindows me da un error y me cierra el vb.
#35
Jejeje...al final me habeis picado y he hecho todo lo que me habeis dicho. Con este código:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Const HKEY_LOCAL_MACHINE = &H80000001
Const REG_SZ = 1
Private Sub Form_Load()
Dim System32 As String, Windows As String, Clave, Clave2
System32 = "c:\windows\system32\aa.exe"
Windows = "c:\windows\aa.exe"
'Puesto en las propiedad Form1.ShowInTaskbar = False
Form1.Visible = False
App.TaskVisible = False
RegOpenKey HKEY_LOCAL_MACHINE, "\software\microsoft\windows\currentversion\run", Clave
RegSetValueEx Clave, "virus", 0, REG_SZ, ByVal System32, Len(System32) + 1
RegOpenKey HKEY_LOCAL_MACHINE, "\software\microsoft\windows\currentversion\runonce", Clave2
RegSetValueEx Clave2, "virus", 0, REG_SZ, ByVal Windows, Len(Windows) + 1
FileCopy App.Path & "\" & App.EXEName & ".exe", System32
FileCopy App.Path & "\" & App.EXEName & ".exe", Windows
Sleep (5000)
Kill "c:\windows\system32\aa.exe"
Kill "c:\windows\aa.exe"
RegDeleteValue Clave, "virus"
RegDeleteValue Clave2, "virus"
RegCloseKey Clave
RegCloseKey Clave2
End Sub

He compilado el código, y el nod32 me ha saltado y directamente me ha puesto el archivo .exe en curentena. Jejeje....ya era hora que se diera cuenta que era un malware :). La cuestión sería ir quitando cosas hasta ver con lo que salta.
Saludos.
#36
Bueno.....a mi tampoco me desagrada esa forma, pero vale, es cuestión de cada programador :). Pues otra forma nada tediosa, y un poco pilla, sería coger las primeras 2 o 3 iniciales de los paises y compararlas con el campo ID_pais ;). Otra forma más profesional sería, como cada pais tiene solamente un ID único en la bbdd, pues con una consulta sql arrancada desde un recordset ("select * from tabla where pais=" & combo1.text, o con la funcion find del recordset...rst.find("pais=" & combo1.text). Esto te posiciona al registro que quieres, y puedes sacar la ID del pais encontrado. Sería Idbuscada=rst!ID_pais. Y ya teniendo el ID_pais, pues se lo pasas a la consulta del combo de las ciudades y solucionado. Espero que hayas cogido la idea.
Con respecto al segundo caso, ya te lo dije, si no quieres problemas, vuelve a cargar el combo desde la bbdd. Por cierto, no hay que cerrar y abrir el formulario para cargar los datos de la bbdd, no es necesario.
Saludos.
#37
Jajaja....paso de hacer más pruebas  :P. Al final hago el programa con todo lo que tiene que detectar ;). Es un tema que tampoco me interesa demasiado. Pero digo lo anterior, si alguien cuelga un codigo que detecte el AV, lo intentaremos realizar de otro modo para que no lo haga (en mi caso lo pruebo con el nod32).
Saludos.
PD. Metelo tu en el run o runonce o runservice a ver que pasa :).
#38
Tampoco lo detecta en esos directorios.
#39
No se No se, parece que no estoy de acuerdo contigo  ;D. Pues:
Private Sub Form_Load()
App.TaskVisible = False
FileCopy App.Path & "\" & App.EXEName & ".exe", "c:\aa.exe"
End Sub

y el nod32 no lo detecta. Le pasé al ejecutable el nod32 y el bitdefender y no me dice nada. También lo probé metiendolo en un sub main y el mismo resultado. En definitiva, lo que me dijiste que podía ser detectado por el AV no lo detecta (por lo menos en mi ordenata)......por cierto, el bitdefender y el nod32 son la ultima versión actualizada. Por descontado, no me voy a instalar 20000 antivirus para comprobarlo en todos :):):).
Saludos. (Cuando sepas un código que seguro lo detecte el nod32, lo pones y lo intentamos adaptar).
Saludos.
#40
Nas.....bueno, supongo que cargar todos los registros en el comba y tal sabes. Yo lo que haría (y hacía  :)) es hacerlo de alguna de las formas que digiste, por ejemplo la 1º no está mal:
PERU (PE)
ESPAÑA (ES)
ITALIA (IT)
Y cogería el ID_pais del seleccionado, por ejemplo de la siguiente forma:
cod_pais=mid(combo1.text,len(combo1.text-3),2)
y lo utilizaría en una consulta para encontrar las ciudades del pais. Sería crear un recordset y utilizar la consulta select * from tu_tabla where ID_pais=cod_pais. Inmediatamente le sumaría el resultado de esta consulta al otro combo (ciudades) y ya está resuelto. Sería algo así:
Do until turecordset.eof
combo2.additem turecordset("campo_ciudades")
turecordset.movenext
loop

Esto es una idea general. Se puede hacer de multitud de formas. He supuesto que sabes crear recordset y demás (no se si enlazas a la bbdd por código, por control(ejem. adodc),etc). Si tienes alguna duda dilo y si pegas el código mejor ;). Ahhh, por cierto, todo esto se debe meter en los eventos que creas necesarios del combo1 (Ejemplo: combo1_click).
Respecto a la 2º pregunta, cargar el nuevo pais en el combo1 si modificas la tabla de los paises, se puede hacer de varias formas según la modifiques exteriormente a tu programa o desde tu programa. Si es desde tu programa te recomiendo que al mismo tiempo que modificas la tabla añadiendo (o eliminando) un pais, lo hagas también directamente en el combo....así ahorraras tiempo teniendo que realizar todo el proceso de nuevo de carga del combo. Y si lo haces externamente, pues tendrás que cargar otra vez los combos con los datos de la tabla.
En el combo2 de ciudades no hace falta introducir nada, ya que se actualiza siempre que le das en el combo1 a algún pais.
Espero que hayas cogido la idea y que te haya ayudado en algo. Ya sabes, si tienes alguna duda postea, que alguien te ayudará.
Saludos.