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 - **Aincrad**

#261
Scripting / Re: Eliminar lineas archivo txt
15 Noviembre 2018, 00:02 AM
Hubieras Simplemente dicho esto sin rodeos desde un principio, toma :

Código (bash) [Seleccionar]
@echo off
:inicio
cls
color a
dir /b prestamos\*.txt | findstr /n ".txt$"                                 
(for %%x in (prestamos\*.txt) do set /a a+=1)
echo/
echo      Libros Actuales:  %a%
echo/
echo Que libro desea devolver?
echo/
set /p libro=   
if not defined libro (goto:inicio) >NUL
if not exist prestamos\%libro%.txt (goto:inicio) >NUL
move .\prestamos\%libro%.txt .\libros\%libro%.txt

:log
if exist prestamos.txt del prestamos.txt
for %%i in ("prestamos\*.txt") do (
        echo %%~nxi
        type %%i
        echo/
        echo/
    )>> prestamos.txt
goto :Eof


Esto si te lo deja asi :

libro8.txt
Zakaria 2
13/11/2018 | 14:03:08,39


Nota: Si queréis eliminarle el .txt hazlo tu ya te he hecho bastante.


#262
Scripting / Re: Eliminar lineas archivo txt
14 Noviembre 2018, 20:21 PM
Lo que entendí es que tienes un archivo "Prestamo.txt" en la cual están registrados los libros tales como :

libro6
Zakaria
13/11/2018 | 14:02:36,75

libro7
Zakaria
13/11/2018 | 14:03:08,39


Lo que quieres con el Bat es que cuando Muevas el Libro6.txt también se borre del "Prestamo.txt" . Bueno hay varias maneras (Complicadas) de hacer esto.

1) La Primera es Buscar en "Prestamo.txt" la Palabra "Libro6" y eliminar esa linea con las dos de abajo que le siguen. así quedaría solo el LIBRO7.

2) La Segunda es Modificar el Log que te hice en el código anterior, una manera simple y sencilla


Bueno hare la segunda manera , me es mas facil.





Toma:

Código (bash) [Seleccionar]
@echo off
:inicio
cls
color a
dir /b prestamos\*.txt | findstr /n ".txt$"                                 
(for %%x in (prestamos\*.txt) do set /a a+=1)
echo/
echo      Libros Actuales:  %a%
echo/
echo Que libro desea devolver?
echo/
set /p libro=   
if not defined libro (goto:inicio) >NUL
if not exist prestamos\%libro%.txt (goto:inicio) >NUL
move .\prestamos\%libro%.txt .\libros\%libro%.txt

:log
if exist prestamos.txt del prestamos.txt
For %%i in (prestamos\*.txt) do (echo %%i & type %%i & echo/ & echo/ ) >> prestamos.txt
goto :Eof


#263
Scripting / Re: Eliminar lineas archivo txt
14 Noviembre 2018, 01:57 AM
Ese Echo no te borra nada , mas bien lanza error en la sintaxis. de hecho no hace nada mas que mostrar error. y el libro si se mueve. de la carpeta prestamos a la carpeta libros. Plantea mejor tu duda. y con gusto te ayudo.




No entendí tu duda pero supongo que lo que querías era hacer un log de los archivos que quedan en la carpeta prestamos , y ademas te faltan agregar algunos condicionales ; por ejemplo en la parte que te pregunta Que libro desea Devolver?

1) si no pones nada y sigues te dará error.
2) Si el archivo no existe, también te dará error.


Bueno de todos modos aquí esta :

Código (bash) [Seleccionar]
@echo off
:inicio
cls
color a
dir /b prestamos\*.txt | findstr /n ".txt$"                                
(for %%x in (prestamos\*.txt) do set /a a+=1)
echo/
echo      Libros Actuales:  %a%
echo/
echo Que libro desea devolver?
echo/
set /p libro=  
if not defined libro (goto:inicio) >NUL
if not exist prestamos\%libro%.txt (goto:inicio) >NUL
move .\prestamos\%libro%.txt .\libros\%libro%.txt
if exist prestamos.txt del prestamos.txt
For %%i in (prestamos\*.txt) do echo %%i >> prestamos.txt
pause


Salida :



#264
Cita de: gundream en 31 Octubre 2018, 21:38 PM
Realmente te vas a cagar de la risa como Windows en otra versión no tenga los nombres
de tipo de archivo que has puesto en la solución.  :¬¬

