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 - Eleкtro

#9431
No puedes hacerlo diréctamente como en Bash.

Código (DOS) [Seleccionar]
For /F "Tokens=*" %%# in ('comando1 ^| comando2') Do (Set "Variable=%%#")

Aprende el uso del FOR /F, porque lo vas a necesitar.

Saludos
#9432
Scripting / Re: Registry Hack
7 Febrero 2013, 04:23 AM
Eso es un tema que ya no está relacionado con el Scripting.

Hay infinitas herramientas para modificar el icono principal de un archivo executable, para cambiarlo por ejemplo por el del Notepad. tambien puedes hacer que el SFX abra un archivo de texto y luego el script/programa.

Saludos.
#9433
Scripting / Re: Registry Hack
7 Febrero 2013, 01:55 AM
nircmd exec hide "Archivo.bat"
#9434
Sí, lo del búcle aleatorío con un margen es lo que se me ocurre a mí.

Cita de: Seazoux en  6 Febrero 2013, 12:13 PMcomo pongo posiciones random en la pantalla

No quiero ofender ni ir de sobrado, ni mucho menos, pero j*der, es que vaya una pregunta más chorra, me vale que no sepas hacerlo... pero creo que algo tán sencillo no cuesta buscarlo.
Google + VBNET random number

Código (vbnet) [Seleccionar]
New Random().Next(min, max)

Tendrías que tener en cuenta si quieres permitir que el usuario pueda mover el raton, entonces los movimientos aleatorios deberían estar sincronizados con el movimiento (del usuario) del ratón/puntero.






Si te surge el problema de que siempre obtienes el mismo número aleatorío en procedimientos, entonces léete esto que me citó $Edu$ en una duda que tuve, y lo entenderás a la primera como hice yo :P:

Cita de: Elektro H.Si declaro la variable "Rando" fuera de la función, funciona, pero precísamente lo que pretendo es ahorrarme la necesidad de declarar la variable fuera de la función.

Cita de: $Edu$para tu duda en si, mirate esto:

http://www.elguille.info/NET/dotnet/random_Next.aspx

Entenderas muchas cosas mas a parte de lo que quieres.
#9435
Cita de: Seazoux en  6 Febrero 2013, 07:38 AMAguie abe como lo pedo hacer, si se puede hacer con Batcho VB.NET o algo?

Sincéramente, esa pregunta me ha reventado, primero porque preguntas como hacerlo con un 600 cuando tienes un Ferrari para manejarte, y segundo por la pregunta tán vaga que es.

Código (vbnet) [Seleccionar]

For
Cursor.Position
Next


Código (vbnet) [Seleccionar]
Label.Location

Estoy por bloquear el post si sigues haciendo preguntas vagas sobre esto, en serio.

Google + VBNET move cursor

PD: En Batch puro no puedes.

Edito: Así que muevo el tema a .NET

Saludos...
#9436
Cita de: _katze_ en  6 Febrero 2013, 07:26 AM
select case

Gracias, pero no creo que un select case me vaya a solucionar el problema:

select case blablabla
case DriveType.ALL
   if name then...
   if label then...
   if size then...
   if type then...
   if freespace then...
   if format then...
case else
   if name then...
   if label then...
   if size then...
   if type then...
   if freespace then...
   if format then...
end case


Lo que quiero es NO tener que repetir las comprobaciones para los dos casos, me gustaría simplificarlo de alguna manera, y para eso necesito ejemplos please!.

saludos
#9437
Muchas gracias al moderador invisible por reabrir el post :)




Ya he encontrado como monitorizar la inserción-extracción de los dispositivos con los WindowsMessages usando la API, pero primero me he puesto a hacer otra función que necesito,
he sacado la idea de aquí: [APORTE] Interceptar Archivos/Directorios USB
(Gracias Kubox)

En la función necesito hacer demasiadas comprobaciones, muchos "IF", ¿Tienen alguna idea para reducir/mejorar este código?:

PD: El problema que tengo es que tengo que hacer las mismas comprobaciones para "ALL", y las mismas comprobaciones para el resto de la enumeración, no sé como hacerlo más simple.

