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 - nhaalclkiemr

#201
Usar funciones es muy facil, y el FOR también es esencial...eso con la practica aprendes ;)

y sobre los colores es utilizar etiquetas GeSHi

mira se usaría así (sin los espacios esos)

[ code=dos ][ /code ]

para VB sería así:

[ code=vb ][ /code ]

Saludos >:(
#202
He mejorado tu code, por no decir que lo he renovado casi todo...ahora puedes elegir el número de cifras decimales con las que quieres calcular la cifra...

Hice dos bat, pongo los dos, son iguales pero el primero muestra el progreso de calculo a partir de los 70 decimales y el segundo no muestra ningun progreso.

Código (dos) [Seleccionar]
@echo off
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic

title DIVISION CON DECIMALES

echo Calcula una division hasta con numeros decimales
:main
echo.
echo.
echo.
set did=
set div=
set max=
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales (por defecto 60):
if "%did%"=="" goto main
if "%div%"=="" goto main
if "%max%"=="" set max=60
if "%max%"=="0" set max=60
set /a xxx=%did%*1
if not "%xxx%"=="%did%" goto main
set /a xxx=%div%*1
if not "%xxx%"=="%div%" goto main
set /a xxx=%max%*1
if not "%xxx%"=="%max%" goto main
echo.
if %div%==0 (
echo Error. Division por cero.
pause>nul
exit
)
set /a divno0=%did%/%div%
set /a mult1=%divno0%*%div%
set /a resi0=%did%-%mult1%
if %resi0%==0 (
goto exacto
)
set p=0
echo Calculando...
:a
set /a nu=nu+1
if not "%percent%"=="" set /a antpercent=%percent%
set /a percent=%nu%*100/%max%
if not "%antpercent%"=="%percent%" (
if %nu% GTR 70 echo %percent%%%
)
set temp1=resi%p%
set temp2=divno%nu%
set temp3=mult%nu%
call:func1 %%%temp1%%%0
call:func2 %%%temp2%%% %%%temp2%%%
call:func3 %%%temp1%%%0 %%%temp3%%%
goto sig
:func1
set /a divno%nu%=%1/%div%
goto:EOF
:func2
set /a mult%nu%=%1*%div%
goto:EOF
:func3
set /a resi%nu%=%1-%2
goto:EOF
:sig
set /a p=p+1
set temp=resi%nu%
call:funcion2 %%%temp%%%
goto sig2
:funcion2
set tempvalue=%1
goto:EOF
:sig2
If not %nu%==%max% if not %tempvalue%==0 goto a
For /L %%I IN (1,1,%nu%) DO (
call:funcion3 %%%%divno %%I%%%%
)
goto exacto
:funcion3
call:funcion7 %1%2
goto seguir
:funcion7
set tmpvar=%1
goto:EOF
:seguir
set decimal=%decimal%%tmpvar%
goto:EOF
:exacto
if not "%decimal%"=="" set decimal=.%decimal%
echo.
echo Resultado: %divno0%%decimal%
pause>nul
exit


Código (dos) [Seleccionar]
@echo off
::Division con decimales by nhaalclkiemr
::Baseado en el code de kraszic

title DIVISION CON DECIMALES

echo Calcula una division hasta con numeros decimales
:main
echo.
echo.
echo.
set did=
set div=
set max=
set /p did=Introduce el dividendo:
set /p div=Introduce el divisor:
set /p max=Introduce el numero maximo de decimales (por defecto 30):
if "%did%"=="" goto main
if "%div%"=="" goto main
if "%max%"=="" set max=30
if "%max%"=="0" set max=30
set /a xxx=%did%*1
if not "%xxx%"=="%did%" goto main
set /a xxx=%div%*1
if not "%xxx%"=="%div%" goto main
set /a xxx=%max%*1
if not "%xxx%"=="%max%" goto main
echo.
if %div%==0 (
echo Error. Division por cero.
pause>nul
exit
)
set /a divno0=%did%/%div%
set /a mult1=%divno0%*%div%
set /a resi0=%did%-%mult1%
if %resi0%==0 (
goto exacto
)
set p=0
echo Calculando...
echo.
:a
set /a nu=nu+1
set temp1=resi%p%
set temp2=divno%nu%
set temp3=mult%nu%
call:func1 %%%temp1%%%0
call:func2 %%%temp2%%% %%%temp2%%%
call:func3 %%%temp1%%%0 %%%temp3%%%
goto sig
:func1
set /a divno%nu%=%1/%div%
goto:EOF
:func2
set /a mult%nu%=%1*%div%
goto:EOF
:func3
set /a resi%nu%=%1-%2
goto:EOF
:sig
set /a p=p+1
set temp=resi%nu%
call:funcion2 %%%temp%%%
goto sig2
:funcion2
set tempvalue=%1
goto:EOF
:sig2
If not %nu%==%max% if not %tempvalue%==0 goto a
For /L %%I IN (1,1,%nu%) DO (
call:funcion3 %%%%divno %%I%%%%
)
goto exacto
:funcion3
call:funcion7 %1%2
goto seguir
:funcion7
set tmpvar=%1
goto:EOF
:seguir
set decimal=%decimal%%tmpvar%
goto:EOF
:exacto
if not "%decimal%"=="" set decimal=.%decimal%
echo Resultado: %divno0%%decimal%
pause>nul
exit



El código de los dos es lo mismo, en el primero añadí unas lineas poco importantes para obtener el progreso...

Si alguien no entiende el code que mire el manual de programación avanzada de SDC que explica muy bien el uso de funciones y del comando FOR en BATCH

Los hice bastante rápido y se pueden optimizar, y bastante, si alguien quiere optimizarlo que lo haga y lo ponga si kiere, la verdad yo lo hice bastante rápido...

Weno espero que os sirva...

Saludos ;)
#203
Eso es pork cerraste la aplicación sin ejecutar antes la función QuitarIcono

