|
9341
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets !! (Posteen aquí sus snippets)
|
en: 17 Marzo 2013, 13:13 pm
|
Obtener la edición de Windows (Sólo para windows VISTA o superior) #Region " Get OS Edition Function " ' [ Get OS Edition Function ] ' ' Examples : ' Dim Edition As String = Get_OS_Edition() ' MsgBox("You are running Windows " & Get_OS_Edition() & " Edition") Private Const STARTER As Integer = &HB Private Const HOME_BASIC As Integer = &H2 Private Const HOME_BASIC_N As Integer = &H5 Private Const HOME_PREMIUM As Integer = &H3 Private Const HOME_PREMIUM_N As Integer = &H1A Private Const BUSINESS As Integer = &H6 Private Const BUSINESS_N As Integer = &H10 Private Const ENTERPRISE As Integer = &H4 Private Const ENTERPRISE_N As Integer = &H1B Private Const ULTIMATE As Integer = &H1 Private Const ULTIMATE_N As Integer = &H1C Private Declare Function GetProductInfo Lib "kernel32" (ByVal dwOSMajorVersion As Integer, ByVal dwOSMinorVersion As Integer, ByVal dwSpMajorVersion As Integer, ByVal dwSpMinorVersion As Integer, ByRef pdwReturnedProductType As Integer) As Integer Public Function Get_OS_Edition() As String Dim Edition_Type As Integer If GetProductInfo(Environment.OSVersion.Version.Major, Environment.OSVersion.Version.Minor, 0, 0, Edition_Type) Then Select Case Edition_Type Case STARTER : Return "Starter" Case HOME_BASIC : Return "Home Basic" Case HOME_BASIC_N : Return "Home Basic N" Case HOME_PREMIUM : Return "Home Premium" Case HOME_PREMIUM_N : Return "Home Premium N" Case BUSINESS : Return "Business" Case BUSINESS_N : Return "Business N" Case ENTERPRISE : Return "Enterprise" Case ENTERPRISE_N : Return "Enterprise N" Case ULTIMATE : Return "Ultimate" Case ULTIMATE_N : Return "Ultimate N" Case Else : Return "Unknown" End Select End If Return Nothing ' Windows is not VISTA or Higher End Function #End Region
|
|
|
9342
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets !! (Posteen aquí sus snippets)
|
en: 17 Marzo 2013, 11:18 am
|
Checkar si un número está entre un rango de números. PD: Si conocen un método mejor porfavor postéenlo #Region " Number Is In Range Function " ' [ Number Is In Range Function ] ' ' // By Elektro H@cker ' ' Examples : ' MsgBox(NumberIsInRange(50, 0, 100)) ' If NumberIsInRange(5, 1, 10) then... Private Function NumberIsInRange(ByVal Number As Integer, ByVal MIN As Integer, ByVal MAX As Integer) As Boolean Select Case Number Case MIN To MAX : Return True Case Else : Return False End Select End Function #End Region
Modificar permisos de archivos: #Region " Set File Access Function " ' [ Set File Access Function ] ' ' // By Elektro H@cker ' ' Examples : ' Set_File_Access("C:\File.txt", File_Access.Read + File_Access.Write, Action.Allow) ' Set_File_Access("C:\File.txt", File_Access.Full, Action.Deny) Public Enum File_Access Delete = System.Security.AccessControl.FileSystemRights.Delete + Security.AccessControl.FileSystemRights.DeleteSubdirectoriesAndFiles Read = System.Security.AccessControl.FileSystemRights.ExecuteFile + System.Security.AccessControl.FileSystemRights.Read Write = System.Security.AccessControl.FileSystemRights.Write + Security.AccessControl.FileSystemRights.WriteAttributes + Security.AccessControl.FileSystemRights.WriteExtendedAttributes Full = Security.AccessControl.FileSystemRights.FullControl End Enum Public Enum Action Allow = 0 Deny = 1 End Enum Private Function Set_File_Access (ByVal File As String, ByVal File_Access As File_Access, ByVal Action As Action ) As Boolean Try Dim File_Info As IO. FileInfo = New IO. FileInfo(File) Dim File_ACL As New System.Security.AccessControl.FileSecurity File_ACL.AddAccessRule(New System.Security.AccessControl.FileSystemAccessRule(My.User.Name, File_Access, Action)) File_Info.SetAccessControl(File_ACL) Return True Catch ex As Exception Throw New Exception(ex.Message) ' Return False End Try End Function #End Region
|
|
|
9343
|
Programación / .NET (C#, VB.NET, ASP) / Re: [APORTE] Snippets !! (Posteen aquí sus snippets)
|
en: 17 Marzo 2013, 11:12 am
|
Funciones para controlar el volumen maestro del PC... Se necesita la API "Vista Core Audio API" : http://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control· Obtener el volumen maestro: #Region " Get Master Volume Function " ' [ Get Master Volume Function ] ' ' // By Elektro H@cker ' ' Examples : ' Dim Volume As Integer = Get_Master_Volume(Volume_Measure.As_Integer) ' Dim Volume As String = Get_Master_Volume(Volume_Measure.As_Percent) Public Enum Volume_Measure As_Integer As_Decimal As_Single As_Percent End Enum Private Function Get_Master_Volume(ByVal Volume_Measure As Volume_Measure) Select Case Volume_Measure Case Form1.Volume_Measure.As_Integer : Return CInt(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar * 100) Case Form1.Volume_Measure.As_Decimal : Return (String.Format("{0:n2}", Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar)) Case Form1.Volume_Measure.As_Single : Return CSng(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar) Case Form1.Volume_Measure.As_Percent : Return CInt(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar * 100) & "%" Case Else : Return Nothing End Select End Function #End Region
· Setear el volumen maestro: #Region " Set Master Volume Function " ' [ Set Master Volume Function ] ' ' // By Elektro H@cker ' ' Examples : ' Set_Master_Volume(50) Private Function Set_Master_Volume(ByVal Value As Integer) As Boolean Try : Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar = (Value / 100) Return True Catch ex As Exception : Throw New Exception(ex.Message) End Try End Function #End Region
· Mutear el volumen maestro: #Region " Mute Master Volume Function " ' [ Mute Master Volume Function ] ' ' // By Elektro H@cker ' ' Examples : ' Mute_Master_Volume(False) ' Mute_Master_Volume(True) Private Function Set_Master_Volume(ByVal Mute As Boolean) As Boolean Try : Audio_Device.AudioEndpointVolume.Mute = Mute Return True Catch ex As Exception : Throw New Exception(ex.Message) End Try End Function #End Region
· Deslizar el volumen maestro (Desvanecer o aumentar): (Corregido) Instrucciones: Fade_Master_Volume(Desde el volumen, Hasta el volumen, En "X" Milisegundos, Forzar/NoForzar el devanecimiento) #Region " Fade Master Volume Function " ' [ Fade Master Volume Function ] ' ' // By Elektro H@cker ' ' Examples : ' Fade_Master_Volume(0, 100, 5000, Fading_Mode.FadeIN, True) ' Fade_Master_Volume(80, 20, 5000, Fading_Mode.FadeOUT, False) ' Fade_Master_Volume(10, 50, 5000, Fading_Mode.None, True) Dim Fade_Value_MIN As Integer Dim Fade_Value_MAX As Integer Dim Fade_TimeOut As Long Dim Fade_Mode As Fading_Mode Dim Force_Fading As Boolean Dim Fader_Timer As New Timer Public Enum Fading_Mode FadeIN = 0 FadeOUT = 1 None = 2 End Enum ' Fade Master Volume Function Private Function Fade_Master_Volume(ByVal MIN As Integer, ByVal MAX As Integer, ByVal Milliseconds As Long, ByVal Mode As Fading_Mode, ByVal Force As Boolean) As Boolean If MIN <= 100 And MIN >= 0 And MAX <= 100 And MAX >= 0 Then Try Fade_Value_MIN = MIN Fade_Value_MAX = MAX Fade_TimeOut = Milliseconds Fade_Mode = Mode Force_Fading = Force Fader_Timer = New Timer AddHandler Fader_Timer.Tick, AddressOf Fade_Master_Volume_Timer_Tick Select Case Mode Case Fading_Mode.FadeIN : Fader_Timer.Interval = Milliseconds / (MAX - MIN) Case Fading_Mode.FadeOUT : Fader_Timer.Interval = Milliseconds / (MIN - MAX) Case Fading_Mode.None : Fader_Timer.Interval = Milliseconds End Select Fader_Timer.Enabled = True Return True Catch ex As Exception : Throw New Exception(ex.Message) End Try Else Throw New Exception("Number is not in range from 0 to 100") End If End Function ' Fade Master Volume Timer Tick Event Private Sub Fade_Master_Volume_Timer_Tick(sender As Object, e As EventArgs) Dim Current_Vol As Integer = CInt(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar * 100) Select Case Fade_Mode Case Fading_Mode.FadeOUT If Not Force_Fading Then If Not Current_Vol <= Fade_Value_MAX Then : Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar -= 0.01 ElseIf Current_Vol >= Fade_Value_MAX Then : Fader_Timer.Stop() : Fader_Timer.Enabled = False End If ElseIf Force_Fading Then If Not Fade_Value_MIN < Fade_Value_MAX Then Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar = (Fade_Value_MIN / 100) Fade_Value_MIN -= 1 Else : Fader_Timer.Stop() : Fader_Timer.Enabled = False End If End If Case Fading_Mode.FadeIN If Not Force_Fading Then If Not Current_Vol >= Fade_Value_MAX Then : Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar += 0.01 ElseIf Current_Vol <= Fade_Value_MAX Then : Fader_Timer.Stop() : Fader_Timer.Enabled = False End If ElseIf Force_Fading Then If Not Fade_Value_MIN > Fade_Value_MAX Then Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar = (Fade_Value_MIN / 100) Fade_Value_MIN += 1 Else : Fader_Timer.Stop() : Fader_Timer.Enabled = False End If End If Case Fading_Mode.None Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar = Fade_Value_MAX Fader_Timer.Stop() : Fader_Timer.Enabled = False End Select End Sub #End Region
|
|
|
9344
|
Informática / Software / Re: ¿Algún programa que apague mi ordenador?
|
en: 17 Marzo 2013, 07:25 am
|
Aplicaciones para la programación del apagado del PC hay a patadas, pero la opción de apagar el equipo cuando los trabajos/conversiones se han finalizado... esa opción debería ir incluida en tu conversor de vídeos, sincéramente, no he visto ningún conversor de videos que no tenga dicha opción, si el tuyo no la tiene deberías ir pensando en cambiar de software por alguno más útil.
Si piensas usar una aplicación de terceros (un programador del apagado del equipo), y vas a intentar asociar el apagado para que se apague el PC cuando tu conversor finalize las conversiones... eso no vas a poder hacerlo, ni tampoco vas a poder hacerlo creando una taréa programada de Windows, por eso te digo que lo mejor es que uses un buen software con multitud de opciones...
O cambiar de conversor, o realizar un script para medir el consumo de RAM del executable de tu conversor, y cuando la RAM del proceso séa menor de "X", usar el comando mencionado por Saberuneko para apagar el PC...
EDITO: O tamvien puedes habilitar el modo de hibernación en tu PC... así cuando finalicen las conversiones (y teniendo en cuenta que no hayan otras operaciones en segundo plano), a los pocos minutos el PC entrará en modo hibernación y no consumirá casi energía...
Deberías comentar que aplicación usas porque estoy seguro que si es un software decente debe tener dicha opción.
Un saludo.
|
|
|
9346
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema matemático (vigésimo quinta edición xD)
|
en: 16 Marzo 2013, 15:11 pm
|
Me salvaste $Edu$ La verdad es que yo ya estaba empezando a no entender ni mi própio problema ni lo que debía obtener xD, pero lo entendiste bien, era eso lo que necesitaba... Asi que cada 3333,33.... milisegundos, a 50 se le restara 1 hasta llegar a 20, por lo tanto este Timer se ejecutara 30 veces cada 3333,33... milisegundos. Lo que pasa es que dependiendo de si quiero disminuir o aumentar el valor, deberé intercambiar "X" por "Y" en la resta, aquí: Hacemos la diferencia de x e y = 50 - 20 = 30. ¿Estoy en lo cierto?, supongo que sí, porque he hecho las mediciones de lo que tarda el proceso, y parece que funciona corréctamente: If Fade_IN Then Timer.Interval = Convert_Time(Time_Out, Time_Measure, MS) / (CInt(Target_Volume * 100) - CInt(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar * 100)) Else Timer.Interval = Convert_Time(Time_Out, Time_Measure, MS) / (CInt(Audio_Device.AudioEndpointVolume.MasterVolumeLevelScalar * 100) - CInt(Target_Volume * 100)) End If
Bueno, gracias de nuevo, un saludo!
|
|
|
9347
|
Programación / .NET (C#, VB.NET, ASP) / Re: Problema matemático (vigésimo quinta edición xD)
|
en: 15 Marzo 2013, 18:27 pm
|
¿Nada?, ¿Alguien me puede ayudar a resolver del todo esa operación? Es para poder terminar esta aplicación, la cual pienso compartir, y sólo me falta eso... Aquí podeis entender mejor los factores de la operación que necesito realizar: Uso las variables que he comentado en los posts de arriba, y el problema es que siempre se pasa (o no llega) al tiempo escojido, porque calculo mal la operación... Agradecería mucho una ayuda más para esto. Saludos...
|
|
|
9348
|
Informática / Hardware / Re: Pregunta sobre el efecto de rendimiento de una tarjeta gráfica
|
en: 15 Marzo 2013, 15:36 pm
|
PD: Doy por hecho de que te han mandado tu nueva gráfica, la tienes puesta y ningun problema como el de los de los hilos anteriores.... Pues nada a disfrutarla, esperemos que no te tengamos que ver por aqui con mas problemas Gracias. A mi tampoco me gusta dar por culo xD, preferiría no tener problemas con algo que cuesta tanta pasta... pero bueno, si me surgen problemas con la "nueva" tarjeta no voy a preguntar, porque ya lo probé todo y más no puedo hacer, diréctamente me compraría la ATI que me dijiste (ya buscaré la numeración correcta en los posts anteriores) Tu eres el experto así que si me cuentas eso del rendimiento de las gráficas...pues me lo creo, y quizás ese bajón de rendimiento séa de nuevo por la única razón de que la tarjeta es una maldita nVidia y nVidia da problemas, ya le estoy cojiendo mucho asco a las tarjetas nVidia. Un saludo y gracias Aprendiz-Oscuro, Borracho, Raul, e Imoen.
|
|
|
9349
|
Sistemas Operativos / Windows / Re: ¿Cómo puedo extraer todos los drivers y actualizaciones instalados en Windows7?
|
en: 15 Marzo 2013, 14:59 pm
|
Double Driver, está en inglés, pero es fácil e intuitivo de usar. Ese es el que yo he usado siempre, pero por experiencia no recomiendo dicho programa, no realiza backups seguros, es decir, puede omitir varios archivos necesarios al realizar el backup, por lo tanto el script de restauración no va a funcionar ni a la de trés. Es cierto que es sencillo, bonito, e intuitivo, pero a ese programa aún le queda mucho por pulir. Te recomiendo este: https://sourceforge.net/projects/drvback/En mi opinión muchísimo mejor que DoubleDriver (Y que le resto), y como no, genera scripts de restauración de los drivers. EDITO:DriverBackup hasta ahora no me ha fallado en ningún aspecto, el Double Driver me omite ciertos archivos .inf del driver de mi Tarjeta de Sonido (SB X-Fi Xtreme Audio), mientras que el DriverBackup no omite ninguno y puedo restaurarlo corréctamente. EDITO 2:Pero lo que estás haciendo no es nada correcto, lo que deberías hacer es descargarte el instalador oficial de CADA driver que necesites (T.Gráfica, T.Sonido, Red, etc) y hacer un Silent Install de cada instalador para ejecutarlos en la post instalación del Windows modificado, eso es MUCHO más seguro 100 veces que usar esos programas de backups de drivers. Eso lo puedes hacer desde el RunOnce, lanzando las aplicaciones con el parámetro de instalación automática/silenciosa Ejemplo: DriverSonido.exe /Silent DriverVideo.exe /Install Yo por ejemplo tengo mi propio instalador del driver de nVidia, cuando hay una nueva actualización del driver en la página, compilo mi instalador con lo que necesito y le quito las m*erdas (controladora 3d vision, etc...). No hace falta llegar a tanto si no sabes hacerlo, puedes descargar el instalador oficial y usar el parámetro de instalación silenciosa, eso es lo que te digo, TODOS los instaladores de drivers tienen dicho parámetro. Saludos!
|
|
|
9350
|
Informática / Hardware / Re: Pregunta sobre el efecto de rendimiento de una tarjeta gráfica
|
en: 15 Marzo 2013, 14:50 pm
|
Hola
Ya no hay dudas, era la tarjeta 8800GTS.
He colocado la nueva GTX (No he hecho ningún otro cambio), y ahora va normal, todo va rapidísimo.
Os digo un pequeño mini-test:
Taréa: Abrir al mismo tiempo: Firefox + JD + uTorrent Tiempo: Con la 8800GTS: entre 70-90 segundos (y eso sólo para abrirse, no para cargar del todo...) Tiempo: Con la GTX 650: entre 8-12 segundos para abrirse y cargar del todo las aplicaciones.
Taréa: Demuxear un mkv de 3 GB mientras transfiero un archivo de 1 GB a un disco duro secundario Tiempo para finalizar el demux: Con la 8800GTS: de 2:30 a 5 minutos (una eternidad) Tiempo para finalizar el demux: Con la GTX 650: el archivo se transfiere en 10-15 segundos y el demux finaliza sobre 20-30 segundos.
Añado un comentario a este mini test: la tasa de transferencia de un disco a otro se cuadruplica con la GTX 650, mientras que con la 8800GTS me empezaba a ir a 32 MB/s la transferencia... (Y son discos sata3).
Conclusiónes: No sabía que la tarjeta gráfica afectase tanto a la velocidad del OS y de los discos, así que ahora sé que en un futuro no debo escatimar con el précio de la gráfica porque se va a notar mucho en el rendimiento general del PC, de todo el SO e incluido de los discos duros, aparte de los gráficos claro.
PD: Creo que ya no es necesario contestar a los comentarios de arriba...
Un saludo!
|
|
|
|
|
|
|