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ú

Temas - Eleкtro

#676
Hola

Tengo 3 discos duros secundarios y... bueno, he estado reflexionando sobre el tema xD.

Antes yo tenía un PC con los HDD siempre encendidos, quiero decir con la configuración de energía para que no se apaguen nunca,
Esos discos nunca me dieron problemas, ni se estropearon, ni nada, es más, aún uso 1 de ellos.

Desde que me compré un nuevo PC, uso la configuración de energia para que los discos se apaguen cada 20 minutos por inactividad, pensé que era mejor apagarlos de vez en cuando aunque séan por 5 minutos.

El caso es que uso MUCHO los HDD, por ejemplo si uno se apaga pues a los 10 minutos ya estoy intentando acceder al disco, y escucho como se enciende y como tarda 2-3 segundos en iniciarse el disco (Pero eso no me importa en absoluto).

No sé que es mejor en mi caso, si dejarlos encendidos o apagarlos, porque si bien sabemos que apagar/reiniciar mucho un PC en un mismo día puede ser un punto negativo para la vida de este, no sé si ocurre lo mismo con los HDD.

En resumen, ¿Cual de estas dos opciones es más benéfica para la vida de mis HDD?
- Apagar/Encender los discos 20 veces al día.
- Dejarlos encendidos las 24 H sin apagarse.

...¿Y porqué?

Gracias por leer.
#677
Hola

A ver si los entendidos en http me pueden ayudar a salir de dudas.

Fíjense en esta url: http://www.mp3crank.com/releases/12549/page/1

Fíjense especiálmente en el número 12549, el cual me lo he inventado, pero lo comento porque para testear lo siguiente que voy a explicar hay que cambiar dicho número de la url por cualquier otro número (o bueno, cualquier otra parte de la url para que tire un error 404, pero eso me ha parecido la más fácil de sugerir como referencia).

Bien, el problema es que esa url devuelve un código 404 la primera vez que intento acceder a ella (obtener la respuesta desde un lenguaje de programación), si intento obtener la respuesta una segunda vez, lo que me devolverá es un código 200 (success) SIEMPRE.

Esto es incomprensible para mi porque no sé lo suficiente a nivel web, y a la única conclusión a la que he llegado ha sido esta:

Cita de: EleKtro H@cker en 25 Mayo 2013, 16:13 PM
...Esto no tengo ni idea de porque sucede, imagino que el servidor detecta que se ha intentado acceder a una página que no existe, y entonces por algún extraño motivo se crea automáticamente esa página de forma temporal para devolver el código "200" las siguientes veces?, hasta ahí llega mi imaginación, no lo sé.

¿Alguien me puede explicar de forma sencilla porque un servidor primero envía error 404 y luego en todos los demás intentos devuelve un 200?, ¿Esto es algo normal?

Y lo más importante, aunque no supieran de programación, ¿Se os ocurre como puedo verificar si la página reálmente existe mediante un lenguaje de programación aunque la url me lanze un "200?,
...por ejemplo: "si Elektro, busca X cosa en los headers para verificarlo", o cosas así, cualquier información me sirve, pero no sé por donde empezar... porque la respuesta que me va a dar es un maldito "200", así que...

Gracias por leer.
#678
Hola

Tengo dos problemas con una página web.

Esta página devuelve un error 404: http://www.mp3crank.com/releases/1925/page/1

El primer problema es que necesito detectar ese error, lo he intentado mediante los "statuscode" pero a la hora de declarar la variable "response" da exception ("página no encontrada error 404"):

Código (vbnet) [Seleccionar]
   Dim request As HttpWebRequest = HttpWebRequest.Create("http://www.mp3crank.com/releases/1925/page/1")
   Dim response As HttpWebResponse = request.GetResponse()
   Dim sr As StreamReader = New StreamReader(response.GetResponseStream())

   If response.StatusCode = HttpStatusCode.NotFound Then
       MsgBox("Error 404")
   End If


Podría hacer un simple try catch en la variable "dim response" pero esto me parece muy cutre, ...¿aunque quizás esa es la única solución?

EDITO: No puedo usar la solución del Framework 4.5, estoy usando 3.5

El segundo problema es que la primera vez que se accede a esa url devuelve un 404, pero si se intenta acceder una segunda vez devolverá el código 200, así que el código de arriba, aunque me funcionase para detectar el error 404 sólamente me valdría para la primera vez (aunque si se accede desde el navegador seguirá devolviendo un 404)...

...Esto no tengo ni idea de porque sucede, imagino que el servidor detecta que se ha intentado acceder a una página que no existe, y entonces por algún extraño motivo se crea automáticamente esa página de forma temporal para devolver el código "200" las siguientes veces?, hasta ahí llega mi imaginación, no lo sé.

El caso es que la url que he puesto de enlace, si se testea más de una vez dará "200" pero en realidad no existe, es un "404", así que tengo dos problemas en uno y para hacer mis pruebas tengo que estar modificando cada vez el número "1925" de la url que os he dicho, por cualquier otro año entre "1XXX-1969", es un coñazo, jeje.

A ver si alguien me puede ayudar,
Gracias.

#679
Aquí os dejo este archivo de instalación desatendida de Windows 8 que he hecho con WSIM (Windows System Image Manager),
Funciona de maravilla, lo único que requiere es elegir el disco donde se desea instalar Windows 8, TODO lo demás lo he dejado preconfigurado y no requiere más intervención que lo que acabo de comentar.

El nombre de usuario por defecto es "Administrador".
La red por defecto es "Hogar".
La hora, el idioma y esas cosas está configurado para Español de España.

Posibles valores que quieran modificar:
- Nombre de la organización
- Nombre del PC
- Nombre de usuario
- La clave (Si disponen de una clave legal)

...Es fácil de modificar, solo hay que buscar el valor correspondiente en este archivo de aquí abajo, y cambiar el valor.

El archivo lo guardan como "AutoUnattend.xml" y lo colocan en el DVD de Windows 8 en la carpeta principal junto al "setup.exe".

PD: No lo he testeado con Windows 8 PRO.

Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
   <settings pass="windowsPE">
       <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <UserLocale>es-ES</UserLocale>
           <UILanguageFallback>es-ES</UILanguageFallback>
           <UILanguage>es-ES</UILanguage>
           <SystemLocale>es-ES</SystemLocale>
           <InputLocale>es-ES</InputLocale>
       </component>
       <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <Display>
               <HorizontalResolution>1920</HorizontalResolution>
               <VerticalResolution>1080</VerticalResolution>
               <ColorDepth>32</ColorDepth>
           </Display>
           <UserData>
               <ProductKey>
                   <WillShowUI>Never</WillShowUI>
                   <Key>FB4WR-32NVD-4RW79-XQFWH-CYQG3</Key>
               </ProductKey>
               <AcceptEula>true</AcceptEula>
               <Organization>Elektro Studios</Organization>
               <FullName>Christian Soriano</FullName>
           </UserData>
           <EnableNetwork>true</EnableNetwork>
           <EnableFirewall>true</EnableFirewall>
       </component>
   </settings>
   <settings pass="specialize">
       <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <AutoLogon>
               <Enabled>true</Enabled>
               <LogonCount>1</LogonCount>
               <Username>Administrator</Username>
           </AutoLogon>
           <ComputerName>Elektro-PC</ComputerName>
           <ProductKey>FB4WR-32NVD-4RW79-XQFWH-CYQG3</ProductKey>
           <RegisteredOrganization>Elektro Studios</RegisteredOrganization>
           <ShowWindowsLive>false</ShowWindowsLive>
           <TimeZone>Romance Standard Time</TimeZone>
           <WindowsFeatures>
               <ShowInternetExplorer>false</ShowInternetExplorer>
               <ShowMediaCenter>false</ShowMediaCenter>
               <ShowWindowsMail>false</ShowWindowsMail>
               <ShowWindowsMediaPlayer>false</ShowWindowsMediaPlayer>
           </WindowsFeatures>
       </component>
   </settings>
   <settings pass="oobeSystem">
       <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
           <OOBE>
               <HideEULAPage>true</HideEULAPage>
               <SkipUserOOBE>true</SkipUserOOBE>
               <SkipMachineOOBE>true</SkipMachineOOBE>
               <ProtectYourPC>3</ProtectYourPC>
               <NetworkLocation>Home</NetworkLocation>
               <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
               <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
               <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
               <HideLocalAccountScreen>true</HideLocalAccountScreen>
           </OOBE>
           <VisualEffects>
               <FontSmoothing>On</FontSmoothing>
           </VisualEffects>
       </component>
   </settings>
   <cpi:offlineImage cpi:source="wim:c:/users/administrador/desktop/Elektro Win8-Core-Mod/x64/sources/install.wim#Windows 8" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
#680
Cuando hago mis modificaciones y pincho en "validar respuesta" me salen un montón de errores.

En la imagen pueden ver la versión de WSIM que estoy usando,
y la imagen que estoy modificando es la ISO de un Windows 8 x64 Core.

He seguido estos pasos: www.windows-noob.com/forums/index.php?/topic/575-what-is-windows-sim-and-how-can-i-use-it/

No sé si es que estoy usando la versión incorrecta, o que... pero siempre me dice que "la configuración no se ha modificado"




Y esto es lo que yo esperaba que me saliese:

(No warnings or errors, in spanish)
#681
Hola.

(Contenido borrado para que no cierren el tema)

mi pregunta es:

¿Se puede comprar la clave por separado de Windows 8? ¿Cuanto cuesta la licencia para 1 PC?, es decir, quiero comprar sólamente la clave, no el producto (Tengo mi propio Windows 8 desatendido con su aspecto al estilo de Windows 7).

Disculpad pero no estoy nada enterado sobre el tema,
He estado mirando en la web de Microsoft, y mi descojonamiento ha sido muy grande cuando he visto que están vendiendo unas simples actualización de sistema de Windows 8 Core por 120$ y las de Windows 8 Pro por 200$... en fín!!!, ya no me puedo imaginar cuanto valdría sólamente la licencia para un usuario casero (si es que se puediese comprar por separado), desde luego no la pienso commprar a precios exagerados como estos:

http://windows.microsoft.com/en-us/windows/buy


A ver si alguien me puede dar algo de información ya séa sobre la activación FULL de la edición Core o los précios de una licencia para 1 pc y como comprarla.


Gracias por leer.
#682


DESCRIPCIÓN:

Una aplicación que descarga todas las urls de los últimos albums de la página mp3crank.com,
las urls se almacenan en un archivo de texto para copiarlas en Jdownloader (por ejemplo), también se pueden copiar desde el menú contextual de la aplicación.

La aplicación guarda las urls copiadas en un archivo log para no volver a descargarlas en el próximo uso de la aplicación.

...Y las urls se pueden filtrar por estilos de música.

IMÁGENES (última versión):













DESCARGA:

http://elektrostudios.tk//MP3Crank%20Leecher.zip

Incluye Source, compilado e instalador.
#683


DESCRIPCIÓN:

Una aplicación que descarga todas las urls de los últimos albums de la página Post-Hardcore.ru,
las urls se almacenan en un archivo de texto para copiarlas en Jdownloader (por ejemplo), también se pueden copiar desde el menú contextual de la aplicación.

La aplicación guarda las urls copiadas en un archivo log para no volver a descargarlas en el próximo uso de la aplicación.

PD: El estilo de música es Rock del género Post-Hardcore.

IMÁGENES (última versión):







DESCARGA:

http://elektrostudios.tk//Post-Hardcore.ru_Leecher.zip