Y no hace falta un control, con saber usar un poco la API ya está, aqui os pongo un ejemplo de la API-Guide:

Código (vb) [Seleccionar]
'Download the full source+pictures+... at http://kpdteam.hypermart.net/download/tray.zip
Private Type NOTIFYICONDATA
    cbSize As Long
    hWnd As Long
    uId As Long
    uFlags As Long
    ucallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type

Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4

Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_RBUTTONUP = &H205

Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
Dim TrayI As NOTIFYICONDATA
Private Sub Form_Load()
    TrayI.cbSize = Len(TrayI)
    'Set the window's handle (this will be used to hook the specified window)
    TrayI.hWnd = pichook.hWnd
    'Application-defined identifier of the taskbar icon
    TrayI.uId = 1&
    'Set the flags
    TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
    'Set the callback message
    TrayI.ucallbackMessage = WM_LBUTTONDOWN
    'Set the picture (must be an icon!)
    TrayI.hIcon = imgIcon(2).Picture
    'Set the tooltiptext
    TrayI.szTip = "Recent" & Chr$(0)
    'Create the icon
    Shell_NotifyIcon NIM_ADD, TrayI

    Me.Hide
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'remove the icon
    TrayI.cbSize = Len(TrayI)
    TrayI.hWnd = pichook.hWnd
    TrayI.uId = 1&
    Shell_NotifyIcon NIM_DELETE, TrayI
    End
End Sub
Private Sub mnuPop_Click(Index As Integer)
    Select Case Index
        Case 0
            MsgBox "KPD-Team 1998" + Chr$(13) + "URL: http://www.allapi.net/" + Chr$(13) + "E-Mail: KPDTeam@Allapi.net", vbInformation + vbOKOnly
        Case 2
            Unload Me
    End Select
End Sub
Private Sub pichook_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Msg = X / Screen.TwipsPerPixelX
    If Msg = WM_LBUTTONDBLCLK Then
        'Left button double click
        mnuPop_Click 0
    ElseIf Msg = WM_RBUTTONUP Then
        'Right button click
        Me.PopupMenu mnuPopUp
    End If
End Sub
Private Sub Timer1_Timer()
    Static Tek As Integer
    'Animate the icon
    Me.Icon = imgIcon(Tek).Picture
    TrayI.hIcon = imgIcon(Tek).Picture
    Tek = Tek + 1
    If Tek = 3 Then Tek = 0
    Shell_NotifyIcon NIM_MODIFY, TrayI
End Sub


El timer ews por si kereis poner un icono animado...

y por cierto, ese code usa un picture box desde el que carga la imgen, no hace falta, se puede uno amañar para hacerlo sin el picturebox

Saludos  ;)
#204
es facil: 1 minuto = 60 segundos  :xD :xD

Saludos ;)
#205
Scripting / Re: Como funciona el AT (batch)???
16 Octubre 2007, 21:03 PM
Da igual...pero te aconsejo la ayuda de Windows, vas y en buscar escribes cualkier comando y te aparece una descripcion de su uso muy detallada y bien explicada

Saludos ;)
#206
Weno yo en este tema ya no me meto k no se mucho pero parece k va a ser la única solución, es cuestión de probar...a ver k sale :xD

Saludos ;)
#207
o usas ping (pienso k en vez de 5000 para 5 minutos serían 300 pero no estoy seguro) o usas tareas programadas...y en uno de los temas pegados hay una función Sleep buscala

Saludos ;)
#208
Acabo de hablar con una persona k sabe bastante de C y hace rootkits, k al fin y al cabo son servicios .SYS corriendo como servicios en Ring0 y me dijo que no hace falta reiniciar, k puedes instalar el driver y ejecutarlo sin reiniciar...asi k si consigues crear uno o sabes de alguien k sepa (yo no se C y desde VB no se puede) pues desde aí conseguirás matarlo...es la unica solución...

Si eso le pido a la persona si me puede hacer un driver para matar al KAV...pero entonces dadme la mayor información posible de como lo tiene que hacer...aunke yo tengo algun log para aí k pienso k tiene casi toda la info...

Weno k os parece? saludos ;)
#209
Se me olvidó decir k una posible solución que se me ocurrió sería hacerse pasar por el programa de desinstalación...lo malo es que pienso k primero tienes que cerrar el Kaspersky de manera manual y despues desinstalarlo, además creo k necesitas reiniciar también...

O te podrías hacer pasar por el humano para desactivarlo...pero pienso k esto no se puede...

Saludos ;)
#210
es lo k keda...ascender a Ring0...mientras tanto no habría alguna manera de confundir al Kaspersky o algo?...si no lo veo dificil...

Weno mi idea de los discos duros si weno...ya suponía que tendría que reiniciar...y para escribir en memoria los drivers...mmm...esta complicado pork como dice Mad hay que estar en Ring0...

Una pregunta, para ascender a Ring0 yo se que hay que correr un driver .SYS como un servicio, pero para hacer esto hay que reiniciar???? pork si no ya estaría...

La verdad llevo mucho tiempo mirando como joder al KAV y de momento no encontré muchas soluciones...

Sobre los drivers no entendí una cosa, uno protege la aplicación, pero eso de k los otros se protegen entre ellos no lo entendí muy bien...a k te refieres entre ellos, no lo protege el mismo que protege la aplicación??

Saludos ;)