sheett, no se lo digas a nadie , eso fue un extra :V asdasdasd. En Win 10 . cuando ejecuto la solución no restaura la clase .exe por que los nombres de la clase no son iguales a WIN7, por lo tanto windows no los reconocerá y se abrirán así : (por ejemplo) :

#265
Hola, Bueno mi duda es como haría yo para Sobreponer Un formulario encima de un juego Direcx En pantalla Completa, El compañero @Elektro lo logro con la api de SharpDX, Bueno yo he logrado casi lo mismo pero Con una api Direxc , he logrado hasta ahora sobreponer texto y dibujar en juegos en pantalla completa que usan direcx 9 ,  Ya puedo Simplemente dibujar un menu d3d y listo creo las funciones y hago un hack, pero no logro ni tengo idea de como sobreponer el Formulario. Necesito ayuda en eso.

La api que estoy usando :

DX9-Overlay-API

Documentación




Bueno y como siempre, yo no planteo nada sin algo de codigo :

Wrapper :

DX9Overlay.vb --- Clase


Código (vbnet) [Seleccionar]
Imports System
Imports System.Runtime.InteropServices

Namespace DX9OverlayAPI
   Class DX9Overlay
       Public Const PATH As String = "dx9_overlay.dll"
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextCreate(ByVal font As String, ByVal fontSize As Integer, ByVal bBold As Boolean, ByVal bItalic As Boolean, ByVal x As Integer, ByVal y As Integer, ByVal color As UInteger, ByVal text As String, ByVal bShadow As Boolean, ByVal bShow As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl, CharSet:=CharSet.Unicode)>
       Public Shared Function TextCreateUnicode(ByVal font As String, ByVal fontSize As Integer, ByVal bBold As Boolean, ByVal bItalic As Boolean, ByVal x As Integer, ByVal y As Integer, ByVal color As UInteger, ByVal text As String, ByVal bShadow As Boolean, ByVal bShow As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextDestroy(ByVal id As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextSetShadow(ByVal id As Integer, ByVal b As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextSetShown(ByVal id As Integer, ByVal b As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextSetColor(ByVal id As Integer, ByVal color As UInteger) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextSetPos(ByVal id As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextSetString(ByVal id As Integer, ByVal str As String) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl, CharSet:=CharSet.Unicode)>
       Public Shared Function TextSetStringUnicode(ByVal id As Integer, ByVal str As String) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function TextUpdate(ByVal id As Integer, ByVal font As String, ByVal fontSize As Integer, ByVal bBold As Boolean, ByVal bItalic As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl, CharSet:=CharSet.Unicode)>
       Public Shared Function TextUpdateUnicode(ByVal id As Integer, ByVal font As String, ByVal fontSize As Integer, ByVal bBold As Boolean, ByVal bItalic As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxCreate(ByVal x As Integer, ByVal y As Integer, ByVal w As Integer, ByVal h As Integer, ByVal dwColor As UInteger, ByVal bShow As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxDestroy(ByVal id As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxSetShown(ByVal id As Integer, ByVal bShown As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxSetBorder(ByVal id As Integer, ByVal height As Integer, ByVal bShown As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxSetBorderColor(ByVal id As Integer, ByVal dwColor As UInteger) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxSetColor(ByVal id As Integer, ByVal dwColor As UInteger) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxSetHeight(ByVal id As Integer, ByVal height As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxSetPos(ByVal id As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function BoxSetWidth(ByVal id As Integer, ByVal width As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function LineCreate(ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer, ByVal width As Integer, ByVal color As UInteger, ByVal bShow As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function LineDestroy(ByVal id As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function LineSetShown(ByVal id As Integer, ByVal bShown As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function LineSetColor(ByVal id As Integer, ByVal color As UInteger) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function LineSetWidth(ByVal id As Integer, ByVal width As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function LineSetPos(ByVal id As Integer, ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function ImageCreate(ByVal path As String, ByVal x As Integer, ByVal y As Integer, ByVal rotation As Integer, ByVal align As Integer, ByVal bShow As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function ImageDestroy(ByVal id As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function ImageSetShown(ByVal id As Integer, ByVal bShown As Boolean) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function ImageSetAlign(ByVal id As Integer, ByVal align As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function ImageSetPos(ByVal id As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function ImageSetRotation(ByVal id As Integer, ByVal rotation As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function DestroyAllVisual() As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function ShowAllVisual() As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function HideAllVisual() As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function GetFrameRate() As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function GetScreenSpecs(<Out> ByRef width As Integer, <Out> ByRef height As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function SetCalculationRatio(ByVal width As Integer, ByVal height As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function SetOverlayPriority(ByVal id As Integer, ByVal priority As Integer) As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Function Init() As Integer
       End Function
       <DllImport(PATH, CallingConvention:=CallingConvention.Cdecl)>
       Public Shared Sub SetParam(ByVal _szParamName As String, ByVal _szParamValue As String)
       End Sub
   End Class
End Namespace


En el Form1, Un ejemplo de como Dibujar texto, Cuadro o linea :

Código (vbnet) [Seleccionar]
Imports System
Imports DX9OverlayAPI

Public Class Form1

   Shared overlayText As Integer = -1
   Shared overlayBox As Integer = -1
   Shared overlayLine As Integer = -1

   Private Sub texto()
       DX9Overlay.SetParam("process", "hl2.exe")
       DX9Overlay.DestroyAllVisual()
       overlayText = DX9Overlay.TextCreateUnicode("Arial", 12, False, False, 200, 200, 4278255615, "Hello world!", True, True)
   End Sub

   Private Sub linea()
       DX9Overlay.SetParam("process", "hl2.exe")
       DX9Overlay.DestroyAllVisual()
       overlayLine = DX9Overlay.LineCreate(0, 0, 300, 300, 5, 4294967295, True)
   End Sub

   Private Sub caja()
       DX9Overlay.SetParam("process", "hl2.exe")
       DX9Overlay.DestroyAllVisual()
       overlayBox = DX9Overlay.BoxCreate(200, 200, 100, 100, 1358889215, True)
   End Sub

   Private Sub eliminarTodo()
       DX9Overlay.TextDestroy(overlayText)
       DX9Overlay.BoxDestroy(overlayBox)
       DX9Overlay.LineDestroy(overlayLine)
   End Sub

End Class






Y bueno la .DLL no la agregan a referencias, solo la colocan en donde esta su .exe . osea en la carpeta .\bin\Debug\  DLL

Gracias de antemano, solo quiero superponer el Formulario no dibujar y no se como hacer eso.


PD : @Elektro Pasaste de Mod. Global a Colaborador? como @Shell Root? Colaborador no es un rango menor al q tenias? , que paso? tu eres el que mas ayuda al foro y te bajan de rango. están bien pendejos.

#266
El problema era q no mataba el proceso, Bueno aqui esta
(Funcionando correctamente en Win7 32bits y 64 bits) ,  Me avisas si te sirvió.

Código (bash) [Seleccionar]
@echo off

REM .bat con permisos de administrador
:-------------------------------------
REM  --> Analizando los permisos
    IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)

REM --> Si hay error es que no hay permisos de administrador.
if '%errorlevel%' NEQ '0' (
    echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:-------------------------------------- 

REM   
ECHO.
if %PROCESSOR_ARCHITECTURE%==x86 (goto Uni32bit) else if %PROCESSOR_ARCHITECTURE%==AMD64 (goto Uni64bit)

:Uni32bit
goto Condicional

:Uni64bit
net user administrador /active:yes
goto Condicional


:Condicional
tasklist | find /i "JAHER.exe" && (
TASKKILL /IM "JAHER.exe" /F
echo Proceso Encontrado y Terminado, Procedemos a eliminar la carpeta . . .
goto delete
) || (
echo Proceso no Abierto Procedemos a eliminar la carpeta . . .
)
goto delete

:delete
cls
color a
cd "%PROGRAMFILES%"
set Folder=JAHER

if exist %folder% (
RD /S /Q %Folder%
echo La Carpeta %folder% Fue Eliminada.
pause
DEL /F /Q %0
) else (
echo La Carpeta no existe.
pause
DEL /F /Q %0
)

exit
#267
Y como aplico ese ejemplo al mio? es que tengo una base de datos XML grande.

Código (vbnet) [Seleccionar]
Dim xml = <?xml version="1.0"?>
              <signatures>
                  <signature>
                      <name>Archivo1</name>
                      <hex>58354f2150254041505b345c505a58353428505e2937434329377d2445494341522d5354414e4441</hex>
                  </signature>
                  <signature>
                      <name>Archivo2</name>
                      <hex>f649e7cc1e00d37e7f3bc85fff3486ac6de91433aa3a39ef1b114d37b534b8323f6ff67132638a3fe2f2afb4aaf9b7e3b4669bb3cab028298aab533c5d73546cdd396fd58c2c7734c50bca68eb709b889a086fb3db5f8ae533a4d5816e8c5f560983695efa14e291c204b1316e657773</hex>
                  </signature>
              </signatures>


#268
Bueno hola foro, Como dice el titulo, tengo un Escanear Hexadecimal para identificar archivos, Pero es lento y segun me he documentado se puede mejorar si :

1) Convierto la cadena Hex a Bytes.

2) Obtengo los Bytes del archivo .

4) Comparo la Cadena Hex convertida a Bytes con los Bytes del archivo.





Bueno ahora lo que tengo hecho hasta ahora :


Cadena Hex Almacenada en una variable XML:

Código (vbnet) [Seleccionar]
Dim xml = <?xml version="1.0"?>
             <signatures>
                 <signature>
                     <name>Archivo1</name>
                     <hex>58354f2150254041505b345c505a58353428505e2937434329377d2445494341522d5354414e4441</hex>
                 </signature>
                 <signature>
                     <name>Archivo2</name>
                     <hex>f649e7cc1e00d37e7f3bc85fff3486ac6de91433aa3a39ef1b114d37b534b8323f6ff67132638a3fe2f2afb4aaf9b7e3b4669bb3cab028298aab533c5d73546cdd396fd58c2c7734c50bca68eb709b889a086fb3db5f8ae533a4d5816e8c5f560983695efa14e291c204b1316e657773</hex>
                 </signature>
             </signatures>


Aquí el código para leer el XML y Convertirlo a Bytes:

Código (vbnet) [Seleccionar]
Private Sub hexttoBytes()
       Dim Str As New StringBuilder
       For Each signature As XElement In xml.Root.Elements

           stringToByteArray(signature.<hex>.Value)

       Next

   End Sub

   Public Shared Function stringToByteArray(text As String) As Byte()
       Dim bytes As Byte() = New Byte(text.Length \ 2 - 1) {}

       For i As Integer = 0 To text.Length - 1 Step 2
           bytes(i \ 2) = Byte.Parse(text(i).ToString() & text(i + 1).ToString(), System.Globalization.NumberStyles.HexNumber)
       Next

       Return bytes
   End Function



Aquí el código para Obtener los Bytes del archivo a comparar

Código (vbnet) [Seleccionar]
 ' Opendia IS OPENFILEDIALOG
       Dim result As DialogResult = OpenDia.ShowDialog()


       If result = Windows.Forms.DialogResult.OK Then


           Dim path As String = OpenDia.FileName
           Try

               Dim bytesFile As Byte() = File.ReadAllBytes(path)
           
               ' BytesFile es donde se almacenan Los Bytes del archivo a comparar
               ' Necesito saber Como los Comparo con los Otros Bytes que antes eran HEX

           Catch ex As Exception

               MsgBox(ex.Message)

           End Try
       End If






AHORA LAS DUDAS, SEGÚN LO QUE TENGO ECHO ,  No logro Como hacer Para Comparar los Bytes que antes eran HEX con los Bytes del archivo. Lo que quiero lograr seria algo como esto :

Código (vbnet) [Seleccionar]
'Donde BytesFiles es el Archivo y BytesHex eran la Cadena Hex que ahora son Bytes
' En caso de que los Bytes sean Iguales. lanza el mensaje de que encontró el archivo o no.
If bytesFile = BytesHex then
Msgbox("Archivo Coincide")
else
Msgbox("Archivo No Coincide")
end if


Gracias De Antemano

#269
Ya te lo explicaron arriba pero de todos modos toma :

Código (bash) [Seleccionar]
@echo off
  (
     echo ^<html^>
     echo ^<Hola cualquier cosa aqui^>
  ) >> archivo.html


#270
Scripting / Re: PEQUEÑO ENCRIPTADOR EN BATCH
7 Octubre 2018, 22:16 PM
No Revivir post Antiguos!




No se para que te molestas en crear cosas q ya están creadas, pero bueno:

[BATCH] Encriptador & Desencriptador de Texto v1.5

BatOfuser