Incluye Source, versión portable y la versión instalable.
#684
.NET (C#, VB.NET, ASP) / [SOURCE] Splat
16 Mayo 2013, 18:55 PM



DESCRIPCIÓN
Splat es una utilidad de consola para generar los típicos "SplashScreen" (Mostrar una imagen durante un corto periodo de tiempo antes de iniciar un proceso).
Ocupa 35 kb así que es perfecta para añadirla a proyectos de .NET como a archivos autoextraibles de winrar, códigos Batch, etc.
Acepta png's con transparencia.

MODO DE EMPLEO

  • Syntax:

       Splat.exe [IMAGEFILE] [SWITCHES]

  • Switches:

       /Duration   | The Splash duration.    (Default: 5000)
       /FXDuration | The effects duration.   (Default: 1500)
       /FadeIN     | Enables FadeIN Effect.
       /FadeOUT    | Enables FadeOUT Effect.
       /Resize     | Resizes the image.
       /Location   | Relocates the image.
        /Clickable  | Enables click on image to close.
        /OnTop      | Set the image on top of other windows.
        /?          | Shows this help.


  • Switches values Syntax:

       /Duration   (ms)
       /FXDuration (ms)
       /Resize     (WidthXHeight)
       /Location   (X,Y)


  • Examples:

       Splat.exe "C:\Image.png"
       (Shows a image at the center of the screen for 3000 ms.)

       Splat.exe "C:\Image.png" /Resize 400x400 /Location 100,300
       (Shows a resized image to 200x400 px at 100,300 coordenates for 3000 ms.)

       Splat.exe "C:\Image.png" /Duration 6000 /FadeIN /FadeOUT /FXDuration 2000
       (Shows a image at the center of the screen with fade effects for 6000 ms.
       , plus 2000 ms for each effect then is a total of 10.000 ms.)


    NOTA: Usar el parámetro /Wait del comando Start para esperar a que el splashscreen finalize.
    start /W splat xmen.jpg

    DEMOSTRACIÓN

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


    DESCARGA
    http://elektrostudios.tk/Splat.zip
    Incluye código fuente y binários ya compilados.
#685
Tengo un proyecto que se compila perféctamente en VS2012, sin NINGÚN error ni aviso.

Cuando intento compilar el mismo proyecto usando MSBuild 3.0 o 3.5 me sale un montón de errores en una class en concreto:

    Microsoft (R) Build Engine, versión 3.5.30729.5420
    [Microsoft .NET Framework, versión 2.0.50727.5420]
    Copyright (C) Microsoft Corporation 2007. Reservados todos los derechos.
   
    Build started 12/05/2013 22:50:43.
    Project "C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\Virtuosa Game Packer.sln" on node 0 (default targets).
      Building solution configuration "Debug|Any CPU".
    Project "C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\Virtuosa Game Packer.sln" (1) is building "C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\Extractor.vbproj" (2) on node 0 (default targets).
    Project file contains ToolsVersion="4.0", which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion="3.5".
    CoreResGen:
      No hay ningún recurso obsoleto con respecto a sus archivos de código fuente. Se omitirá la generación de recursos.
    C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(24): error BC30124: La propiedad sin un especificador 'ReadOnly' o 'WriteOnly' debe proporcionar una instrucci¾n 'Get' y una instrucci¾n 'Set'.
    C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(25): error BC30634: La instrucci¾n no puede aparecer dentro del cuerpo de una propiedad. Se supone el final de la propiedad.
    C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(25): error BC30025: Falta 'End Property' en Property.
    C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(57): error BC32035: El especificador de atributo no es una instrucci¾n completa. Utilice una continuaci¾n de lÝnea para aplicar el atributo a la instrucci¾n siguiente.
    C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(61): error BC30456: 'Key' no es un miembro de 'Virtuosa_Game_Packer.Shortcut.HotKeyEventArgs'.
    Done Building Project "C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\Extractor.vbproj" (default targets) -- FAILED.
    Done Building Project "C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\Virtuosa Game Packer.sln" (default targets) -- FAILED.
   
    Build FAILED.
   
    "C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\Virtuosa Game Packer.sln" (default target) (1) ->
    "C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\Extractor.vbproj" (default target) (2) ->
    (CoreCompile target) ->
      C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(24): error BC30124: La propiedad sin un especificador 'ReadOnly' o 'WriteOnly' debe proporcionar una instrucci¾n 'Get' y una instrucci¾n 'Set'.
      C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(25): error BC30634: La instrucci¾n no puede aparecer dentro del cuerpo de una propiedad. Se supone el final de la propiedad.
      C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(25): error BC30025: Falta 'End Property' en Property.
      C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(57): error BC32035: El especificador de atributo no es una instrucci¾n completa. Utilice una continuaci¾n de lÝnea para aplicar el atributo a la instrucci¾n siguiente.
      C:\Projects\game\WindowsApplication10 - copia\Extractor_backup\GlobalHotkeys.vb(61): error BC30456: 'Key' no es un miembro de 'Virtuosa_Game_Packer.Shortcut.HotKeyEventArgs'.
   
        0 Warning(s)
        5 Error(s)
   
    Time Elapsed 00:00:00.25


Es imprescindible para mi poder compilar dicho proyecto usando MSBuild.

¿Posible solución 1?: Un parámetro o algo parecido para usar en el msbuild para omitir errores? ¿o talvez crear una taréa de MSBuild? (Por más que he buscado información sobre las msbuild tasks no sé donde coño se debe hacer/colocar/crear ni como usar el archivo xml, y todo lo que encuentro es código para C#, tampoco sé si una task de msbuild me sirve para esto).

¿Posible solución 2?: Que alguna persona amable me ayude a corregir las líneas de la Class donde el MSBuild me marca ridículos errores de compilación.

Esta es la class:

Código (vbnet) [Seleccionar]
    #Region " GlobalHotkeys Class "
   
    Class Shortcut
   
        Inherits NativeWindow
        Implements IDisposable
   
        Protected Declare Function UnregisterHotKey Lib "user32.dll" (ByVal handle As IntPtr, ByVal id As Integer) As Boolean
        Protected Declare Function RegisterHotKey Lib "user32.dll" (ByVal handle As IntPtr, ByVal id As Integer, ByVal modifier As Integer, ByVal vk As Integer) As Boolean
   
        Event Press(ByVal sender As Object, ByVal e As HotKeyEventArgs)
        Protected EventArgs As HotKeyEventArgs, ID As Integer
   
        Enum Modifier As Integer
            None = 0
            Alt = 1
            Ctrl = 2
            Shift = 4
        End Enum
   
        Class HotKeyEventArgs
   
            Inherits EventArgs
            Property Modifier As Shortcut.Modifier
            Property Key As Keys
   
        End Class
   
        Class RegisteredException
   
            Inherits Exception
            Protected Const s As String = "Shortcut combination is in use."
   
            Sub New()
                MyBase.New(s)
            End Sub
   
        End Class
   
        Private disposed As Boolean
   
        Protected Overridable Sub Dispose(ByVal disposing As Boolean)
            If Not disposed Then UnregisterHotKey(Handle, ID)
            disposed = True
        End Sub
   
        Protected Overrides Sub Finalize()
            Dispose(False)
            MyBase.Finalize()
        End Sub
   
        Sub Dispose() Implements IDisposable.Dispose
            Dispose(True)
            GC.SuppressFinalize(Me)
        End Sub
   
        <DebuggerStepperBoundary()>
        Sub New(ByVal modifier As Modifier, ByVal key As Keys)
            CreateHandle(New CreateParams)
            ID = GetHashCode()
            EventArgs = New HotKeyEventArgs With {.Key = key, .Modifier = modifier}
            If Not RegisterHotKey(Handle, ID, modifier, key) Then Throw New RegisteredException
        End Sub
   
        Shared Function Create(ByVal modifier As Modifier, ByVal key As Keys) As Shortcut
            Return New Shortcut(modifier, key)
        End Function
   
        Protected Sub New()
        End Sub
   
        Protected Overrides Sub WndProc(ByRef m As Message)
            Select Case m.Msg
                Case 786
                    RaiseEvent Press(Me, EventArgs)
                Case Else
                    MyBase.WndProc(m)
            End Select
        End Sub
   
    End Class
   
    #End Region


Gracias por leer.
#686
.NET (C#, VB.NET, ASP) / [SOURCE] Color.NET
3 Mayo 2013, 21:21 PM


DESCRIPCIÓN:

Color.NET es una mini aplicación sencilla y de fácil manejo para copiar el valor de un color de un pixel en formato RGB o HEX o HTML.

Se puede copiar el valor seleccionado usando CONTROL+C.

Se puede abrir un magnificador de imagen con zoom adaptable.

Se puede abrir un mezclador de colores.

Y tiene una opción para ahorrar esos segundos de más copiando el valor usando la sintaxis de VB.NET, al usar CONTROL+C.

PD: He tomado como referencia la aplicación "Pixie".


IMÁGENES:

   




DEMOSTRACIÓN:

[youtube=720,480]http://www.youtube.com/watch?v=IFHtkP3jTPE&feature=youtu.be[/youtube]


SOURCE:

http://www.mediafire.com/download/7qu4rpnhrruby6g/Color.NET.rar
Incluye el source, versión protable y versión instalable.
#687



DESCRIPCIÓN:

RegEx.NET es una aplicación sencilla para crear y testear expresiones regulares.

Es de diseño minimalista al estilo del editor de texto "Sublime Text", aunque en esta nueva versión le he añadido un selector de tema para los que prefieres las cosas blancas.

· Permite separar los resultados por grupos (sub-expresiones).
· Copiar los resultados encontrados por el regex al portapapeles.
· Cargar o arrastrar un archivo de texto diréctamente.
· Elegir entre una pequeña cantidad de expresiones regulares predefinidas.
· Comprueba si el RegEx tiene la sintaxis válida para .NET.

NOTAS: Aún falta por mejorar la precisión de detección (mejor dicho, el cambio de los colores) cuando el texto del richtextbox se modifica manualmente.



IMÁGENES:



   





DEMOSTRACIÓN:

VERSIÓN NUEVA:
[youtube=720,680]http://www.youtube.com/watch?v=dcAbAiTLyio&feature=youtu.be[/youtube]

VERSIÓN ANTIGUA:
[youtube=720,680]http://www.youtube.com/watch?v=JWGu45yS0Wo&feature=youtu.be[/youtube]



DESCARGA:
http://elektrostudios.tk/RegEx.NET.zip

Incluye source, compilado, e instalador.
#690
.NET (C#, VB.NET, ASP) / [SOURCE] AeroSwitch
30 Abril 2013, 13:56 PM
Una aplicación para alternar entre el modo Aero y cambiar de tema sencíllamente.

   

Se adjunta al áera de notificación de la barra de taréas (El systray):



Y también se puede ejecutar por consola:



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

Source:
http://elektrostudios.tk/AeroSwitch.zip
Incluye código fuente, versión portable, y versión instalable. Lo de siempre.
#691
Tengo esta duda:

Si creo un nuevo certificado con la utilidad makecert de las SDK de Microsoft:
makecert -r -pe -a sha1 -n "CN=ElektroSoft" -b 01/01/2013 -e 01/01/2050 -ss my -$ individual

Se supone que ese comando nos almacena el certificado en "my",

Entonces con la utilidad Certutil, si intento listar los certificados de "my" para obtener el número de serie, sólo me sale una entrada:

Código (dos) [Seleccionar]
C:\Users\Administrador\Desktop\Nueva carpeta>CERTUTIL -store my
my
================ Certificado 0 ================
Número de serie: 586a7358ebdce8854def26875f0f38ab
Emisor: CN=localhost
NotBefore: 22/02/2013 4:43
NotAfter: 22/02/2018 2:00
Sujeto: CN=localhost
La firma coincide con la clave pública
Certificado raíz: el sujeto coincide con el emisor
Plantilla:
Hash de cert(sha1): 1b 92 19 ef 19 ce d1 09 ad 87 13 73 56 0c cf 0a 57 29 cf 81
 Contenedor de claves = IIS Express Development Certificate Container
 Nombre de contenedor exclusivo: fad662b360941f26a1193357aab3c12d_a61f2a11-eaf9
-4c14-9a63-d3613bf3bd2c
 Proveedor = Microsoft RSA SChannel Cryptographic Provider
Prueba de cifrado correcta
CertUtil: -store comando completado correctamente.


Entonces, si el certificado que he creado no está en "my", ¿¡donde está mi certificado!?

He probado a usar -repairstore y en fín todos los parámetros de cerutil que he visto.

Esto quiero conseguirlo para automatizar la taréa en un Bat, en un PC que no es de mi propiedad para permitirle generar un certificado con la clave pública y privada, desde la consola.

Sólamente con encontrar la ubicación del certificado (para poder obtener el número de serie) me sería suficiente.

PD: si uso la herramienta certmgr.msc puedo ver el certificado en la carpeta "\Personal\Certificados", pero no sé como encontrarla desde la CMD.

Gracias por leer!
#692
Hola

Estoy intentando crear una función genérica para crear Threads.

El problema es que no consigo pasarle a la función el nombre de un Sub como argumento, para poder asignarlo como el Sub del nuevo thread que se va a crear,
sólamente he llegado a conseguir pasarle el nombre de una función, lo cual no me sirve para nada, porque según me dice la IDE el procedimiento de un thread debe ser un Sub, no una función.

¿Tienen idea de como puedo conseguir resolverlo?

Me gustaría poder pasarle el nombre del Sub a la función sin tener que declarar un delegado fuera de la función, porque mi intención es hacer una función genérica que acepte cualquier nombre de un Sub como argumento, para simplificar las cosas.

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

   ' Desired usage:
   ' Make_Thread(Thread Variable, Thread Name, Thread Priority, Thread Sub)
   '
   ' Example:
   ' Make_Thread(Thread_1, "Low thread", Threading.ThreadPriority.Low, AddressOf Test_Sub)

   Private Thread_1 As Threading.Thread ' Thread Variable

   Private Function Make_Thread(Of TKey)(ByRef Thread_Variable As Threading.Thread, _
                          ByVal Thread_Name As String, _
                          ByVal Thread_Priority As Threading.ThreadPriority, _
                          ByRef Thread_Sub As Func(Of String, TKey)) As Boolean ' I'd ByRef a function but really I will pass a Subroutine.

       ' See if the thread is already running.
       Dim is_running As Boolean
       If Thread_Variable Is Nothing Then _
            is_running = False _
       Else is_running = Thread_Variable.IsAlive

       ' If the thread is already running, do nothing.
       If is_running Then Return False : Exit Function

       ' Make the thread.
       Thread_Variable = New Threading.Thread(AddressOf Thread_Sub)
       Thread_Variable.Priority = Thread_Priority
       Thread_Variable.IsBackground = True
       Thread_Variable.Name = Thread_Name

       ' Start the thread.
       Thread_Variable.Start()
       Return True

   End Function

   Private Sub Test_Sub()
       MsgBox("A message from the thread!")
   End Sub

   End Class
#693
El tema ha sido movido a Programación General.
Delphi/Pascal no es un lenguaje interpretado :P.
http://foro.elhacker.net/index.php?topic=388274.0
#694
A petición de un usuario aquí tienen la plantilla por defecto que uso para mis instaladores...


Setup.iss

Código (inno) [Seleccionar]
; = = = = = = = = = = = = = = = = = = =
; Default Template (by Elektro H@cker) |
;                                      |
;            InnoSetup 5.5.3           |
; = = = = = = = = = = = = = = = = = = =

[Setup]

; Info
; ----
#define Name "Application"
#define Version "1.0"
#define EXE "Application.exe"
AppName={#Name}
AppVersion={#Version}
AppVerName={#Name} {#Version}
AppCopyright=Elektro H@cker
AppPublisher=Elektro H@cker

; Paths
; -----
DefaultDirName={pf}\{#Name}
DefaultGroupName={#Name}
OutputDir=.\Output\
OutputBaseFilename={#Name}
UninstallDisplayIcon={app}\{#EXE}

; Resources
; ---------
;SetupIconFile=Icon.ico
;WizardImageFile=Icon.bmp
;WizardSmallImageFile=Icon.bmp
;InfoBeforeFile=Info.txt

; Compression
; -----------
Compression=lzma/ultra
InternalCompressLevel=Ultra
SolidCompression=True

; Appearance
; ----------
AlwaysShowComponentsList=False
DisableDirPage=True
DisableProgramGroupPage=True
DisableReadyPage=True
DisableStartupPrompt=True
FlatComponentsList=False
LanguageDetectionMethod=None
PrivilegesRequired=PowerUser
RestartIfNeededByRun=False
ShowLanguageDialog=NO
ShowTasksTreeLines=True
Uninstallable=True
ArchitecturesAllowed=x86 x64
;ArchitecturesInstallIn64BitMode=x64

[Languages]
Name: spanish; MessagesFile: compiler:Languages\Spanish.isl

[Dirs]
;{sd}                  = C:\
;{commonappdata}       = C:\ProgramData
;{sd}\Users\{username} = C:\Users\UserName
;{userdesktop}         = C:\Users\UserName\Desktop
;{localappdata}        = C:\Users\UserName\AppData\Local
;{userappdata}         = C:\Users\UserName\AppData\Roaming
;{userstartmenu}       = C:\Users\UserName\AppData\Roaming\Microsoft\Windows\Start Menu

[Files]
;Source: {app}\*.*; DestDir: {app}; DestName:; Attribs:; Flags:;
;Attribs: ReadOnly Hidden System
;DestName: Example.exe
;Flags: 32bit 64bit Deleteafterinstall IgnoreVersion NoCompression Onlyifdoesntexist recursesubdirs uninsneveruninstall

[Registry]
;Root: HKCR; Subkey: SystemFileAssociations\.ext\Shell\OPTION; ValueName: Icon; ValueType: String; ValueData: {app}\{#Exe}; Flags: ;
;Root: HKCR; Subkey: SystemFileAssociations\.ext\Shell\OPTION\Command; ValueType: String; ValueData: """{app}\{#Exe}"" ""%1"""; Flags: ;
;Flags: uninsdeletevalue uninsdeletekey

[Tasks]
;Name: Identifier; Description: Title; GroupDescription: Group; Flags:;
;Flags: Unchecked

[Run]
;Filename: "{cmd}"; Parameters: "/C command"; StatusMsg: "Installing..."; Flags: RunHidden WaitUntilTerminated
;Filename: {app}\{#Exe}; Description: {cm:LaunchProgram,{#Nombre}}; Flags: NoWait PostInstall SkipIfSilent ShellExec Unchecked
;Flags: 32bit 64bit RunHidden WaitUntilTerminated NoWait PostInstall SkipIfSilent ShellExec Unchecked

[Icons]
Name: {userstartmenu}\Programs\{#Name}; Filename: {app}\{#Exe}; Iconfilename: {app}\{#Exe}; WorkingDir: {app}

[Code]

const
 Custom_Height = 440;
 Custom_ProgressBar_Height = 20;
 Page_Color = clwhite;
 Page_Color_Alternative1 = clblack;
 Page_Color_Alternative2 = clwhite;
 Font_Color = clblack;


var
 DefaultTop,
 DefaultLeft,
 DefaultHeight,
 DefaultBackTop,
 DefaultNextTop,
 DefaultCancelTop,
 DefaultBevelTop,
 DefaultOuterHeight: Integer;


procedure InitializeWizard();
begin

 DefaultTop := WizardForm.Top;
 DefaultLeft := WizardForm.Left;
 DefaultHeight := WizardForm.Height;
 DefaultBackTop := WizardForm.BackButton.Top;
 DefaultNextTop := WizardForm.NextButton.Top;
 DefaultCancelTop := WizardForm.CancelButton.Top;
 DefaultBevelTop := WizardForm.Bevel.Top;
 DefaultOuterHeight := WizardForm.OuterNotebook.Height;


 // Pages (Size)
 WizardForm.Height := Custom_Height;
 WizardForm.InnerPage.Height := WizardForm.InnerPage.Height + (Custom_Height - DefaultHeight);
 WizardForm.LicensePage.Height := WizardForm.LicensePage.Height + (Custom_Height - DefaultHeight);


 // Pages (Color)
 WizardForm.color := Page_Color_Alternative1;
 WizardForm.FinishedPage.Color  := Page_Color;
 WizardForm.InfoAfterPage.Color := Page_Color;
 WizardForm.InfoBeforePage.Color := Page_Color;
 WizardForm.InnerPage.Color := Page_Color;
 WizardForm.InstallingPage.color := Page_Color;
 WizardForm.LicensePage.Color := Page_Color;
 WizardForm.PasswordPage.color := Page_Color;
 WizardForm.PreparingPage.color := Page_Color;
 WizardForm.ReadyPage.Color := Page_Color;
 WizardForm.SelectComponentsPage.Color  := Page_Color;
 WizardForm.SelectDirPage.Color  := Page_Color;
 WizardForm.SelectProgramGroupPage.color := Page_Color;
 WizardForm.SelectTasksPage.color := Page_Color;
 WizardForm.UserInfoPage.color := Page_Color;
 WizardForm.WelcomePage.color := Page_Color;


 // Controls (Size)
 WizardForm.InfoAfterMemo.Height := (Custom_Height - (DefaultHeight / 2));
 WizardForm.InfoBeforeMemo.Height := (Custom_Height - (DefaultHeight / 2));
 WizardForm.InnerNotebook.Height :=  WizardForm.InnerNotebook.Height + (Custom_Height - DefaultHeight);
 WizardForm.LicenseMemo.Height := WizardForm.LicenseMemo.Height + (Custom_Height - DefaultHeight);
 WizardForm.OuterNotebook.Height := WizardForm.OuterNotebook.Height + (Custom_Height - DefaultHeight);
 WizardForm.ProgressGauge.Height := Custom_ProgressBar_Height
 WizardForm.ReadyMemo.Height := (Custom_Height - (DefaultHeight / 2));
 WizardForm.Taskslist.Height := (Custom_Height - (DefaultHeight / 2));
 WizardForm.WizardBitmapImage.Height := (Custom_Height - (DefaultHeight - DefaultBevelTop));
 WizardForm.WizardBitmapImage2.Height  := (Custom_Height - (DefaultHeight - DefaultBevelTop));


 // Controls (Location)
 WizardForm.BackButton.Top := DefaultBackTop + (Custom_Height - DefaultHeight);
 WizardForm.Bevel.Top := DefaultBevelTop + (Custom_Height - DefaultHeight);
 WizardForm.CancelButton.Top := DefaultCancelTop + (Custom_Height - DefaultHeight);
 WizardForm.LicenseAcceptedRadio.Top := WizardForm.LicenseAcceptedRadio.Top + (Custom_Height - DefaultHeight);
 WizardForm.LicenseNotAcceptedRadio.Top := WizardForm.LicenseNotAcceptedRadio.Top + (Custom_Height - DefaultHeight);
 WizardForm.NextButton.Top := DefaultNextTop + (Custom_Height - DefaultHeight);
 WizardForm.Top := DefaultTop - (Custom_Height - DefaultHeight) div 2;
 //WizardForm.ProgressGauge.Top := (DefaultHeight / 2)


 // Controls (Back Color)
 WizardForm.DirEdit.Color  := Page_Color_Alternative2;
 WizardForm.GroupEdit.Color  := Page_Color_Alternative2;
 WizardForm.InfoAfterMemo.Color := Page_Color_Alternative2;
 WizardForm.InfoBeforeMemo.Color := Page_Color_Alternative2;
 WizardForm.LicenseMemo.Color := Page_Color_Alternative2;
 WizardForm.MainPanel.Color := Page_Color;
 WizardForm.PasswordEdit.Color  := Page_Color_Alternative2;
 WizardForm.ReadyMemo.Color := Page_Color_Alternative2;
 WizardForm.Taskslist.Color := Page_Color;
 WizardForm.UserInfoNameEdit.Color  := Page_Color_Alternative2;
 WizardForm.UserInfoOrgEdit.Color  := Page_Color_Alternative2;
 WizardForm.UserInfoSerialEdit.Color  := Page_Color_Alternative2;


 // Controls (Font Color)
 WizardForm.FinishedHeadingLabel.font.color  := Font_Color;
 WizardForm.InfoafterMemo.font.Color  := Font_Color;
 WizardForm.FinishedLabel.font.color  := Font_Color;
 WizardForm.DirEdit.font.Color  := Page_Color_Alternative1;
 WizardForm.Font.color := Font_Color;
 WizardForm.GroupEdit.font.Color  := Page_Color_Alternative1;
 WizardForm.InfoBeforeMemo.font.Color  := Page_Color_Alternative1;
 WizardForm.LicenseMemo.font.Color  := Page_Color_Alternative1;
 WizardForm.MainPanel.font.Color := Font_Color;
 WizardForm.PageDescriptionLabel.font.color  := Font_Color;
 WizardForm.PageNameLabel.font.color  := Font_Color;
 WizardForm.PasswordEdit.font.Color  := Page_Color_Alternative1;
 WizardForm.Taskslist.font.Color  := Font_Color;
 WizardForm.UserInfoNameEdit.font.Color  := Page_Color_Alternative1;
 WizardForm.UserInfoOrgEdit.font.Color  := Page_Color_Alternative1;
 WizardForm.UserInfoSerialEdit.font.Color  := Page_Color_Alternative1;
 WizardForm.WelcomeLabel1.font.color  := Font_Color;
 WizardForm.WelcomeLabel2.font.color  := Font_Color;
 WizardForm.ReadyMemo.font.Color := Page_Color_Alternative1;

end;



Este es el aspecto por defecto:




Y se puede customizar un poco el aspecto para conseguir algo parecido a esto, sólamente cambiando las variables de la plantilla...

[/code]
#695
Estos dos proyectos los comparto como plantillas para las personas que quieren hacer un Game launcher.

Los dos poryectos son idénticos, y estas son algunas de sus características a resaltar:

· Configuración portable en un archivo INI sencillísima e intuitiva (Para usarlo en juegos autoextraibles con WinRAR por ejemplo)
· Drag&drop en los textboxes
· Permite soltar accesos directos también (.lnk) en los textboxes,
· La mayor parte del code (sobre todo los eventos de controles) está muy simplificado y optimizado
· Está todo bastante optimizado en el code para poder modificar el diseño fácilmente mediante variables (título del juego y del launcher, colores y fuente de texto, etc...)
· Varios controles de errores

...Y en definitiva creo que me han quedado bonito como plantillas.

Los dos proyectos son WinForms, y he usado VS2012 y el FrameWork 3.5.





El método y el orden de carga del programa es este:

1. Primero se ejecuta Steam (si estuviera seleccionado) con el parámetro "-applaunch 0" para que no salga la ventana de auto-login. (el proceso espera a que Steam se haya cargado complétamente)
2. Se ejecuta el Trainer (si hubiera alguno seleccionado)
3. Se ejecuta la aplicación alternativa (si hubiera alguna seleccionada), esta aplicación alternativa puede ser por ejemplo un programa para bloquear el mouse... http://foro.elhacker.net/net/source_mouselock_gui_version-t387309.0.html
4. Se ejecuta el Juego y se monitoriza su ejecución hasta que el proceso del juego se cierre.

Descarga: www.elektrostudios.tk/Game Launchers by Elektro H@cker.rar

Espero que os guste,
Saludos!
#696
Necesito listar todos los handles hijos de un proceso, para eso utilizo esta Class: http://kellyschronicles.wordpress.com/2008/06/23/get-window-handles-associated-with-process-in-vb-net/

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

Public Class ApiWindow
    Public MainWindowTitle As String = ""
    Public ClassName As String = ""
    Public hWnd As Int32
End Class

''' <summary>
''' Enumerate top-level and child windows
''' </summary>
''' <example>
''' Dim enumerator As New WindowsEnumerator()
''' For Each top As ApiWindow in enumerator.GetTopLevelWindows()
'''    Console.WriteLine(top.MainWindowTitle)
'''    For Each child As ApiWindow child in enumerator.GetChildWindows(top.hWnd)
'''        Console.WriteLine(" " + child.MainWindowTitle)
'''    Next child
''' Next top
''' </example>
Public Class WindowsEnumerator

    Private Delegate Function EnumCallBackDelegate(ByVal hwnd As Integer, ByVal lParam As Integer) As Integer

    ' Top-level windows.
    Private Declare Function EnumWindows Lib "user32" _
     (ByVal lpEnumFunc As EnumCallBackDelegate, ByVal lParam As Integer) As Integer

    ' Child windows.
    Private Declare Function EnumChildWindows Lib "user32" _
     (ByVal hWndParent As Integer, ByVal lpEnumFunc As EnumCallBackDelegate, ByVal lParam As Integer) As Integer

    ' Get the window class.
    Private Declare Function GetClassName _
     Lib "user32" Alias "GetClassNameA" _
     (ByVal hwnd As Integer, ByVal lpClassName As StringBuilder, ByVal nMaxCount As Integer) As Integer

    ' Test if the window is visible--only get visible ones.
    Private Declare Function IsWindowVisible Lib "user32" _
     (ByVal hwnd As Integer) As Integer

    ' Test if the window's parent--only get the one's without parents.
    Private Declare Function GetParent Lib "user32" _
     (ByVal hwnd As Integer) As Integer

    ' Get window text length signature.
    Private Declare Function SendMessage _
     Lib "user32" Alias "SendMessageA" _
     (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32

    ' Get window text signature.
    Private Declare Function SendMessage _
     Lib "user32" Alias "SendMessageA" _
     (ByVal hwnd As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As StringBuilder) As Int32

    Private _listChildren As New List(Of ApiWindow)
    Private _listTopLevel As New List(Of ApiWindow)

    Private _topLevelClass As String = ""
    Private _childClass As String = ""

    ''' <summary>
    ''' Get all top-level window information
    ''' </summary>
    ''' <returns>List of window information objects</returns>
    Public Overloads Function GetTopLevelWindows() As List(Of ApiWindow)

        EnumWindows(AddressOf EnumWindowProc, &H0)

        Return _listTopLevel

    End Function

    Public Overloads Function GetTopLevelWindows(ByVal className As String) As List(Of ApiWindow)

        _topLevelClass = className

        Return Me.GetTopLevelWindows()

    End Function

    ''' <summary>
    ''' Get all child windows for the specific windows handle (hwnd).
    ''' </summary>
    ''' <returns>List of child windows for parent window</returns>
    Public Overloads Function GetChildWindows(ByVal hwnd As Int32) As List(Of ApiWindow)

        ' Clear the window list.
        _listChildren = New List(Of ApiWindow)

        ' Start the enumeration process.
        EnumChildWindows(hwnd, AddressOf EnumChildWindowProc, &H0)

        ' Return the children list when the process is completed.
        Return _listChildren

    End Function

    Public Overloads Function GetChildWindows(ByVal hwnd As Int32, ByVal childClass As String) As List(Of ApiWindow)

        ' Set the search
        _childClass = childClass

        Return Me.GetChildWindows(hwnd)

    End Function

    ''' <summary>
    ''' Callback function that does the work of enumerating top-level windows.
    ''' </summary>
    ''' <param name="hwnd">Discovered Window handle</param>
    ''' <returns>1=keep going, 0=stop</returns>
    Private Function EnumWindowProc(ByVal hwnd As Int32, ByVal lParam As Int32) As Int32

        ' Eliminate windows that are not top-level.
        If GetParent(hwnd) = 0 AndAlso CBool(IsWindowVisible(hwnd)) Then

            ' Get the window title / class name.
            Dim window As ApiWindow = GetWindowIdentification(hwnd)

            ' Match the class name if searching for a specific window class.
            If _topLevelClass.Length = 0 OrElse window.ClassName.ToLower() = _topLevelClass.ToLower() Then
                _listTopLevel.Add(window)
            End If

        End If

        ' To continue enumeration, return True (1), and to stop enumeration
        ' return False (0).
        ' When 1 is returned, enumeration continues until there are no
        ' more windows left.

        Return 1

    End Function

    ''' <summary>
    ''' Callback function that does the work of enumerating child windows.
    ''' </summary>
    ''' <param name="hwnd">Discovered Window handle</param>
    ''' <returns>1=keep going, 0=stop</returns>
    Private Function EnumChildWindowProc(ByVal hwnd As Int32, ByVal lParam As Int32) As Int32

        Dim window As ApiWindow = GetWindowIdentification(hwnd)

        ' Attempt to match the child class, if one was specified, otherwise
        ' enumerate all the child windows.
        If _childClass.Length = 0 OrElse window.ClassName.ToLower() = _childClass.ToLower() Then
            _listChildren.Add(window)
        End If

        Return 1

    End Function

    ''' <summary>
    ''' Build the ApiWindow object to hold information about the Window object.
    ''' </summary>
    Private Function GetWindowIdentification(ByVal hwnd As Integer) As ApiWindow

        Const WM_GETTEXT As Int32 = &HD
        Const WM_GETTEXTLENGTH As Int32 = &HE

        Dim window As New ApiWindow()

        Dim title As New StringBuilder()

        ' Get the size of the string required to hold the window title.
        Dim size As Int32 = SendMessage(hwnd, WM_GETTEXTLENGTH, 0, 0)

        ' If the return is 0, there is no title.
        If size > 0 Then
            title = New StringBuilder(size + 1)

            SendMessage(hwnd, WM_GETTEXT, title.Capacity, title)
        End If

        ' Get the class name for the window.
        Dim classBuilder As New StringBuilder(64)
        GetClassName(hwnd, classBuilder, 64)

        ' Set the properties for the ApiWindow object.
        window.ClassName = classBuilder.ToString()
        window.MainWindowTitle = title.ToString()
        window.hWnd = hwnd

        Return window

    End Function

End Class



Y la uso de esta manera, pero solo obtengo el "main" handle:

Código (vbnet) [Seleccionar]
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim enumerator As New WindowsEnumerator()
    For Each top As ApiWindow In enumerator.GetTopLevelWindows()
        If top.MainWindowTitle.ToLower.Contains("firefox") Then
            RichTextBox1.Text += vbNewLine & ("main handle: " & top.MainWindowTitle)
            For Each child As ApiWindow In enumerator.GetChildWindows(top.hWnd)
                RichTextBox1.Text += vbNewLine & ("child handle: " & " " + child.MainWindowTitle)
            Next
        End If
    Next top

End Sub


Así que algo está mal.

Lo que quiero es obtener todos los handles de un proceso, como por ejemplo el output que nos da la utilidad CommandLine "CMDOW" con este comando:

C:\>cmdow | find /i "firefox"

0x2C0242 1  912 Res Ina Ena Hid firefox  Code Sample <pre><code> Ctrl+K
0x1F0C10 1  912 Res Ina Ena Hid firefox  pinvoke.net: EnumWindowsProc (Delegate
0x6E06A8 1  912 Res Ina Ena Hid firefox  MozillaDropShadowWindowClass
0x310ADA 1  912 Res Ina Ena Hid firefox  MozillaDropShadowWindowClass
0x610D3A 1  912 Res Ina Ena Hid firefox  MozillaWindowClass
0x840A54 1  912 Res Ina Ena Hid firefox  MozillaDropShadowWindowClass
0x9A08D6 1  912 Res Ina Ena Hid firefox  Search using Google (English)
0x17E057C 1  912 Res Ina Ena Hid firefox  MozillaDropShadowWindowClass
0x2E0A5A 1  912 Res Ina Ena Hid firefox  MozillaWindowClass
0x4A04DC 1  912 Min Ina Ena Vis firefox  Get all child handles of process - Sta
0xA40994 1  912 Min Ina Ena Hid firefox  pinvoke.net: EnumWindowsProc (Delegate
0x110CF4 1  912 Min Ina Ena Hid firefox  pinvoke.net: EnumChildWindows (user32)
0x560270 1  912 Min Ina Ena Hid firefox  Get handles of process forms c# - Stac
0x7B0CCC 1  912 Min Ina Ena Hid firefox  Get child window handles in C# - Stack
0x74040A 1  912 Min Ina Ena Hid firefox  Get all child handles of process - Sta
0xC0028A 1  912 Min Ina Ena Hid firefox  Get Window Handles Associated With Pro
0xAC067C 1  912 Min Ina Ena Hid firefox  vbnet get child handles of process - B
0x6308B0 1  912 Min Ina Ena Hid firefox  Process Class (System.Diagnostics) - M
0xB20B2E 1  912 Min Ina Ena Hid firefox  How to wait the process until the proc
0xA7021C 1  912 Min Ina Ena Hid firefox  vb.net - Waiting For Process To Comple
0xD30356 1  912 Min Ina Ena Hid firefox  FreeVBCode code snippet: Execute a Pro
0x583207D0 1  912 Res Ina Ena Hid firefox  nsAppShell:EventWindow
0x3C0550 1  912 Res Ina Ena Hid firefox  DDEMLEvent
0x3E065C 1  912 Res Ina Ena Hid firefox  DDEMLMom
0x590288 1  912 Res Ina Ena Hid firefox  FirefoxMessageWindow
0x2D085A 1  912 Min Ina Ena Hid firefox  vbnet wait for process end - Buscar co
0x5F0584 1  912 Res Ina Ena Hid firefox  MCI command handling window
0x2307D2 1  912 Res Ina Ena Hid firefox  MozillaHiddenWindowClass
0x1760466 1  912 Res Ina Dis Hid firefox  MSCTFIME UI
0x200CB4 1  912 Res Ina Dis Hid firefox  Default IME
0x510320 1  912 Res Ina Dis Hid firefox  Default IME
#697
Este tema me lleva días matándome, he creado 5 posts sobre temas relacionados con los handles en StackOverFlow, porque no me aclaro nada con las funciones de la API (FindWindow, FindWindowEx, etc...).

A ver, lo que necesito es, saber si una aplicación de terceros ha mostrado su icono en el systemtray, es decir, saber si "X" icono existe en el SysTray, ya séa buscando el icono por el handle del proceso, o por el nombre de la ventana, o como séa.

Para esto, primero intento obtener el handle de la aplicación, y luego el handle de mi systray, pero hasta aquí, ya no sé como seguir ni que debo hacer.

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

Public Class Form1

   Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
   Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

   Public Shared Function WindowHandle(sTitle As String) As Long
       Return FindWindow(vbNullString, sTitle)
   End Function

   Private Shared Function GetSystemTrayHandle() As IntPtr
       Dim hWndTray As IntPtr = FindWindow("Shell_TrayWnd", Nothing)
       If hWndTray <> IntPtr.Zero Then
           hWndTray = FindWindowEx(hWndTray, IntPtr.Zero, "TrayNotifyWnd", Nothing)
           If hWndTray <> IntPtr.Zero Then
               hWndTray = FindWindowEx(hWndTray, IntPtr.Zero, "SysPager", Nothing)
               If hWndTray <> IntPtr.Zero Then
                   hWndTray = FindWindowEx(hWndTray, IntPtr.Zero, "ToolbarWindow32", Nothing)
                   Return hWndTray
               End If
           End If
       End If

       Return IntPtr.Zero
   End Function

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       MsgBox(WindowHandle("Steam")) ' 6687230
       MsgBox(GetSystemTrayHandle()) ' 65728
   End Sub

End Class


#698
Tengo esta variable en el form principal:

Código (vbnet) [Seleccionar]
Dim My_Color As Color = Color.FromArgb(97, 31, 28)

El proyecto es un WinForm.

¿Hay alguna forma para usar la variable en el designer?

Lo que pretendo es que al cargar el designer, los valores de las propiedades se tomen desde mi código, ya séa con variables o de alguna otra forma.



Aquí me han dicho que no es posible: http://stackoverflow.com/questions/15900853/how-to-use-a-variable-inside-the-ide-control-properties/15900940?noredirect=1#comment22643681_15900940
Espero que alguien más pueda confirmármelo.

PD: Creo que esto si se podía hacer en los WPF.
#699
· Imágenes:

     




· Descripción:

Esta es la versión gráfica de mi aplicación "MouseLock", una utilidad que bloquea el puntero del mouse restringiéndolo a la posición del centro de la pantalla (primária).

La utilidad principal de esta aplicación es para usarla en los juegos que no disponen de dicha funcionalidad (Por si no lo saben, los juegos bien desarrollados bloquean el mouse al centro de la pantalla, un ejemplo es el "Resident Evil 6"), Un ejemplo de dichos juegos que no bloquean el mouse es el nuevo "TombRaider 2013", aunque mayormente suelen ser juegos antiguos.

-¿Porque bloquear el mouse?
Para que el mouse no interfiera en programas de terceros mientras estamos jugando, por ejemplo en programas que se activan al pasar el puntero del ratón por los bordes o los corners de la pantalla.

Aunque seguro que alguien le encontrará otro uso aparte de ese, ya que le añadí alguna otra opción personalizable... espero que os guste.


· Modo de empleo:

Es muy fácil de usar, sólamente hay que elegir entre 3 tipos de bloqueo y configurar las opciones como deseen, la aplicación avisa de cualquier cosa en el área de notificación.

Las opciones se guardan en un archivo INI, este archivo se puede configurar como quieran por si deseean portabilizarlo de alguna manera con sus juegos portables (por ejemplo)...

Delay=3
Interval=10
LockType=3
Time=17:00
APPS=example1.exe;example2.exe
IfAPPNotRunning=2
UseToggleKey=True
SpecialKey=NONE
NormalKey=F1
SysTray=True
RememberSettings=True



· Descarga:
http://elektrostudios.tk/MouseLock.rar
Enlace actualizado (12/07/2014): http://www.mediafire.com/download/m8cbrop98k4payw/MouseLock_GUI.rar

Hagan el favor de reportar bugs (si hubiera).

PD: Aquí tienen la versión CLI: http://foro.elhacker.net/net/source_mouselock-t387116.0.html
* NOTA: La versión de consola sólamente dispone de las funcionalidades básicas de la versión gráfica (-sleep, -interval y -Key).

Saludos!
#700


Esta es una aplicación que bloquea el puntero del mouse restringiéndolo a la posición del centro de la pantalla (primária) mientras X aplicación se está ejecutando.

Tiene opciones para ajustar:
-El tiempo de retardo para iniciar el bloqueo (Por defecto 3 segundos)
-El tiempo de intervalo para volver a bloquear el puntero (Por defecto 10 ms)
-Definir una tecla global especial para Activar/desactivar el bloqueo (por defecto NINGUNA)

La utilidad principal de esta aplicación es para usarla en los juegos que no disponen de dicha funcionalidad (Por si no lo saben, los juegos bien desarrollados bloquean el mouse al centro de la pantalla, un ejemplo es el "Resident Evil 6"), Un ejemplo de dichos juegos que no bloquean el mouse es el nuevo "TombRaider 2013", aunque mayormente suelen ser juegos antiguos.

-¿Porque bloquear el mouse?
Para que el mouse no interfiera en programas de terceros mientras estamos jugando, por ejemplo en programas que se activan al pasar el puntero del ratón por los bordes o los corners de la pantalla.

Aunque seguro que alguien le encontrará otro uso aparte de ese, espero que os guste.

Sintaxis:


Y esto es un ejemplo de como usarlo en un Bat que puede estar dentro por ejemplo de un AutoExtraible de WinRAR (Un juego portable):

Código (dos) [Seleccionar]
@Echo OFF

REM Lanzamos el juego, importante ejecutarlo en segundo plano con el parámetro "/B" para no detener el script.
Start /B """" "MiJuego.exe"

REM Lanzamos MouseLock
Start /W MouseLock.exe MiJuego.exe -K CTRL+C
:: Al apretar Control+C dentro del juego, se desactivará el bloqueo hasta que volvamos a presionar dicha combinación de teclas...

REM PD : Para terminar la ejecución de MouseLock hay que cerrar el juego o cerrar la consola.
REM PD2: También se pueden usar comillas dobles para encerrar cualquier argumento del programa.



Descarga:
http://elektrostudios.tk/MouseLock.rar
Enlace actualizado (12/07/2014): http://www.mediafire.com/download/blcg8rarfc0b58w/MouseLock_CLI.rar

Un saludo!
#701
Este programa lo hice en un WinForm y funcionaba bien, pero luego decidí que me iba a ser más útil por consola así que modifiqué el tipo de proyecto a "consola", añadí un módulo, eliminé el formulario, pegué el código modificando el Timer para que funcionase y añadíendo el sub main...

Creo que no me ha faltado nada por añadir o modificar, pero el timer no me funciona, es decir, el sub que asocio al evento Elapsed no funciona

Código (vbnet) [Seleccionar]
   ' Lock Tick
   Public Sub Lock_Ticks()
       Console.WriteLine("test")
       'If Running Then Cursor.Position = New Point(Screen_Center_X, Screen_Center_Y)
   End Sub


(No escribe ninguna línea.)

En el form uso dos timers, y en cambio el otro timer ("Executable timer") si que me funciona perféctamente...

Este es el test del segundo timer (el que funciona):


Y este el del que no funciona (no bloquea el mouse, el evento Elapsed de ese timer no se ejecuta):


Me he asegurado de que el intervalo del primer timer es correcto, y en fin no sé que puede estar pasando...

Y como ya digo, si todo esto lo paso a un WinForm, vuelve a funcionar de forma correcta, no lo entiendo!.






Este es el proyecto completo, lo pueden probar:

Código (vbnet) [Seleccionar]
Module Module1

#Region " Vars "

   Dim Running As Boolean = False
   Dim Errors As Boolean = False

   Dim Executable_Name As String = Nothing

   Dim Toogle_Key As System.Windows.Forms.Keys = Nothing
   Dim WithEvents Toogle_Key_Global As Shortcut = Nothing

   Dim Executable_Timer As New System.Timers.Timer
   Dim Lock_Timer As New System.Timers.Timer
   Dim Lock_Interval As Int32 = 10
   Dim Lock_Sleep As Int32 = Get_Milliseconds(3)

   Dim Screen_Center_X As Int16 = (Screen.PrimaryScreen.Bounds.Width / 2)
   Dim Screen_Center_Y As Int16 = (Screen.PrimaryScreen.Bounds.Height / 2)

#End Region

   ' Load
   Sub main()
       Pass_Args()
       Sleep()
       Lock()
   End Sub

   ' Help
   Private Sub Help()
       Console.WriteLine( _
           "[+] Syntax:" & vbNewLine & _
           vbNewLine & _
           "    MouseLock {Executable Name}" & vbNewLine & _
           vbNewLine & _
           vbNewLine & _
           "[+] Syntax (using optional features):" & vbNewLine & _
           vbNewLine & _
           "    MouseLock {Executable Name} -S {Seconds} -I {Milliseconds} -K {Key}" & vbNewLine & _
           vbNewLine & _
           vbNewLine & _
           "[+] Options:" & vbNewLine & _
           vbNewLine & _
           " -S (or) -Sleep" & vbNewLine & _
           "    The time to wait until MouseLock will be activated." & vbNewLine & _
           "    * Default is ""3000""" & vbNewLine & _
           vbNewLine & _
           " -I (or) -Interval" & vbNewLine & _
           "    The time between the mouse locks" & vbNewLine & _
           "    * Default is ""10"", maybe want to use bigger numbers in slower PC's." & vbNewLine & _
           vbNewLine & _
           " -K (or) -Key" & vbNewLine & _
           "    The key for toogle between Enabled/Disabled while MouseLock is running." & vbNewLine & _
           "    * Valid keys: A-Z, 0-9 (Numpad) and F0-F12." & vbNewLine & _
           "    * All valid keys can be combined with ALT, CTRL or SHIFT." & vbNewLine & _
           vbNewLine & _
           vbNewLine & _
           "[+] Examples:" & vbNewLine & _
           vbNewLine & _
           "    MouseLock Game.exe" & vbNewLine & _
           "    MouseLock Game.exe -S 5" & vbNewLine & _
           "    MouseLock Game.exe -I 250" & vbNewLine & _
           "    MouseLock Game.exe -K F10" & vbNewLine & _
           "    MouseLock Game.exe -Sleep 10 -Interval 500 -Key ALT+Z")
   End Sub

   ' Pass arguments
   Private Sub Pass_Args()

       ' Empty?
       If My.Application.CommandLineArgs.Count = 0 Then
           Errors = True
           Help()
           End
       End If

       ' Executable Name
       If Not My.Application.CommandLineArgs.Item(0).ToLower.EndsWith(".exe") Then
           Console.WriteLine("Bad executable name: " & My.Application.CommandLineArgs.Item(0))
           Errors = True
       Else
           Executable_Name = My.Application.CommandLineArgs.Item(0).Substring(0, My.Application.CommandLineArgs.Item(0).Length - 4)
       End If

       For I As Integer = 0 To My.Application.CommandLineArgs.Count - 1

           ' Sleep
           If My.Application.CommandLineArgs.Item(I).ToLower = "-s" Or My.Application.CommandLineArgs.Item(I).ToLower = "-sleep" Then
               Try : Lock_Sleep = Get_Milliseconds(My.Application.CommandLineArgs.Item(I + 1))
               Catch
                   Console.WriteLine("Bad argument for -Sleep")
                   Errors = True
               End Try
           End If

           ' Interval
           If My.Application.CommandLineArgs.Item(I).ToLower = "-i" Or My.Application.CommandLineArgs.Item(I).ToLower = "-interval" Then
               Try : Lock_Interval = My.Application.CommandLineArgs.Item(I + 1)
               Catch
                   Console.WriteLine("Bad argument for -Interval")
                   Errors = True
               End Try
           End If

           ' Key
           If My.Application.CommandLineArgs.Item(I).ToLower = "-k" Or My.Application.CommandLineArgs.Item(I).ToLower = "-key" Then
               Try

                   If My.Application.CommandLineArgs.Item(I + 1).ToLower.StartsWith("alt+") Then
                       Toogle_Key = [Enum].Parse(GetType(System.Windows.Forms.Keys), My.Application.CommandLineArgs.Item(I + 1).ToLower.Replace("alt+", ""), True)
                       Toogle_Key_Global = Shortcut.Create(Shortcut.Modifier.Alt, Toogle_Key)
                   ElseIf My.Application.CommandLineArgs.Item(I + 1).ToLower.StartsWith("ctrl+") Then
                       Toogle_Key = [Enum].Parse(GetType(System.Windows.Forms.Keys), My.Application.CommandLineArgs.Item(I + 1).ToLower.Replace("ctrl+", ""), True)
                       Toogle_Key_Global = Shortcut.Create(Shortcut.Modifier.Ctrl, Toogle_Key)
                   ElseIf My.Application.CommandLineArgs.Item(I + 1).ToLower.StartsWith("shift+") Then
                       Toogle_Key = [Enum].Parse(GetType(System.Windows.Forms.Keys), My.Application.CommandLineArgs.Item(I + 1).ToLower.Replace("shift+", ""), True)
                       Toogle_Key_Global = Shortcut.Create(Shortcut.Modifier.Shift, Toogle_Key)
                   Else
                       Toogle_Key = [Enum].Parse(GetType(System.Windows.Forms.Keys), My.Application.CommandLineArgs.Item(I + 1), True)
                       Toogle_Key_Global = Shortcut.Create(Shortcut.Modifier.None, Toogle_Key)
                   End If

               Catch
                   Console.WriteLine("Bad argument for -Key")
                   Errors = True
               End Try
           End If

       Next

       If Errors Then End

   End Sub

   ' Sleep
   Private Sub Sleep()
       Console.WriteLine("Sleeping for " & (Lock_Sleep \ 1000) & " seconds before start locking the mouse...")
       Dim x As Integer = 0
       While Not x = (Lock_Sleep \ 1000)
           Threading.Thread.Sleep(1000)
           x += 1
       End While
   End Sub

   ' Lock
   Private Sub Lock()
       If Process_Is_Running(Executable_Name) Then
           AddHandler Lock_Timer.Elapsed, AddressOf Lock_Ticks
           AddHandler Executable_Timer.Elapsed, AddressOf Executable_Tick
           Lock_Timer.Interval = Lock_Interval
           'Lock_Timer.Interval = 100
           Lock_Timer.Start()
           Executable_Timer.Start()
           Running = True
       Else
           Terminate()
       End If
   End Sub

   ' Lock Tick
   Public Sub Lock_Ticks()
       Console.WriteLine("test - funciona el lock timer?")
       If Running Then Cursor.Position = New Point(Screen_Center_X, Screen_Center_Y)
   End Sub

   ' Executable Tick
   Private Sub Executable_Tick()
       Console.WriteLine("test - funciona el executable timer?")
       If Not Process_Is_Running(Executable_Name) Then Terminate()
   End Sub



   ' Esta parte no es necesaria para testear
   ' Toogle Key
   'Private Sub Toogle_Key_Global_Press(ByVal s As Object, ByVal e As Shortcut.HotKeyEventArgs) Handles Toogle_Key_Global.Press
   '    Select Case Running
   '        Case False
    '           Running = True
   '            Lock_Timer.Start()
    '       Case True
   '            Running = False
   '    End Select
   'End Sub



   ' Get Milliseconds
   Private Function Get_Milliseconds(ByVal Seconds As Int32) As Int32
       Dim Time_Span As New TimeSpan(TimeSpan.TicksPerSecond * Seconds)
       Return Time_Span.TotalMilliseconds
   End Function

   ' Process Is Running
   Public Function Process_Is_Running(ByVal Process_Name As String) As Boolean
       Dim myProcess As Process() = Process.GetProcessesByName(Process_Name)
       If Not myProcess.Length = 0 Then Return True Else Return False
   End Function

   ' Terminate
   Private Sub Terminate()
       Console.WriteLine("Application """ & Executable_Name & ".exe"" is not Running.")
       Console.WriteLine("MouseLock finished.")
       Application.Exit()
   End Sub

End Module
#702
.NET (C#, VB.NET, ASP) / [SOURCE] Volium
24 Marzo 2013, 18:10 PM
Esto es una aplicación para disminuir/aumentar el volumen del PC hasta determinado punto, en un determinado tiempo.

La idea la tomé de esta aplicación: http://regravity.com/2012/08/software-volumeout-1-0/ la cual denota por su caréncia de funcionalidades, información, o algún diseño, así que decidí hacer mi própia utilidad.

El diseño de mi APP no es perfecta, se puede y debo mejorar mucho el diseño, pero espero que os parezca una aplicación útil.

  • Imágenes:

       



  • ¿Que usos se le puede dar a la aplicación?

    · La idea de utilidad principal es para las personas que de vez en cuando nos gusta irnos a dormir con los Auriculares/TV u otro dispositivo encendido, con volium podrás reducir el volumen del dispositivo conectado progresívamente...

    · Sistema anti-ladrones, por ejemplo, puedes irte de viaje y dejar Volium activado en tu casa/chalet para que crean que el recinto está habitado.

    · Seguro que a los productores musicales o gente que trabaje con Audio se le ocurre alguna otra utilidad original.


  • La aplicación dispone de 3 opciones extra:

    · Lock system volume
        Mientras la opción esté activada, previene que el volumen maestro del SO séa modificado por el usuario tanto antes como despues del Fading.

    · Minimize to systemtray
        Para minimizar la APP a la bandeja dle sistema

    · Remember settings
        Para recordar la configuración actual de las opciones


  • SOURCE: http://elektrostudios.tk/Volium.zip

    Enlace actualizado el 13/08/2014: http://www.mediafire.com/download/qz525i562fvopyg/Volium.rar

#703
Hola

Necesito intercambiar los canales estéreo (En Windows), es decir, que lo que se escuche por el canal izquierdo se escuche por el derecho, y viceversa, lo mismo que se consigue poniéndose unos auriculares al revés.

No me importaría hacerlo en el lenguaje que séa necesario, porque no he encontrado absolutamente nada en Google sobre el tema así que si hace falta aprenderé lo básico de dicho lenguaje, pero empiezo a pensar que esto de intercambiar los canales no es algo posible... sáquenme de dudas porfavor.

Yo sé utilizar la API de CoreAudioAPI para manejar el balance de cada canal, pero esto no es lo que necesito porque quiero cambiar el canal izquierdo por el derecho, es decir, quiero togglearlos, no andar ajustando el balance de cada canal...

PD: También he mirado la API de DirectX y Directsound, y la interface MCI, no me ha parecido encontrar nada que se le asimile.

Todo esto lo necesito para hacer una simple aplicación CLI con el único propósito de togglear los canales, tán "sencillo" como eso  >:(.

Gracias por leer.
#704
Perdón, quería postear en .NET y me equivoqué, ¿Me lo mueven ?, sorry >:D






Bueno pues en este sub manejo un numericupdown y un combobox

Lo que intento es, que al escribir un número mayor de "X" en el numericupdown, mostrar una pequeña alerta para indicar que no se puede aumentar el valor.

El problema es que, después de alertar una primera vez, el tooltip sigue mostrando las alertas aunque la condición no se cumpla:



El code:
Código (vbnet) [Seleccionar]
   ' NumericUpDown Time / ComboBox Time Measure
   Private Sub ComboBox_Measure_SelectedIndexChanged(sender As Object, e As EventArgs) Handles _
       ComboBox_Measure.SelectedIndexChanged, _
       NumericUpDown_Time.ValueChanged

       Select Case ComboBox_Measure.SelectedIndex
           Case 0
               ' Seconds
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, S, MS))
               Time_Measure = S
           Case 1
               ' Minutes
               If NumericUpDown_Time.Value >= 35793 Then NumericUpDown_Time.Value = 35792 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, M, MS))
               Time_Measure = M
           Case 2
               ' Hours
               If NumericUpDown_Time.Value >= 597 Then NumericUpDown_Time.Value = 596 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS))
               Time_Measure = H
           Case 3
               ' Days
               If NumericUpDown_Time.Value >= 25 Then NumericUpDown_Time.Value = 24 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 24
               Time_Measure = H
           Case 4
               ' Weeks
               If NumericUpDown_Time.Value >= 4 Then NumericUpDown_Time.Value = 3 : GoTo ToolTip
               Time_Out = (Convert_Time(NumericUpDown_Time.Value, H, MS)) * 168
               Time_Measure = H
       End Select

       Exit Sub

ToolTip:
       'ToolTip1.Active = True
       'ToolTip1.SetToolTip(Me.NumericUpDown_Time, "Max value")
       ToolTip1.Show("Max value", Me.NumericUpDown_Time, 1500)
       'ToolTip1.Hide(Me.NumericUpDown_Time)
       'ToolTip1.Active = False

   End Sub
#705
Hola

En una aplicación quiero calcular y mostrar el tiempo transcurrido y el tiempo restante, uso TimeSpan para calcular las dos cosas, pero creo que me está dando varios errores graves...  Me parece que las mediciones con TimeSpan a la larga tienen como...retrasos extraños.

Me gustaría saber que me aconsejais vosotros, los expertos, para hacer este tipo de mediciones, si el método Substract de TimeSpan o un simple Timer y sus Ticks (Lo segundo no lo he probado todavía para medir el tiempo transcurrido, por eso pregunto).

He leido que con un StopWatch también se puede, pero no he sabido utilizarlo para lo que necesito.

Un saludo!
#706
Bueno pues llevo 2 o 3 días así (y me parece que no soy el único):



¿Le pasa algo al servicio de Microsoft?, me parece algo fuera de lo normal porque he testeado desde Firefox, desde chrome, con una limpieza prévia de cookies porsupuesto, en mi Windows, y en VirtualBox, no me deja pinchar en ningún correo de entrada!
y necesito leer un correo importante pero ahora mismo no se me ocurre ningún soft con el que poder leer los correos de Hotmail, ¿Alguna sugerencia?.
#707
Si creo una aplicación y uso los metodos de "IO" o por ejemplo "My.Computer.FileSystem.CopyFile" para copiar un archivo de 50 GB, y cierro la aplicación, la operación de copiado reside en segundo plano y no se detiene hasta que el archivo haya sido copiado, así que parece ser que Windows es quien decide esto...

Mi pregunta es: ¿Se puede cancelar una operación de copiado?
y: ¿Se puede hacer de alguna manera segura? (no me gustaría que se corrompieran los datos del disco duro, o algo parecido)

No encuentro info en ningún lado

un saludo!
#708
Hola!

Desde que empecé a aprender VisualStudio siempre tuve interés por poder instalar controles de una manera automatizada, ya que suelo hacer mis própios instaladores personalizados, y mis tests  con la IDE de VS en máquinas virtuales, y allí tengo que instalar cada control que necesito manuálmente...

Actualmente hay varias (pocas) aplicaciones que nos ayudan a instalar controles de forma automática, el gran problema es que todas están desactualizadas para poder instalar un control en la versión 11 de VisualStudio (VS2012), hasta ahora...

Un usuario al que le estoy muy agradecido ha renovado el source de un antiguo proyecto (TCI), es una utilidad CommandLine para poder instalar controles en cualquier versión de VS, y la verdad es que es magnifica, se instalan en pocos segundos.

Aquí tienen el source:
http://www.imagingshop.com/download/toolbox-integration.zip

Y aquí la utilidad compilada:
http://elektrostudios.tk/DTE.zip

Instrucciones de uso:
DteToolboxInstaller.exe [install|uninstall] [vs2005|vs2008|vs2010|vs2012] [tab name] [assembly path]

Por ejemplo, si quieren instalar el control "SampleControl.dll" que va incluido en el zip, en la ToolBar de VS2012, hay que usarlo de esta manera:
DteToolboxInstaller.exe install vs2012 "Nombre del TAB" "SampleControl.dll"

Artículo completo: http://www.componentowl.com/articles/visual-studio-toolbox-control-integration#integration-dte

Espero que a muchos les sirva...

Un saludo!
#709
Lo del tiempo transcurrido lo tengo manejado ya, pero para mostrar el tiempo restante me estoy haciendo un lío...

Código (vbnet) [Seleccionar]
   Dim time_out as integer = 60000 ' 'Milisegundos

   Dim StartTime As DateTime ' Tiempo inicio
   Dim EndTime As DateTime ' Tiempo final

   Dim ElapsedTime As TimeSpan ' Tiempo transcurrido
   Dim RemainingTime As TimeSpan ' Tiempo restante


He conseguido mostrar el tiempo restante pero de una manera extraña, el problema es que, aparte de que los valores se muestran negativos, el valor de la hora y el minutero deberían ser "00"... ya que sólo estoy intentando medir el tiempo restante de una operación de "10000" MS (10 segs)

Output:


Este es el code que uso, ¿Como lo arreglo?
Código (vbnet) [Seleccionar]
#Region " Elapsed Time Function "

   Public Function Print_Elapsed_Time()
       If StartTime.ToString = "01/01/0001 0:00:00" Then
           StartTime = Now
           StartTime = StartTime.AddSeconds(-1)
       End If
       ElapsedTime = Now().Subtract(StartTime)
       Return String.Format("{0:00}:{1:00}:{2:00}", CInt(Math.Floor(ElapsedTime.TotalHours)) Mod 60, CInt(Math.Floor(ElapsedTime.TotalMinutes)) Mod 60, CInt(Math.Floor(ElapsedTime.TotalSeconds)) Mod 60)
   End Function
#End Region

#Region " Remaining Time Function "

   Public Function Print_Remaining_Time()
       If EndTime.ToString = "01/01/0001 0:00:00" Then
           EndTime = Now
           EndTime = EndTime.AddMilliseconds(Time_Out - 1000)
       End If
       RemainingTime = Now().Subtract(EndTime)
       Return String.Format("{0:00}:{1:00}:{2:00}", CInt(Math.Floor(RemainingTime.TotalHours)) Mod 60, CInt(Math.Floor(RemainingTime.TotalMinutes)) Mod 60, CInt(Math.Floor(RemainingTime.TotalSeconds)) Mod 60)
   End Function

#End Region
#710
Tengo un problema con el namespace My.Settings cuando intento modificar un valor y guardar las settings (Me sucede con cualquier propiedad...):

Código (vbnet) [Seleccionar]
   Private Sub Button1_Click(Sender As Object, e As MouseEventArgs) Handles Button1.Click
       My.Settings.Remember_Settings = True
       My.Settings.Save()
   End Sub


Me salta este error:



Esta es la excepción:
System.Configuration.ConfigurationErrorsException was unhandled
 BareMessage=Configuration system failed to initialize
 HResult=-2146232062
 Line=0
 Message=Configuration system failed to initialize
 Source=System.Configuration
 StackTrace:
      at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e)
      at System.Configuration.Internal.InternalConfigRoot.RemoveConfigImpl(String configPath, BaseConfigurationRecord configRecord)
      at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
      at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
      at System.Configuration.ConfigurationManager.GetSection(String sectionName)
      at System.Configuration.ClientSettingsStore.ReadSettings(String sectionName, Boolean isUserScoped)
      at System.Configuration.LocalFileSettingsProvider.GetPropertyValues(SettingsContext context, SettingsPropertyCollection properties)
      at System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider)
      at System.Configuration.SettingsBase.SetPropertyValueByName(String propertyName, Object propertyValue)
      at System.Configuration.SettingsBase.set_Item(String propertyName, Object value)
      at System.Configuration.ApplicationSettingsBase.set_Item(String propertyName, Object value)
      at Volium.My.MySettings.set_Remember_Settings(Boolean value) in C:\Projects\Volium\Volium\My Project\Settings.Designer.vb:line 137
      at Volium.Form1.CheckBox_Remember_Settings_CheckedChanged(Object sender, EventArgs e) in C:\Projects\Volium\Volium\Form1.vb:line 96
      at System.Windows.Forms.CheckBox.set_CheckState(CheckState value)
      at System.Windows.Forms.CheckBox.OnClick(EventArgs e)
      at System.Windows.Forms.CheckBox.OnMouseUp(MouseEventArgs mevent)
      at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
      at System.Windows.Forms.Control.WndProc(Message& m)
      at System.Windows.Forms.ButtonBase.WndProc(Message& m)
      at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
      at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
      at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
      at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
      at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
      at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
      at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
      at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
      at Volium.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81
      at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
      at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
      at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
      at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading.ThreadHelper.ThreadStart()
 InnerException: System.Configuration.ConfigurationErrorsException
      BareMessage=Unrecognized configuration section userSettings/WindowsApplication1.My.MySettings.
      Filename=C:\Users\Administrador\AppData\Local\Microsoft\Volium.vshost.exe_Url_irr03xswjdrhsokru05hku4eejmnb511\1.0.0.0\user.config
      HResult=-2146232062
      Line=4
      Message=Unrecognized configuration section userSettings/WindowsApplication1.My.MySettings. (C:\Users\Administrador\AppData\Local\Microsoft\Volium.vshost.exe_Url_irr03xswjdrhsokru05hku4eejmnb511\1.0.0.0\user.config line 4)
      Source=System.Configuration
      StackTrace:
           at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
           at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
           at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e)
      InnerException:
#711
Me gustaría saber si cuando se usa una fuente de terceros en una aplicación (por ejemplo StarWars.ttf), esta fuente se agrega automáticamente como recurso a la aplicación o algo parecido?

De no ser así, ¿Como es la manera para cargar la fuente en la aplicación?, para que funcione en todos los equipos.

Un saludo!
#712
Espero que alguien me pueda ayudar con esto...


Tengo un Timer donde debo realizar una operación.

Estos son los elementos:

Código (vbnet) [Seleccionar]
   Dim Time_Measure As String = "M"
   Dim Time_Out As Integer = 1
   Dim Current_Volume As Single = 1
   Dim Target_Volume As Single = 0.80


"Time_Measure" es un string y se refiere a segundos, minutos u horas. (S,M,H)
"Time_Out" es la cantidad "X" de "Time_Measure" (Ejemplo: 30 segundos, 1 minuto, o 5 horas)
"Current_Volume" es un valor single indefinido de 0 a 1
"Target_Volume" es otro valor single de 0 a 1

Lo que necesito hacer es calcular la relación de tiempo EN MILISEGUNDOS para disminuir un valor de "0.01" progresívamente desde al valor de "Current_Volume" hasta alcanzar el valor de "Target_Volume"

Por poner un ejemplo, si tengo estos valores:

Código (vbnet) [Seleccionar]
   Dim Time_Measure As String = "M"
   Dim Time_Out As Integer = 1
   Dim Current_Volume As Single = 1.0
   Dim Target_Volume As Single = 0.0


Traducido:
1 minuto
Current volume: 100
Target volume: 0

...Entonces deberé disminuir Cada 600 milisegundos un valor de 1 a "current volume" para alcanzar el valor de "target volume".

Para eso, con una función que hice, primero convierto los "segundos, minutos u horas" elegidas, a milisegundos, y lo divido por 100:
Código (vbnet) [Seleccionar]
Timer.Interval = Convert_Time(Time_Out, Time_Measure, MS) / 100

Pero luego ya no sé como calcular el resto de la operación teniendo en cuenta el valor de "Current_Volume" y "target_Volume"... :
Mi intento:
Código (vbnet) [Seleccionar]

* MS / targetvolume * currentvolume
Timer.Interval = Convert_Time(Time_Out, Time_Measure, MS) / (100 - Target_Volume) * (100 - CInt(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar * 100))


Creo que consigo un valor aproximado en mis estimaciones, pero no el exacto, me falta colocar bien algún factor que no sé...

¿Alguna ayuda porfavor?
#713
EDITO: ya está, estaba usando mal el parser, me faltaba dividirlo por 100 (Gracias Google):

Código (vbnet) [Seleccionar]
Target_Volume = Single.Parse(GTrackBar_Volume.Value, Globalization.NumberStyles.Any, Globalization.CultureInfo.InvariantCulture) / 100




Segúramente esto para ustedes séa muy fácil pero yo no le encuentro el punto, jeje.

Tengo un trackbar con valor de "0" a "100", y mi intención es convertir el valor del trackbar en un single.

Si el valor es "100", convertirlo a "1"
Si el valor es "50", convertirlo a "0.50"
Si el valor es "1", convertirlo a "0.01"

Código (vbnet) [Seleccionar]

   dim Target_Volume as single = 0

   Private Sub GTrackBar1_ValueChanged(sender As Object, e As EventArgs) Handles GTrackBar_Volume.ValueChanged

       If GTrackBar_Volume.Value = 100 Then
           Target_Volume = 1
       Else
           ' Aquí se desmadra...
           Target_Volume = 0.GTrackBar_Volume.Value
           ' también he probado con Single.Parse
       End If
     
   End Sub
#714

Hola...

Hasta hace poco yo tenía una nVidia GTX 650 en mi PC, tengo 3 discos duros y el SO (Windows 7 x64) me iba muy ligero.

Ahora la tarjeta está en el RMA de una tienda... y mientras tanto le he puesto una nVidia 8800GTS a mi PC, y el rendimiento ha bajado casi al 80%, cualquier operación que haga en el PC resulta más lenta, por ejemplo copiar archivos entre discos duros, abrir 2 programas a la vez, cualquier cosa tarda taaaanto que me desespera.

Mi pregunta es sencilla, ¿Son imaginaciones mías o el rendimiento de la tarjeta gráfica afecta mucho al comportamiento del SO y del PC en general, es decir, a la velocidad del PC?,
necesito salir de dudas para saber si no debo preocuparme en absoluto (porque recuperaré mi tarjeta gráfica nueva) o si quizás debo pensar que no tiene nada que ver con la gráfica y algo en el PC está fallando...

Gracias.
#715
Hardware / impresora con tinta no imprime
11 Marzo 2013, 09:56 AM
tengo una Canon Pixma Ip1800 con sus drivers correctos (siempre he usado el mismo driver) en Windows 7, los cartuchos tienen tinta porque me ha soltado un chorro en la mano xD, pero la impresora no me imprime, bueno, imprime las hojas mal, es decir, quizás empieza a imprimir el color negro pero luego todo el resto de la hoja queda complétamente blanca, sin imprimirse, ni en color ni en blanco y negro.

Los inyectores creo que estan bien, no lo sé, he realizado todos los tests de mantenimiento/limpieza de la impresora con el software pero sigue sin imprimirme nada.

¿A alguien se le ocurre algo?
#716
Hola

Antes de nada, para quien no lo sepa, esto es un Knob:



Actualmente uso un control Knob de terceros, pero con ninguna opción de customización, y me gustaría poder crear mi propio Knob así podría usar el Skin que yo quisiera (el de la imagen por ejemplo, es un PSD).

Me gustaría usar el Knob que muestro en la imagen, eso sólo es un diseño en Photoshop, pero bueno, al menos eso ya lo tengo, el diseño.

No busco hacer nada profesional, porque no tengo los conocimientos necesarios para heredar un control (Que para empezar, no se me ocurre cual) y customizarlo hasta el punto de hacer un knob, así que yo preferiría tirar al modo cutre usando pictureboxes o algo parecido (un picturebox por cada lucecita y un picturebox central para la rueda, por ejemplo)

El tema de las lucecitas azules y el skin ya lo tengo hecho, pero bien, ¿Como le doy vida a esto?, es decir, ¿Como haría para poder girar la rueda del knob con las mismas características como si se tratase de un TrackBar?, lo que quiero decir es... como le hago para que quedase igual de funcional que este Knob de terceros que estoy usando:

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

Muy a malas y todavía más cutre pero es una posibilidad, podría seguir utilizando el Knob del video pero reemplazando la imagen de la rueda blanca por la rueda negra del diseño que quiero, pero claro, si pongo una imagen encima del control, pierdo la funcionalidad del control (al pinchar en el picturebox no estoy pinchando en el Knob, así que la rueda no giraría), y no sé como añadir un handle al picturebox encima del control para que pudiese funcionar como quiero... ¿Me entienden?

Con que me digan por donde empezar me sería útil, no sé por donde cojerlo... sólo me imagino que tendré que usar el evento "hoverMouse", pero no sé como hacer para rotar la rueda... como en el Knob del video.

Esto me parece complicado, ¿Alguna ayuda?

Gracias por leer.
#717
Tengo una serie de controles llamados:
"Button_1"
"Button_2"
"Button_3"


Tengo una serie de variables llamadas:
   Dim Button_1_Location_Y As Integer = 3
   Dim Button_2_Location_Y As Integer = 32
   Dim Button_3_Location_Y As Integer = 61


Y ahora necesito usar las variables en este FOR:
Código (vbnet) [Seleccionar]
       For Each Control In Panela.Controls
           If Control.GetType.ToString.Contains("Button") Then
               Dim Botoncito As Button = CType(Control, Button)
               If Not Botoncito.Name = "Button_" & Selected_TAB Then

                   ' Aquí el problema que no sé resolver:
                   Botoncito.Location = New Point(Botoncito.Location.X, (Botoncito.name & "_Location_Y")) ' String: Button_1_Location_Y


               End If
           End If
       Next


Lo que necesito es convertir este string para usar la variable que se llama exáctamente igual:
(Botoncito.Name & "_Location_Y") ' String: Button_1_Location_Y

¿Alguna ayuda?

Saludos!
#718
Hola.

En mi aplicación muestro un MSGBOX pero la ventana del MSGBOX aparece también en el TaskBar, me he dado cuenta que esto sólo ocurre si muestro el MGSBOX desde un thread.

Aplicación:


TaskBar:


PD: Lo de la derecha es el MSGBOX, no quiero que eso aparezca en la barra de taréas.

¿Como puedo ocultar la ventana del MSGBOX en el TaskBar?, espero que no haya que recurrir a obtener el handle de la ventana del MSGBOX y esas cosas... ¿Hay algo más fácil?

Este es el código que uso:
Código (vbnet) [Seleccionar]
MessageBox.Show(My.Resources.ResourceManager.GetObject(Language_Resource & "09"), My.Settings.Version, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)


#719
EDITO 2: Ya lo he solucionado... j*der todo lo que es necesario sólo para agregar una maldita clave al registro.

Lo de usar datos binários para agregar una clave binária tiene sentido, pero que me digan que desde Batch con el comando "Reg.exe" lo puedes hacer usando como valor un string y sin ningún esfuerzo por parte del usuario/scripter, y en cambio en .NET haya que hacer todo el proceso manual y estríctamente y encima séa necesario conocer las bases principales de los bytes y el binário para poder convertir el string a sus respectivos valores de bytes y para así luego poder agregar la maldita clave... en fín! esto para mi ha sido desesperante. Este trozo de código si que lo copio y sin haber aprendido nada, porque me ha quemado del todo.

PD: ¿Alguien que entienda de arrays de bytes y todo esto me puede decir si el code está bien?, es que tuve que restarle "-1" al "data.length" (en lugar de restarle "-3" como pone en el código original) para que me funcionase corréctamente.

Solución:
Código (vbnet) [Seleccionar]
        Dim data As String = "000a42494c4c2047415445535ad50adc4f5ca6f9efc1252aadf9847f"
       Dim bytes((data.Length \ 2) - 1) As Byte
       For i As Integer = 0 To data.Length - 1 Step 2
           Dim hexByte As String = data.Substring(i, 2)
           Dim value As Byte = Byte.Parse(hexByte, Globalization.NumberStyles.AllowHexSpecifier)
           bytes(i \ 2) = value
       Next
       My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\PowerISO", "USER", bytes, Microsoft.Win32.RegistryValueKind.Binary)


http://www.dreamincode.net/forums/topic/138591-write-reg-binary-hex-to-the-registry/

Saludos.






EDITO: ya he solucionado uno de los problemas, en la función asumo que el parámetro es de tipo string y por eso el array de bytes no me tiraba ni patrás.

Ahora sólo necesito que alguien me ayude a convertir este valor hexadecimal a bytes para poder añadir la clave...

000a42494c4c2047415445535ad50adc4f5ca6f9efc1252aadf9847f

no sé como hacerlo sincéramente, he usado 3 convertidores online HEX a BIN pero no creo que eso me sirva, algo estaré haciendo mal porque esto no me funciona:

PD: los ceros sueltos ("0,0") no los puse yo a propósito, la IDE me lo convierte en ceros sueltos y "1" unos sueltos...

Código (vbnet) [Seleccionar]
           Dim BinaryData As Byte() = {11, 11, 10, 1, 11, 10, 11, 11, 11, 0, 0, 1, 0, 10, 1, 1, 0, 10, 10, 10, 10, 10, 11, 1, 11, 11, 10, 0, 0, 0, 0, 0, 0, 0}
           My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\PowerISO", "USER", BinaryData, Microsoft.Win32.RegistryValueKind.Binary)



Necesito que el contenido de la clave quede como en este ejemplo:



¿Como narices se convierte ese valor?





Hola,

Hace tiempo una función para agregar claves al registro, pero ahora me he dado cuenta de que no funciona con claves binárias, y necesita agregar una.


Código (vbnet) [Seleccionar]
   Public Function Reg_Set_Value(ByVal RegKey As String, ByVal RegValue As String, ByVal RegData As String, ByVal RegDataType As Microsoft.Win32.RegistryValueKind) As Boolean
       Try
           My.Computer.Registry.SetValue(RegKey, RegValue, RegData, RegDataType)
           Return True
       Catch ex As Exception
           Throw New Exception(ex.Message)
       End Try
   End Function


Código (vbnet) [Seleccionar]
Reg_Set_Value("HKEY_CURRENT_USER\Software\PowerISO", "USER", "000a42494c4c2047415445535ad50adc4f5ca6f9efc1252aadf9847f", Microsoft.Win32.RegistryValueKind.Binary)

También he intentado creando un array de Bytes (no sé si será una estupidez...) pero aparte de que no se si he hecho corréctamente la conversión del string a binário, no sé utilizar los bytes para esto:
Código (vbnet) [Seleccionar]
Dim val() As Byte = {0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 1, 0, 0, 0, 1, 8}
Reg_Set_Value("HKEY_CURRENT_USER\Software\PowerISO", "USER", val(), Microsoft.Win32.RegistryValueKind.Binary)


Así es como puedo crear la clave que necesito usando un script de Regedit:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\PowerISO]
"USER"=hex:00,0a,42,49,4c,4c,20,47,41,54,45,53,5a,d5,0a,dc,4f,5c,a6,f9,ef,c1,\
 25,2a,ad,f9,84,7f


Y así como lo puedo hacer en Batch:
Código (dos) [Seleccionar]
REG ADD "HKCU\Software\PowerISO" /V "USER" /T "REG_BINARY" /D 000a42494c4c2047415445535ad50adc4f5ca6f9efc1252aadf9847f /F

Ni eso ni Google me han servido para saber que estoy haciendo mal.

¿Alguna información please?

Un saludo.
#720
Hola,

Bueno pues hace sobre 1-2 semana que tengo un nuevo PC, con una GTX 650 (versión ecológica, sin el cable pci-ex) http://www.pccomponentes.com/asus_geforce_gtx_650_eco_2gb_gddr5.html

El tema es que pienso tirarla a la basura porque es una completa mi*%&#erda de tarjeta que sólo hace que dar problemas y j*derme el nuevo PC (parones, pantalla negra, pantallazos azules, flickering, errores de Windows sobre los drivers, reseteos inesperados...) en fín, lo ecológico al final acaba saliendo más caro.

Los problemas suceden cuando visualizo cualquier tipo de video, y en cualquier reproductor (incluso en el navegador, youtube), es tán extraño... con los gráficos no tengo ningún problema, puedo exprimir los juegos a la calidad ULTRA y no pasa nada, pero si inicio la reproducción de un video... ¡¡BOOM!!

Lo he intentado todo para solucionar el problema, ya no se me ocurre más!
  • Regresar a versiones antiguas del driver de nVidia
  • Instalar drivers beta de nVidia
  • Instalar Windows 7 otra vez.
  • Modificar la frecuencia de refresco de mi LCD
  • Usar un conector DVI
  • Usar un conector HDMI
  • Actualizar el driver de mi pantalla (LG LED E2350V)
  • Jugar con las opciones de la Bios, combinaciones tanto de memória como de Overclock y hasta de UEFI.
  • UNDERclockear la tarjeta desde el panel de nVidia para disminuirle la frecuencia y demás.
  • Activar/Desactivar todos los servicios de Windows
  • Preguntar en foros sin obtener una respuesta concreta...
  • Usar el parche ese que existe para la serie FX de los cores AMD (tengo un AMD FX), es un parche para juegos de Steam, pero por probar que no quede...
  • Instalar de nuevo la versión más actualizada del ATI catalyst (por el driver usb y el sata de mi core AMD, venía con ese cd de drivers)
  • Instalar de nuevo los drivers oficiales más actualizados de mi placa base
  • Volver a instalar DirectX
  • Sacar, limpiar, y re-insertar la tarjeta en la ranura de la placa base.
  • Googlear

    Al final, después de tanta m... he cambiado la tarjeta por mi antigua 8800 GTS (uso el mismo driver) y no me ha vuelto a dar problemas.

    La GTX 650 la compré porque era de ASUS y la placa base es de ASUS, pensé que sería lo mejor para la compatibilidad y además nVidia es mi favorito, ahora estoy indignado y enfadado, pues los tipos de PCComponentes no me quieren cambiar el producto (pasaron los 7 días...bah).

    Tuve que hacerle caso a Aprendiz-Oscuro desde el principio, sí, quiero pasarme al lado oscuro de ATI porque tengo un chipset AMD y creo que combinar las marcas es lo mejor por ese motivo (corregirme si eso tiene algo que ver con la compatibilidad de un producto porfavor) y no quiero volverme a encontrar con más problemas de incompatibilidad de nVidia.

    Así que... nada, tres preguntas:


    - ¿Este producto viene overclockeado por defecto? http://www.pccomponentes.com/asus_geforce_gtx_650_eco_2gb_gddr5.html (Sólo se me ocurre que me de problemas por estar super-overclockeada, he visto otras GTX 650 y tienen 1 GB, no 2, necesito que un experto me lo aclare)

    - ¿Alguna milagrosa solución para el problema de la GTX 650?

    - ¿Que tarjeta ATI me recomiendan que séa un poco mejor que la GTX 650? (Tener en cuenta la relación calidad/precio, la GTX 650 me costó 120 € y me parece demasiado cara para lo que es)


    Gracias por leer.