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

#9041
Código (dos) [Seleccionar]
@echo off
Setlocal enabledelayedexpansion

For %%# in (*.txt) Do (
Set "Registry=%%~n#"
Set "Date=20!Registry:~0,6!"
Set "Time=!Registry:~6,6!"
Set "Ficha=!Registry:~-4!"
Set "Fixed=00 0 00 0 01"
Set "NewRegistry=!Date! !Time! !Ficha! !Fixed!"

Echo Old Registry: !Registry!
Echo New Registry: !NewRegistry!

REM Rename "%%#" "!NewRegistry!%%~x#"
)

Pause&Exit


Output:
Old Registry: 130425075500000001010
New Registry: 20130425 075500 1010 00 0 00 0 01


Confirma que es correcto, porque a mi no me cuadran las cosas, como ves obtengo esto:

20130425 075500 1010 00 0 00 0 01

Pero según tus indicaciones la ficha debería ser "0101"

Deberías especificar cual es el registro fijo de este string: 130425075500000001010

Yo he asumido que la ficha eran los últimos 4 dígitos, pero quizás haya que eliminar el último dígito y coger los ultimos 4, entonces modifica esta línea:
Set "Ficha=!Registry:~-4!"
Por esta otra:
Set "Ficha=!Registry:~-5!" & Set "Ficha=!Ficha:~0,4!"

Así obtienes exáctamente el nuevo registro, pero como no sé la estructura del antiguo registro... no sé si es lo correcto.

Saludos!
#9042
Muchos detalles, pero falta el más importante... ¿Para Linux o para Windows?, vale, acabo de leer lo del Notepad, a no ser que uses Wine para abrir el notepad en Linux me imagino que trabajs en Windows, haz el favor de especificar el detalle cuando formules preguntas.
#9043
@Meine programmen
EDLIN es para XP


@tiernohack
Puedes crear un procedimiento para setear una variable añadiendo el texto que contienen los archivos, te pongo un ejemplo:

Código (dos) [Seleccionar]

@echo off

Set "String="

REM Call :Append_String STRING_or_TEXTFILE

Call :Append_String "1.txt"
Call :Append_String "como_estas"
Call :Append_String "2.txt"

Echo %String%
Echo %String%>"Resp.txt"
Pause&Exit

:Append_String
If Not Exist "%~1" (
Set "String=%String%%~1"
) ELSE (
For /F "Usebackq Delims=" %%# in ("%~1") Do (
Call Set "String=%%String%%%%#"
)
)

GOTO:EOF



Output:
holacomo_estaschao
Presione una tecla para continuar . . .


#9044
Scripting / Re: Ayuda con batch
30 Abril 2013, 12:18 PM
@Kriminal_27
Lee las indicaciones de mi firma para no estar editando todos tus mensajes.

Un saludo!
#9045
Es muy sencillo, indexa las imágenes por ejemplo en un diccionario, y las cargas.

[youtube=640,360]http://www.youtube.com/watch?v=PJMIri5WSi4&feature=youtu.be[/youtube]

Source:
Código (vbnet) [Seleccionar]
Public Class Form1

    Dim ImageList As New Dictionary(Of Int32, String)
    Dim ImageIndex As Int32 = 0
    Dim TotalImages As Int32 = 0

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Load_ImageList()
    End Sub

    ' Botón "Anterior"
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If Not ImageIndex = 1 Then
            ImageIndex -= 1
            PictureBox1.BackgroundImage = Image.FromFile(ImageList.Item(ImageIndex))
        End If
    End Sub

    ' Botón "Siguiente"
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If Not ImageIndex = TotalImages Then
            ImageIndex += 1
            PictureBox1.BackgroundImage = Image.FromFile(ImageList.Item(ImageIndex))
        End If
    End Sub

    Private Sub Load_ImageList()
        ImageList.Add(1, "F:\Customización\Wallpapers\Animated\[AnimePaper]wallpapers_Bleach_Cilou(1.33)_1280x960_64991.jpg")
        ImageList.Add(2, "F:\Customización\Wallpapers\Animated\0f61391cfd811f6cf57cf74b9fb00211.jpg")
        ImageList.Add(3, "F:\Customización\Wallpapers\Animated\dragon_ball_z_broly_1771x1154_wallpaper_Wallpaper_1920x1440_www.wall321.com.jpg")
        ImageList.Add(4, "F:\Customización\Wallpapers\Girls (Fantasy)\2.jpg")
        ImageList.Add(5, "F:\Customización\Wallpapers\Girls (Fantasy)\7k982aivf38npdom4ol22653m15074a52c3a33c.jpg")
        TotalImages = ImageList.Count
    End Sub