Código (vbnet) [Seleccionar]
 Private Enum DriveType
       ALL
       CDRom = IO.DriveType.CDRom
       Fixed = IO.DriveType.Fixed
       Network = IO.DriveType.Network
       Ram = IO.DriveType.Ram
       Removable = IO.DriveType.Removable
       Unknown = IO.DriveType.Unknown
   End Enum

   Private Function Get_Drives_Info( _
      ByVal DriveType As DriveType, _
      ByVal Name As Boolean, _
      Optional ByVal Label As Boolean = False, _
      Optional ByVal Type As Boolean = False, _
      Optional ByVal Format As Boolean = False, _
      Optional ByVal Size As Boolean = False, _
      Optional ByVal FreeSpace As Boolean = False) As List(Of String)

       Dim Drive_Info_List As New List(Of String)
       Dim Drive_Info As String = Nothing

       For Each Drive In Microsoft.VisualBasic.FileIO.FileSystem.Drives
           If DriveType = DriveType.ALL Then
               If Drive.IsReady = True Then
                   If Name Then Drive_Info += Drive.Name & ";"
                   If Label Then Drive_Info += Drive.VolumeLabel & ";"
                   If Type Then Drive_Info += Drive.DriveType.ToString & ";"
                   If Format Then Drive_Info += Drive.DriveFormat & ";"
                   If Size Then Drive_Info += Drive.TotalSize.ToString & ";"
                   If FreeSpace Then Drive_Info += Drive.TotalFreeSpace & ";"
               End If
           Else
               If Drive.IsReady = True And Drive.DriveType = DriveType Then
                   If Drive.IsReady = True Then
                       If Name Then Drive_Info += Drive.Name & ";"
                       If Label Then Drive_Info += Drive.VolumeLabel & ";"
                       If Type Then Drive_Info += Drive.DriveType.ToString & ";"
                       If Format Then Drive_Info += Drive.DriveFormat & ";"
                       If Size Then Drive_Info += Drive.TotalSize.ToString & ";"
                       If FreeSpace Then Drive_Info += Drive.TotalFreeSpace & ";"
                   End If
               End If
           End If
           If Drive_Info IsNot Nothing Then Drive_Info_List.Add(Drive_Info) : Drive_Info = Nothing
       Next

       Return Drive_Info_List
   End Function


saludos
#9438
@xassiz
No, ese modificador es para la fecha de modificación.

@Tmarmol
Los temas de Batch van en Scripting.

Aquí tienes:
@Echo OFF

:: By Elektro H@cker

FOR /F "Tokens=1-3* Delims= " %%a IN ('Dir /A-D /T:C "*.*" ^| Findstr "../../...."  ^| Find /V "%~nx0"') DO (
Echo [+] "%%d"
Set "Date=%%a"
Call Set "Date=%%Date:/=-%%"
(Call Ren "%%~fd" "%%Date%% %%~nxd") || (
Echo [-] Error renaming file "%%d"
Pause&Exit /B 1
)
)

Pause&Exit /B 0


Saludos.
#9439
La letra de unidad se puede modificar muy fácilmente, y "C:\" no tiene porque ser siempre la unidad principal, en muchos casos es "D:\", y si tu APP depende de rutas del sistema, pues... bueno, irá en el 99,9% de PC's, eso también te lo digo xD.

Espero que no te ofendas pero sincéramente eso de desarrollar una aplicación utilizando "C:\" (o cualquier otra ruta absoluta del sistema) para cosas importantes en lugar de usar la variable que contiene el valor de la letra del disco duro (o de la ruta absoluta del sistema) lo véo muy mala práctica e ineficáz,
usa las variables de Windows, que para algo están. :P

PD: Me alegra haberte podido ayduar.

Un saludo.
#9440
Scripting / Re: Que estoy haciendo mal
5 Febrero 2013, 23:19 PM
1.
DefaultDirName=C:\

Tu instalador sólo funcionará en equipos que dispongan de la unidad C:\, debes usar la constante adecuada:
DefaultDirName={sd}

2.
Source: C:\Numisoftware\Programa\Numisoftware.mde; DestDir: {app}; Flags: ignoreversion

Estás indicando en el directorio de destino la ruta "C:\":
{app} = DefaultDirName = C:\

Entonces haz esto:
Source: C:\Numisoftware\Programa\Numisoftware.mde; DestDir: {app}\Programa\; Flags: ignoreversion

Y eso equivaldría a:
C:\Programa\Numisoftware.mde

Saludos