|
773
|
Programación / .NET (C#, VB.NET, ASP) / ¿Como monitorizar unidades de dispositivos PENDRIVE?
|
en: 1 Febrero 2013, 23:44 pm
|
Bueno, llevo tiempo intentando hacer una aplicación para monitorizar pendrives (en modo oculto) y copiar todos los datos A OTRO PENDRIVESólo tengo hecha un poco la interfaz y cuatro tonterías más. PD: Es un WPF, por si tiene importancia.  Para avanzar en la aplicación, necesito información sobre: - como monitorizar las unidades que se conectan al PC (Tando su inserción como su extracción)
- saber si el mismo método de monitorización serviría para Win XP / VISTA / 7 (si se tuviera que monitorizar con APIs...)
- como saber si la unidad conectada se trata de un pendrive
- como obtener la letra del pendrive conectado, la etiqueta (nombre/label), entre otros datos útiles que se puedan obtener sobre el dispositivo conectado.
PD: Imagino que para lo penúltimo y último podría usar WMI, ¿NO?, no sé si quizás habrá algo más sencillo/rápido/eficaz... Y por último, para este proyecto necesito una ayudita en este post: Como aplicar cambios al registro y refrescar el sistema sin tener que reiniciar?Gracias por leer.
|
|
|
774
|
Programación / .NET (C#, VB.NET, ASP) / [APORTE] Filmen (versión ALPHA sin terminar)
|
en: 1 Febrero 2013, 23:05 pm
|
By Elektro H@ckerEsta aplicación es un organizador de películas, se distingue de entre otros organizadores por sus opciones particulares y digamos "avanzadas", tiene pocas opciones porque son las únicas que necesito yo, así de claro xD, aunque no me importaría añadir alguna opción más si alguien me sugiere alguna y me pareciera interesante y útil. Bueno, aunque en las imagenes ponga "versión 1.0", lo cierto es que es una versión alpha y no está acabada, pero llevo 2 meses con este proyecto y creo que ya va siendo hora de compartirlo, porque hay muchas cosas por mejorar tanto en el diseño como en la estructura dle código, y alguna función por acabar (como la de lanzar un script), pero no hay errores por arreglar (al menos ningún arreglo de un fallo grave), es un programa "usable" aunque no esté acabado todavía, así que lo empiezo a compartir para que testeen y la prueben con gusto, y cuando avanze bastante más con la APP ya actualizaré el post... Acepto ideas o sugerencias, consejos, críticas constructivas (pero tengan en cuenta que la APP no está acabada...), bugs, y lo que séa será bien recibido! Gracias por leer. PD: Y gracias en especial a Kubox por las enseñanzas que me dió para poder hacer esta aplicación. Descarga: http://ElektroStudios.tk/Filmen.rar
Imagenes:    
Y para los programadores más exquisitos, aquí dejo la versión de la aplicación que tenia hecha en Batch xD (es lo que me motivó a hacer la APP  ): @Echo OFF Title Film Organizer v2.0 REM by Elektro H@cker Mode con cols=90 lines=50 chcp 1252 >NUL color 07
:: ########################### :: ### Film Organizer v2.0 ### :: ########################### :: :: FASES: :: :: 1. Elimina los atributos de los archivos. :: (oculto, sistema, solo lectura, indizado, almacenamiento) :: :: 2. Genera listas de reproducción. :: :: 3. Busca pistas de audio AC-3, DTS, y WAV. :: :: 4. Busca videos con multipistas de audio. :: :: 5. Elimina los metadatos de los videos.
SET "VIDEOS=F:\Videos" SET "DOCUMENTALES=F:\Videos\Documentales" SET "PELIS_REAL=F:\Videos\Películas\Acción real" SET "PELIS_ANIM=F:\Videos\Películas\Animación" SET "SERIES=F:\Videos\Series" SET "SERIES_REAL=F:\Videos\Series\Acción real" SET "SERIES_ANIM=F:\Videos\Series\Animación"
Set "FORMATS=*.avi;*.divx;*.flv;*.mkv;*.mp4;*.mpg;*.mpeg;*.ogm;*.wmv"
Set "APPS=Colous.exe DetectDuplicates.exe MediaInfo.exe NirCMD.exe"
:::::::::::::::::::::: :: :: :: FASE 0 :: :: :: :: COMPROBACIONES :: ::::::::::::::::::::::
:COMPROBACIONES :::::::::::::::
CALL :LOGO "0" "COMPROBACIONES"
Echo+ Echo+ Echo: [+] Comprobando carpetas ... | MORE | MORE
(For /R %%a in (*) do (call set /A "FILM_FILES_TOTAL+=1"))
PUSHD "%DOCUMENTALES%" || (Call :ERROR_FOLDER "%DOCUMENTALES%") For /D %%a in (*) do (call set /A "SUBFOLDER_FILM_TOTAL+=1") Colous writesec "[10]OK[7] %DOCUMENTALES%"
PUSHD "%PELIS_REAL%" || (Call :ERROR_FOLDER "%PELIS_REAL%") For /D %%a in (*) do (call set /A "SUBFOLDER_FILM_TOTAL+=1") Colous writesec "[10]OK[7] %PELIS_REAL%"
PUSHD "%PELIS_ANIM%" || (Call :ERROR_FOLDER "%PELIS_ANIM%") For /D %%a in (*) do (call set /A "SUBFOLDER_FILM_TOTAL+=1") Colous writesec "[10]OK[7] %PELIS_ANIM%"
PUSHD "%SERIES%" || (Call :ERROR_FOLDER "%SERIES%") For /D %%a in (*) do (call set /A "SUBFOLDER_FILM_SERIES_TOTAL+=1") Colous writesec "[10]OK[7] %SERIES%"
PUSHD "%SERIES_REAL%" || (Call :ERROR_FOLDER "%SERIES_REAL%") For /D %%a in (*) do (call set /A "SUBFOLDER_FILM_TOTAL+=1") Colous writesec "[10]OK[7] %SERIES_REAL%"
PUSHD "%SERIES_ANIM%" || (Call :ERROR_FOLDER "%SERIES_ANIM%") For /D %%a in (*) do (call set /A "SUBFOLDER_FILM_TOTAL+=1") Colous writesec "[10]OK[7] %SERIES_ANIM%"
Echo+ Echo+ Echo: [+] Comprobando aplicaciones ... | MORE | MORE FOR %%A IN (%APPS%) DO ( If not exist "%WINDIR%\System32\%%A" ( Colous writesec "[12] ERROR CRITICO" Echo. Colous writesec "[7] No se encuentra la aplicacion: [14]%*" Echo. | MORE Colous writesec "[8] Presione una tecla para salir del programa..." Pause >nul Exit ) ELSE ( Colous writesec "[10]OK[7] %%A" ) ) CALL :OK
:::::::::::::::::::::: :: :: :: FASE 1 :: :: :: :: ATRIBUTOS :: ::::::::::::::::::::::
:ATRIBUTOS ::::::::::
CALL :LOGO "1" "ATRIBUTOS" Echo: [+] Eliminando los atributos de los archivos ... | MORE | MORE Echo: Porfavor, espere... | MORE PUSHD "%VIDEOS%" || (Call :ERROR_FOLDER "%VIDEOS%") For /D %%a in (*) do ( Call Colous Writesec "[7][10]OK[7] %%a" Echo+ attrib -A -R -S -H -I /S "%%a\*.*" >nul ) attrib +H /S "*.ico" >nul attrib +H -R /S "*.ini" >nul CALL :OK
:::::::::::::::: :: :: :: FASE 2 :: :: :: ::::::::::::::::
:Playlist :::::::::
CALL :LOGO "2" "PLAYLISTS" Set /A "FOLDER_COUNT=0" Echo: [+] Generando listas de reproduccion ... | MORE | MORE
PUSHD "%SERIES%" || (Call :ERROR_FOLDER "%SERIES%")
For /D %%a in (*) do ( Call Set /A "FOLDER_COUNT+=1" Call Colous Writesec "[2] (%%FOLDER_COUNT%% de %%SUBFOLDER_FILM_SERIES_TOTAL%%): [7]%%a" PUSHD "%%a" Echo+ For /F "Tokens=*" %%a in ('Dir /B /AD') Do ( Call Colous Writesec "[6] %%a" PUSHD "%%a" if /I exist "*Temporada" ( For /F "Tokens=*" %%z in ('Dir /B /AD') Do ( Echo #EXTM3U>".\%%z\_%%a %%z.m3u" For /F "Tokens=*" %%j in ('dir /B /A-D-H ".\%%z\" ^| find /V /i ".m3u"') Do (Echo .\%%j>> ".\%%z\_%%a %%z.m3u") REM Start /B cmd /C "".\%%z\_%%a %%z.m3u"" ) ) ELSE ( Echo #EXTM3U>"_%%a TODO.m3u" For /F "Tokens=*" %%x in ('dir /B /A-D-H ^| find /V /i ".m3u"') Do (Echo .\%%x>>"_%%a TODO.m3u") REM Start /B cmd /C ""_%%a TODO.m3u"" ) POPD ) POPD Echo+
) CALL :OK
:::::::::::::::: :: :: :: FASE 3 :: :: :: ::::::::::::::::
:AC3 ::::
CALL :LOGO "3" "AC-3, DTS, WAV" Set /A "FOLDER_COUNT=0" Echo: [+] Buscando pistas AC-3, DTS y WAV ... | MORE | MORE PUSHD "%VIDEOS%" || (Call :ERROR_FOLDER "%VIDEOS%") DEL /Q "%TEMP%\pista_ac3_dts_wav.txt" >NUL 2>&1
For /R %%_ in (%FORMATS%) do ( Call Set /A "FOLDER_COUNT+=1" Mediainfo "%%_" | FIND /I /V "Movie name" | FINDSTR /I "AC-3 DTS WAV" >NUL && Mediainfo "%%_" >> "%TEMP%\pista_ac3_dts_wav.txt" && ( Call Colous Writesec "[12] (%%FOLDER_COUNT%% de %%FILM_FILES_TOTAL%%): [6] %%~nx_" ) || (Call Colous Writesec "[2] (%%FOLDER_COUNT%% de %%FILM_FILES_TOTAL%%): [7]%%~nx_") )
If exist "%TEMP%\pista_ac3_dts_wav.txt" (start /B notepad "%TEMP%\pista_ac3_dts_wav.txt") CALL :OK
:::::::::::::::: :: :: :: FASE 4 :: :: :: ::::::::::::::::
:MULTIPISTA :::::::::::
CALL :LOGO "4" "BUSCANDO MULTIPISTAS" Set /A "FOLDER_COUNT=0" Echo: [+] Buscando multipistas ... | MORE | MORE PUSHD "%VIDEOS%" || (Call :ERROR_FOLDER "%VIDEOS%") Del /Q "%TEMP%\multipista.txt" 2>NUL
For /R %%_ in (%FORMATS%) do ( Call Set /A "FOLDER_COUNT+=1" For /F "tokens=*" %%@ in ('mediainfo "%%_" ^| findstr /I "^Audio$" ^| FIND /C /V ""') DO ( IF NOT "%%@" EQU "1" ( Call Colous Writesec "[12] (%%FOLDER_COUNT%% de %%FILM_FILES_TOTAL%%): [6] %%~nx_" Mediainfo "%%_" >> "%TEMP%\multipista.txt" ) ELSE ( Call Colous Writesec "[2] (%%FOLDER_COUNT%% de %%FILM_FILES_TOTAL%%): [7]%%~nx_" ) ) )
If exist "%TEMP%\multipista.txt" (start /B notepad "%TEMP%\multipista.txt") CALL :OK
:::::::::::::::: :: :: :: FASE 5 :: :: :: ::::::::::::::::
:METADATOS ::::::::::
CALL :LOGO "5" "BUSCANDO METADATOS" Set /A "FOLDER_COUNT=0" Echo: [+] Buscando metadatos ... | MORE Echo (INAM^) (title^) | MORE | MORE PUSHD "%VIDEOS%" || (Call :ERROR_FOLDER "%VIDEOS%") RD /Q "%TEMP%\Converted FILMS" >NUL 2>&1
For /R %%# in (%FORMATS%) do ( Call Set /A "FOLDER_COUNT+=1" ffmpeg -y -i "%%#" -f ffmetadata "%TEMP%\%%~nx#_metadata.txt" >NUL 2>&1 Type "%TEMP%\%%~nx#_metadata.txt" | FINDSTR /I "^INAM ^title" >NUL && ( Call Colous Writesec "[12] (%%FOLDER_COUNT%% de %%FILM_FILES_TOTAL%%): [6]%%~nx#" Echo TAGS encontrados... Echo Convirtiendo el archivo... | MORE MKDIR "%TEMP%\Converted FILMS\%%~p#" >NUL 2>&1 start /W CMD /K "ffmpeg -y -i "%%#" -c copy -map_metadata -1 "%TEMP%\%%~nx#" && EXIT || (Echo ERROR CONVIRTIENDO EL ARCHIVO! & PAUSE&EXIT)" MOVE /Y "%TEMP%\%%~nx#" "%TEMP%\Converted FILMS\%%~p#" >NUL ) || (Call Colous Writesec "[2] (%%FOLDER_COUNT%% de %%FILM_FILES_TOTAL%%): [7]%%~nx#") Del /Q "%TEMP%\%%~nx#_metadata.txt" >NUL 2>&1 )
IF exist "%TEMP%\Converted FILMS" (start /B explorer "%TEMP%\Converted FILMS") CALL :OK
:::::::::::::::: :: :: :: FIN :: :: :: ::::::::::::::::
:FIN ::::
TITLE Film Organizer v2.0 [FINAL] CLS Echo+ | MORE Colous writesec "[8] ###########################" Colous writesec "[8] ## ##" Colous writesec "[8] ## [14] Film Organizer v2.0 [8]##" Colous writesec "[8] ## ##" Colous writesec "[8] ###########################" Echo+ | MORE Colous writesec "[7] Organizacion completada." Echo+ | MORE Colous writesec "[8] Presione una tecla para salir del programa..." pause >nul exit
:LOGO CLS TITLE Film Organizer v2.0 [FASE %~1 de 5] [%~2] Echo+ | MORE Colous writesec "[8] ########################### ##############" Colous writesec "[8] ## ## ## ##" Colous writesec "[8] ## [14] Film Organizer v2.0 [8]## FASE %~1 " Colous writesec "[8] ## ## ## ##" Colous writesec "[8] ########################### ##############" Colous writesec "[8] %~2" Echo+ | MORE nircmd wait 1000 GOTO:EOF
:OK Echo+ | MORE Colous writesec "[10] OK !!" Echo+ TIMEOUT /T 3 GOTO:EOF
|
|
|
775
|
Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Problema con variableee
|
en: 1 Febrero 2013, 16:28 pm
|
EDITO: vale vale, ya está, lo he encontrado entre mis apuntes: Language_Resource = "SPA" MsgBox(My.Resources.ResourceManager.GetObject(Language_Resource & 5))
¿Como se hace esto en VB.NET? La intención es mostrar un recurso de tipo STRING que se llama "SPA5" Language_Resource = "SPA" MsgBox(My.Resources.(Language_Resource) & 5)
|
|
|
776
|
Sistemas Operativos / GNU/Linux / acerca del comando tar...
|
en: 31 Enero 2013, 02:55 am
|
Quiero hacer un archivo .tar por volúmenes con la utilidad 7zip desde Windows. Obtengo unos archivos así: "archivo.tar.001" "archivo.tar.002" "archivo.tar.003" La numeración está destinada a descomprimirse usando 7zip (obviamente xD), pero yo quiero ponerles la numeración típica que use el comando TAR. Eso es lo que necesito saber, la numeración que usa el comando TAR para crear los volúmenes, que podría ser por ejemplo así: "archivo.tar.t01" "archivo.tar.t02" "archivo.tar.t03" PD: Tengo un puerto de la utilidad TAR para windows, pero uf, demasiados parámetros para ponerme a investigarlo y tengo algo de sueño ya, prefiero hacer esta pregunta a ver si obtengo una respuesta rápida xD. EDITO:he intentado hacer un tar multi-volumen para ver como es el tipo de enumeración, pero me da error, dice que el tamaño es incorrecto  tar -c -M --tape-length=2048 archivo.tar file.dll gracias por leer
|
|
|
777
|
Foros Generales / Dudas Generales / [solucionado] Alguna sugerencia sobre formatos de compresión?
|
en: 30 Enero 2013, 21:34 pm
|
Hola, He desarrollado un programa en el que comprimo ciertas cosas, hay un panel donde se puede elegir el formato: "copy" "sfx" "rar" "zip" "iso"  El caso es que me sobra espacio para añadir una opción más en el panel de la aplicación, pero no sé que formato añadir, me está costando mucho decidirme (no quiero ir a lo fácil), podría añadir "7zip", pero es que ya uso "Zip" y es demasiado parecido, ¿Conocen algún formato que valga la pena añadir a dicha aplicación? 7z > descartado LZMA > este es el que añadiré si no encuentro mejores sugerencias un saludo
|
|
|
778
|
Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Problema en un While + variable + io.directory.getfiles
|
en: 30 Enero 2013, 19:32 pm
|
EDITO 3:Ya está, lanzar el proceso paraba la ejecución de ese sub-thread (yo pensaba que no), por eso el while no funcionaba, aunque me daba la sensaciónd e que sí, así que tengo que hacer un nuevo thread para ejecutar el proceso, y hacer las comprobaciones en el antiguo thread mientras ese nuevo thread se está ejecutando. listo, Saludos! Esta es la situación:Al darle a un botón, ejecuto un proceso que va generando pequeños archivos en un directorio, con este patron: "Disc.zip.001", "Disc.zip.002", "Disc.zip.003" Y lo que intento es, mientras se van generando esos archivos, ir contandolos para agregar un valor a una barra de progreso, es decir, si se han de crear 50 archivos, pero de momento solo se han creado 20 archivos, pues examino el directorio para obtener el número "20", y el valor que le doy a la barra de progreso es "20". Este es el Problema:Algo pasa con la variable o con el while, porque el progreso no se muestra, la variable no suma el valor, me da la sensación de que el io.directory.getfiles solo se ejecuta una vez, y es cuando el directorio está vacio (sin archivos zip) y por eso el valor no aumenta... es "0" ya que cuando el directorio está lleno de archivos zip, si vuelvo a darle al botón, me muestra el valor correcto, por eso pienso que sólo se ejecuta una vez... a pesar de estar dentro de un while. Este es el código: Dim Volumes If Copy_Mode = "Zip" And Not Want_to_cancel_thread = True Then While Not Run_Process(TempDir & "Splitty_7zip.exe", " a " & """" & Selected_Output_Directory & "\Disc.zip" & """" & " " & """" & Selected_Directory & """" & " -v" & Selected_Disc_Bytes.ToString & "b " & " -mx=0 -bd -tzip", False, True) = True If Want_to_cancel_thread Then Exit While ' Esta comprobación funciona corréctamente, sin problemas. ' Esto de aquí no aumenta de valor... o al menos sólo lo hace una única vez, no lo sé... : Volumes = IO.Directory.GetFiles(Selected_Output_Directory, "*.zip.*") InvokeControl(ProgBarPlus, Sub(x) x.Value = Volumes.Length) 'InvokeControl(ProgBarPlus, Sub(x) x.Refresh()) ' He probado a refrescar el control, pero creo que es problema de la variable. End While End If
Cuando le doy al botón para generar los zips:  (el valor no aumenta ni nada!) Cuando le doy al botón en un directorio que ya contiene zips (esto es hacer trampa, pero es para ver si así si que funciona):  (me muestra el valor correcto) ¿Alguien me puede decir si el código está bien, o he cometido algún error?EDITO: También he probado así, pero nada, el valor sigue siendo 0, solo se procesa una única vez...creo... While Not Run_Process(TempDir & "Splitty_7zip.exe", " a " & """" & Selected_Output_Directory & "\Disc.zip" & """" & " " & """" & Selected_Directory & """" & " -v" & Selected_Disc_Bytes.ToString & "b " & " -mx=0 -bd -tzip", False, True) = True InvokeControl(ProgBarPlus, Sub(x) x.Value = IO.Directory.GetFiles(Selected_Output_Directory, "*.zip.*").Length) End While End If
EDITO 2: Y esto: Estoy seguro de que la comprobación sólo se ejecuta una vez.. porque si el directorio está vacío no me muestra NADA (no hay msgbox), pero si el directorio está lleno, me muestra el msgbox... While Not Run_Process(TempDir & "Splitty_7zip.exe", " a " & """" & Selected_Output_Directory & "\Disc.zip" & """" & " " & """" & Selected_Directory & """" & " -v" & Selected_Disc_Bytes.ToString & "b " & " -mx=0 -bd -tzip", False, True) = True If Want_to_cancel_thread Then Exit While If IO. File. Exists(Selected_Output_Directory & "\Disc.zip.001") Then MsgBox(IO.Directory.GetFiles(Selected_Output_Directory, "*.zip.*").Length) ' InvokeControl(ProgBarPlus, Sub(x) x.Value = IO.Directory.GetFiles(Selected_Output_Directory, "*.zip.*").Length) End If End While End If
|
|
|
779
|
Programación / .NET (C#, VB.NET, ASP) / [SOLUCIONADO] Una pregunta sobre los recursos embedidos
|
en: 30 Enero 2013, 15:57 pm
|
Si embedo un archivo .EXE a mi proyecto, el compilador de VBNET realiza algún tipo de compresión sobre el archivo embedido? Es que... ahora me he acostumbrado a comprimir los executables usando 7zip, y embedir el zip al proyecto para ahorrar bastante espacio (si necesito usar el EXE embedido, cargo al disco el 7zip.exe, el archivo comprimido que contiene el EXE, y lo descomprimo en una carpeta temporal), pero ayer me sucedió algo extraño y creo que el proyecto pesa menos embediendo los EXE, que embediendo los zips (los exes están comprimidos al máximo dentro del zip, y es más del 80% de ratio de compresión), pero no puedo verificarlo corréctamente, por eso os pregunto si el VS ya comprime los exe mejor que 7zip, o algo parecido xD. EDITO: Vale, no, me he rallado mucho, no recordaba que el otro día adjunté el FFMPEG.EXE (que pesa 20 MB) al proyecto, y el proyecto pesaba 20 MB, en cambio si comprimo el ffmpeg con 7zip y lo adjunto sólo pesa 7 MB, así que ahora tengo claro que el compilador no comprime recursos embedidos  Saludos
|
|
|
780
|
Programación / .NET (C#, VB.NET, ASP) / Manera límpia de descomprimir un ZIP/RAR
|
en: 28 Enero 2013, 22:43 pm
|
Hola, Estoy probando el ejemplo de esta documentación: http://www.codeproject.com/Tips/257193/Easily-zip-unzip-files-using-Windows-Shell32El problema es que no me descomprime el archivo. Se trata de un archivo ZIP comprimido con WinRAR. El code ni me tira error, ni me lo descomprime :-/ Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim sc As New Shell32.Shell() Dim input As Shell32. Folder = sc. NameSpace("C:\Users\Administrador\Desktop\Filmen_FFMPEG.zip") Dim output As Shell32. Folder = sc. NameSpace("C:\") output.CopyHere(input.Items, 4) End Sub End Class
PD: El DotNetZip es un poco pesado de tamaño (para eso prefiero usar WinRar xD), por eso intento hacerlo usando la referencia de windows... saludos
|
|
|
|
|
|
|