End Class

#9046
Scripting / Re: Uso del && y || en batch
30 Abril 2013, 11:48 AM
Cita de: Stealt en 25 Abril 2013, 14:12 PMQue windows trabaja a un nivel mas bajo que linux y tal...

Que Batch séa un "retrasado" no significa que la shell de Linux séa increíblemente superior a la de Windows, Windows además de Batch también dispone el uso nativo de VisualBasicScript, Jscript, y Powershell, puedes hacer de todo. Si no me equivoco Linux solo dispone de Bash como lenguaje nativo (No lo sé seguro pero...), así que tu me dirás.

saludos!
#9047
Una solución sencilla de usar:

Código (vbnet) [Seleccionar]
    #Region " Trial Period Function "
     
       ' [ Trial Period Function ]
       '
       ' Examples :
       ' Trial_Get(Trial_value.As_Boolean)
       ' MsgBox(String.Format("You have {0} day(s) remaining.", Trial_Get(Trial_value.As_LeftDays)))
     
       Public Enum Trial_value
           As_Boolean
           As_LeftDays
           As_CountDays
       End Enum
     
       ' Trial Period [Get]
       Public Function Trial_Get(ByVal Trial_value As Trial_value)
           'My.Settings.Reset() 'If you want to reset the trial period
           Dim TrialCount As Integer = 0
           TrialCount += 1
           Return Trial_CheckDate(Date.Now.AddDays(TrialCount), Trial_value)
       End Function
     
       ' Trial Period [CheckDate]
       Public Function Trial_CheckDate(ByVal Trial_DateToCheck As Date, ByVal Trial_value As Trial_value)
     
           Dim Trial_retValue As Boolean = False ' Fail safe, default to false
           Dim Trial_usageDatesLeft As Int16 = 7 ' Set here the number of days of Trial period
           Dim Trial_hashedDate As String = Trial_HashDate(Trial_DateToCheck)
     
           If My.Settings.Trial_Period Is Nothing Then My.Settings.Trial_Period = New System.Collections.Specialized.StringCollection
     
           If My.Settings.Trial_Period.Contains(Trial_hashedDate) Then
               Trial_retValue = True
               Trial_usageDatesLeft = CShort(Trial_usageDatesLeft - My.Settings.Trial_Period.Count)
               If Trial_usageDatesLeft <= 0 AndAlso My.Settings.Trial_Period.IndexOf(Trial_hashedDate) <> My.Settings.Trial_Period.Count - 1 Then Trial_retValue = False
           Else
               If My.Settings.Trial_Period.Count < Trial_usageDatesLeft Then My.Settings.Trial_Period.Add(Trial_hashedDate)
               Trial_usageDatesLeft = CShort(Trial_usageDatesLeft - My.Settings.Trial_Period.Count)
               If Trial_usageDatesLeft > 0 Then Trial_retValue = True Else Trial_retValue = False
           End If
     
           Select Case Trial_value
               Case Trial_value.As_Boolean : Return Trial_retValue ' If False then Trial Period is expired
               Case Trial_value.As_LeftDays : Return Trial_usageDatesLeft ' Days left
               Case Trial_value.As_CountDays : Return My.Settings.Trial_Period.Count ' Count days
               Case Else : Return Nothing
           End Select
     
       End Function
     
       ' Trial Period [HashDate]
       Public Function Trial_HashDate(ByVal Trial_DateToHash As Date) As String
           Dim Trial_Hasher As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create()
           Dim Trial_Data As Byte() = Trial_Hasher.ComputeHash(System.Text.Encoding.Default.GetBytes(Trial_DateToHash.ToLongDateString()))
           Dim Trial_StringBuilder As New System.Text.StringBuilder()
           Dim Trial_IDX As Integer
           For Trial_IDX = 0 To Trial_Data.Length - 1 : Trial_StringBuilder.Append(Trial_Data(Trial_IDX).ToString("x2")) : Next Trial_IDX
           Return Trial_StringBuilder.ToString
       End Function
     
    #End Region



