|
7171
|
Informática / Hardware / Problemón con mi PC, ¿será el disipador o la ram? :(
|
en: 14 Julio 2014, 19:54 pm
|
Hola A ver, no se como iniciar este post... porque realmente no sé cual podrá ser el problema, así que simplemente contaré la anécdota tal cual sin dejarme ningún detalle. Hace unos pocos días realicé un pedido a una tienda, adquirí un disipador + cooler para mi AMD Socket AM3+ (porque el ruido del cooler de fábrica era INSOPORTABLE), y una memoria RAM (simplemente para llenar una ranura más), estos son los productos que compré: · Cooler Master Hyper 212 EVO· Kingston HyperX Genesis DDR3 1866 PC3-14900 4GB (1x4GB)CL10Y esta es la RAM que yo tenia antes de hacer la compra (tengo 2 tarjetas de estas): · Kingston HyperX Beast DDR3 1866 PC3-14900 8GB 2X4GB CL9 (Porfavor, mirar las especificaciones de las 2 tarjetas por si encontrais algún conflicto) Vale, hoy me puse a montar el disipa pero es GIGANTE así que la tarjeta RAM que habia en la primera ranura no me cabia y entonces de las dos tarjetas RAM que yo ya tenia tuve que moverlas una ranura a la derecha, y coloqué la nueva RAM a la derecha de estas, osea, así:  Rojo: Disipador Verde: Ranuras RAM, las 3 de la derecha están ocupadas, la primera está vacía ...u ocupada por el disipador, según se mire xD. Terminé de colocar todo, encendí el PC y me empezó a pitar! El pitido era 1 solo, es decir 1 pitido corto, y no se veía el panel de la Bios ni nada, simplemente hacia 1 pitido y nada más ...hasta que lo volviese a encender. Pensé que pude haberla cagado al instalar el disipador, o la ram, o que me dejé algún cable suelto, yo que sé!, pero me puse a desconectar componentes hasta intentar hallar el problema, y al parecer, repito, AL PARECER se trata de la RAM, pero no la nueva, tocate los... sino la antigua!
La cosa está así según las pruebas que he realizado, lo explicaré con imágenes: Azul = Kingston HyperX Verde = Kingston HyperBeast Blanco = Ranura vacía  o también  o también  o también  Al encender el PC, después de unos pocos segundos se pone a hacer 1 pitido largo y 3 o 4 cortos, y lo repite 1 vez, luego no hace nada más, no me deja proseguir el Boot y tengo que apagarlo, eso si te deja apagarlo, porque a veces por más que mantenga pulsado el botón de apagado no se apaga xD.  o también  Al encender el PC me hace 1 pitido corto y la BIOS me lanza una pantalla extraña durante 1 segundo (no me da tiempo a leer lo que pone, pero nunca me habia salido dicha pantalla así que me parece que puede haber algún error), pero el Boot prosigue y puedo iniciar sesión (estoy escribiendo ahora mismo gracias a esa configuración de tarjetas). ¿Alguien tiene idea de lo que le ha podido pasar a mi PC?
¿En que página se podía mirar lo que significada "X" cantidad de Beeps al bootear?, ya que si no recuerdo mal, cada Beep corto y largo estaba relacionado con un problema específico.
¿Quizás hay algún conflicto entre la nueva y la vieja RAM?, ¿pero entonces porque si dejo solo la vieja RAM sigue sin funcionar?.
¿Es necesario que exista una tarjeta acoplada en la PRIMERA ranura para que bootee el PC?, ya que eso contestaría a lo de que el PC no me vaya con la antigua RAM (ya que no cabe en la primera ranura así que no la puedo poner ahí)PD: Eso si, estoy contentisimo con el nuevo disipador, apenas hace ruido. EDITO:Respecto a los beepcodes, me he estado informando y parece que para cada bios/uefi es diferente, mi placa base es una: Asus M5A97 LE R2.0 - 90-MIBJP0-G0EAY0MZ AMD Socket AM3EDITO 2:Temperaturas actuales: CPU: 26º Placa base: 41º Gráfica: 41º HDD's: entre 35º y 45º
|
|
|
7173
|
Programación / Scripting / Re: [bach]No me mueve archivos pesados por la red
|
en: 14 Julio 2014, 15:44 pm
|
Buenas. 1. No está permitido el doble post ni mucho menos el triple post, puedes utilizar el botón "Modificar" en el post principal para añadir toda la nueva información que creas conveniente. 2. move /Y "%Path_origen1%\*.trn" %unidad_red:~0,3%%Path_destino1% move /Y "%Path_origen1%\*.bak" %unidad_red:~0,3%%Path_destino1%move /Y "%Path_origen1%\*.log" %unidad_red:~0,3%%Path_destino1% Intenta proporcioanr el código con un formato legible para todos, además, esa concatenación de comandos que has echo no está nada bien y puede resultar conflictiva, separa las instrucciones en lineas y cierra los argumentos para no dejar variables abiertas como haces: Comando 1, Linea 1: Move /Y " %origen%" " %destino%" Comando 2, Linea 2: Move /Y " %origen%" " %destino%"
De todas formas, prueba con la lógica del comando RoboCopy (o en su defecto XCopy). Saludos
|
|
|
7174
|
Programación / Programación General / Re: Dar el foco a otra aplicacion (vba)
|
en: 13 Julio 2014, 15:47 pm
|
No se si te podré ayudar mucho, pero respecto a darle foco a una aplicación externa, puedes utilizar la función SetForegroundWindow, pasándole como parámetro el handle de la ventana del proceso (que no el PID). Documentación de la API:· SetForegroundWindow functionDeclaraciones al estilo VB6:Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As IntPtr) As Long
O bien puedes utilizar el método AppActivate de VB, pasándole como parámetro el título de la ventana del proceso. ¿Como obtener el título de la ventana sabiendo unicamente el nombre del proceso? Pues en Vb.NET es sencillo, la verdad es que el Framework lo pone bien a disposición en tan solo un par de instrucciones, y yo no manejo VBA, pero parece que tienes mucha labor por delante con varias funciones de la WinAPI, imagino que podrías recurrir a alguna otra función o que quizás las classes de WMI dispondrán de alguna propiedad para obtener ese dato sí que podrías realizar una query por WMI, informate sobre ello. De todas formas mírate la función GetWindowText, te servirá para obtener el título d ela ventana una vez ya haya conseguido obtener el Handle de la ventana dado el nombre del proceso. Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
EDITO: Aquí tienes una solución para obtener el PID según el nombre de un proceso, le podrías enviar el resultado a la API GetWindowText obteniendo el handle de la ventana según el PID, o bien adaptar el código apra que devuelva directamente el texto y no el PID. http://www.vbforums.com/showthread.php?537531-RESOLVED-How-to-find-Process-Handle-by-Process-NameSaludos.
|
|
|
7175
|
Programación / .NET (C#, VB.NET, ASP) / Re: Interrumpir un thread que está en "Sleep()" c++/cli
|
en: 13 Julio 2014, 14:33 pm
|
Hola Aquí tienes la respuesta extendida a tu pregunta. De todas formas te advierto que si tienes pensado controlar y manipular el estado de un hilo entonces deberias olvidar el uso de la Class Thread, ya que los métodos para pausar/continuar son obsoletos e intrusivos (como nos explican en MSDN), y en su defecto deberías utilizar la Class BackgroundWorker para manejar hilos, te llevaría bastante más escritura de código (de echo yo escribo una Class distinta para meter todo lo relacionado con cada BackgroundWorker) pero sin duda es más eficiente. Saludos
|
|
|
7176
|
Programación / .NET (C#, VB.NET, ASP) / Re: Crear una consola por hilo.
|
en: 12 Julio 2014, 21:16 pm
|
Una alternativa bastante sucia, dada la prohibición de adjuntar más de 1 consola por proceso, podría ser esta:
Por cada thread que inicies, ejecutas una CMD (instanciando la Class Process, nada de adjuntar mediante la WinAPI), y ya tendrías una consola "adjuntada" y distinta por cada thread, con todo el control necesario para escribir en el Buffer de cada una de ellas.
Saludos.
|
|
|
7177
|
Programación / .NET (C#, VB.NET, ASP) / Re: Duda con excepciones en .NET
|
en: 12 Julio 2014, 17:10 pm
|
Puedes obtener el nombre del método que lanzó la excepcion, utilizando la propiedad Exception.TargetSite. Gets the method that throws the current exception. Nota: Pero antes de pensar en usarlo para todas las circunstancias, deberías leer las "Remarks" del MSDN. Ejemplo de uso: Public Class Form1 Private Sub Test() Handles MyBase.Shown Try Me.Method1() Me.Method2() Catch ex As Exception MessageBox.Show(String.Format("Nombre del método: {0}", ex.TargetSite.Name)) End Try End Sub Private Sub Method1() Exit Sub Throw New InvalidOperationException End Sub Private Sub Method2() Throw New InvalidOperationException End Sub End Class
PD: También está disponible el nombre del método en el StackTrace, pero deberías parsear el String resultante, solo te lo comento como dato adicional porque sería una tontería hacer eso, ya que TargetSite obtiene el nombre desde el StackTrace, así que además si el StackTrace está vacío tampoco habrá un TargetSite accesible. Saludos.
|
|
|
7180
|
Programación / .NET (C#, VB.NET, ASP) / Re: Combinaciones numericas por posicion con numeros guias
|
en: 12 Julio 2014, 11:14 am
|
Como ya te expliqué sería mejor que te guiases por el código de antes y hacerle las modificaciones que resulten necesarias (lo digo por el nuevo post que has publicado con un código muy distinto), creo que tú entiendes mejor que yo el resultado que esperas obtener... Mira a ver si es esto lo que quieres: Establezco los números "guía" con sus números "asociados" (solo 20 guías), luego hago 80 combinaciones con los números "asociados" con una longitud de 6 números, y luego ordeno cada combinación de menor a mayor. Si algo de lo que acabo de comentar no es correcto, intenta ser específico. PD: Pueden darse combinaciones repetidas, pero una vez aclarado, en caso de que sea esto lo que buscas, entonces te diré como eliminar repetidas. Public Class ComboTest : Inherits Form #Region " Objects, Vars " ' La Class "Random", es necesaria para desordenar una colección ' y esta declaración tiene que ir siempre fuera de cualquier Sub. Private ComboRandomizer As New Random ' El control que creo en tiempo de ejecución, donde mostraré las combinaciones. Private rtb As New RichTextBox With { .Dock = DockStyle.Fill, .Font = New Font("Lucida Console", 10.0F) } ' Una "palanca" para habilitar/deshabilitar el bloque de depuración. Private EnableDebug As Boolean = False ' Instancio una lista donde iremos guardando cada combinación obtenida. Private Combos As New List(Of Integer()) ' Otra lista donde le daré el formato deseado a los números. Dim ComboStrings As List(Of String) = Nothing ' El máximo de combinaciones. Private Property MaxCombos As Integer = 80I ' El máximo de longitud para cada combinación. Private Property MaxComboLength As Integer = 6I ' Los números "guías" que usaremos para rellenar cada combinación. 'Private ReadOnly Numbers As Integer() = ' (From n As Integer In ' ("01-02-03-04-05-06-07-08-09-10-11-12-13-14-15-16-17-18-19-20-" & ' "21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40-" & ' "41-42-43-44-45-46-47-48-49-50" ' ).Split({"-"}, StringSplitOptions.RemoveEmptyEntries)).ToArray ' Izquierda: Número "guía" ' Derecha: Número asociado Private ReadOnly NumberWheel As New Dictionary(Of Integer, Integer) From { {1, 21}, {2, 22}, {3, 23}, {4, 24}, {5, 25}, {6, 26}, {7, 27}, {8, 28}, {9, 29}, {10, 30}, {11, 31}, {12, 32}, {13, 33}, {14, 34}, {15, 35}, {16, 36}, {17, 37}, {18, 38}, {19, 39}, {20, 40} } #End Region #Region " Constructors " ' De este Sub no hagas caso, es el constructor del Form. Public Sub New() ' This call is required by the designer. ' Add any initialization after the InitializeComponent() call. InitializeComponent() With Me ' Seteo algunas propiedades sin imortancia. .Size = New Point(320, 480) .StartPosition = FormStartPosition.CenterScreen ' Añado el control al Form. .Controls.Add(rtb) End With End Sub #End Region #Region " Event-Handlers " Private Sub ComboTest() Handles MyBase.Shown Me.DoCombos() Me.PrintCombos() End Sub #End Region #Region " Methods " ' La función que se encarga de desordenar y devolverte una combinación. ' By Elektro. 'Friend Function GetRandomCombination(Of T)(ByVal [Collection] As IEnumerable(Of T), ' ByVal [Length] As Integer) As IEnumerable(Of T) ' Return (From Item As T In [Collection] ' Order By ComboRandomizer.Next ' Take [Length]).ToArray 'End Function [Length] As Integer) As IEnumerable(Of T) Return (From Item As KeyValuePair (Of T, T ) In [Collection] Select Item.Value Order By ComboRandomizer.Next Take [Length]).ToArray End Function Private Sub DoCombos() ' Añadir combinaciones a la lista, hasta que la lista tenga 'MaxComboLength' (80) elementos. Do Until Combos.Count = (MaxCombos - 1) ' Obtengo una combinación. Dim tmpCombo As Integer() = Me.GetRandomCombination(Of Integer)(NumberWheel, MaxComboLength) ' Ordeno los elementos de la combinación, de menos a mayor. Array.Sort(tmpCombo) ' Añado la combinación a la lista. Combos.Add(tmpCombo) Loop ' Ordeno los elementos de la lista, basandome en el orden de los elementos de cada Array. ' NOTA: Puede tener fallos al ordenar, no aseguro que el orden sea perfecto. Combos = (From Combo As Integer() In Combos Order By Convert.ToDecimal(String.Join("", Combo)) Ascending).ToList Combos = (From Combo As Integer() In Combos Order By Combo.First Ascending).ToList ' Además, creo utra lista Strings, para darle formato a cada combo numérico, ' y añadirle así un "0" a los números del "1" al "9" y que quede más bonito en la previsualización xD. Me.ComboStrings = (From Combo In Combos Select (String.Join(" | ", From Value As String In Combo Select If(Value.Length = 1, "0" & Value, Value)))).ToList ' El bloque de depuración. ' Este bloque entero es para testear el formato que le quieras dar. If Me.EnableDebug Then Dim sb As New System.Text.StringBuilder With sb For Index As Integer = 0 To (MaxCombos - 1) sb.AppendLine(String.Format("Combo sin formato:")) sb.AppendLine(String.Join(", ", Combos(Index))) sb.AppendLine() sb.AppendLine(String.Format("Combo con formato:")) sb.AppendLine(String.Join(", ", ComboStrings(Index))) MessageBox.Show(sb.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Information) sb.Clear() Next Index End With End If #End If End Sub Private Sub PrintCombos() ' Muestro los Combos en el control. With Me.rtb .SuspendLayout() For Each Combo As String In Me.ComboStrings .AppendText(Combo) .AppendText(Environment.NewLine & New String("-", Combo.Length) & Environment.NewLine) Next Combo .ResumeLayout() .Select(0, 0) End With End Sub #End Region End Class
|
|
|
|
|
|
|