Aquí tienes más snippets interesantes: http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html
#9048
Claro, no puedes iniciar un servicio que ya se encuentra iniciado, ni detener uno que ya está detenido.

De todas formas no dás ningún detalle acerca del error, solo dices que "falla", podrías haber mostrado la excepción porque no somos magos para adivinar lo que ocurre.

Pero deduzco que el problema es ese porque en tu código no compruebas el estado del servicio. solo puede ser eso, o que el servicio no se pueda detener por alguna dependencia.

Usa un convertidor online de VBNET a C# con esta función que hice, y listo:

Código (vbnet) [Seleccionar]
#Region " Change Service Status "

    ' [ Change Service Status Function ]
    '
    ' // By Elektro H@cker
    '
    ' Instructions :
    ' Add a reference for "System.ServiceProcess"
    '
    ' Examples :
    ' MsgBox(Change_Service_Status("Temas", Service.StopIt))
    ' MsgBox(Change_Service_Status("Temas", Service.RunIt, True))

    Public Enum Service
        RunIt = True
        StopIt = False
    End Enum

    Function Change_Service_Status(ByVal ServiceName As String, _
                                   ByVal Run As Service, _
                                   Optional Wait As Boolean = False) As Boolean

        Try
            Dim Service As New System.ServiceProcess.ServiceController(ServiceName)

            Select Case Service.Status
                Case System.ServiceProcess.ServiceControllerStatus.Stopped And Run
                    Service.Start()
                    If Wait Then Service.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running)
                Case System.ServiceProcess.ServiceControllerStatus.Running And Not Run
                    Service.Stop()
                    If Wait Then Service.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped)
            End Select

            Service.Dispose()
            Return True

        Catch ex As Exception
            ' Throw New Exception(ex.Message)
            Return False
        End Try

    End Function

#End Region



Saludos.
#9049
Al final probando cosas he conseguido hacer el código:

@Echo OFF
Setlocal enabledelayedexpansion


Set "Name=ElektroSoft"
Set "Password=Elektro"
Set "InitialDate=01/01/2013"
Set "ExpireDate=01/01/2050"
Set "SerialNumber=%Random%%Random%%Random%%Random%%Random%"


:: Make certificate
makecert -r -pe -a sha1 -n "CN=%Name%" -b "%InitialDate%" -e "%ExpireDate%" -$ individual -sr LocalMachine -ss my -cy authority -# "%SerialNumber%" "%Name%.cer"


:: Export certificate
For /F "Tokens=2 delims=:" %%# in ('certutil -store my') DO (
if "%%#" NEQ " CN=%Name%" (Set "SerialNumberHash=%%#") ELSE (
certutil -exportPFX -p "%Password%" my "!SerialNumberHash: =!" "%Name%.pfx"
Pause&Exit))


:: Check certificate
REM certutil -store my


:: Delete certificate
REM certutil -delstore MY "%Name%"



saludos :)
#9050
OMG!

No me gusta criticar los códigos de los demás pero te has pasado!, desde luego esa no es la manera de hacer las cosas bien...

Ya que vas a usar todo el alfabeto, te recomiendo que lo primero de todo definas el valor de cada letra y lo guardes en algún sitio...así lo tendrás más ordenado y mayor control si luego quieres cambiar algún número...

Prueba de esta manera:

Código (vbnet) [Seleccionar]
Public Class Form1


   Dim Alphabet As New Dictionary(Of String, Int16)


   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

       TextBox1.Text "abcdef"

       Alphabet.Add("a", 5)
       Alphabet.Add("b", 9)
       Alphabet.Add("c", 4)
       Alphabet.Add("d", 1)
       Alphabet.Add("e", 3)
       Alphabet.Add("f", 0)
      ' Alphabet.add(...

   End Sub


   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For Each Character As String In TextBox1.Text
            TextBox1.Text = Replace(TextBox1.Text, Character, Alphabet.Item(Character))
        Next
   End Sub


End Class


Saludos!