|
6061
|
Programación / Programación General / Re: Como podría esconder una pagina web
|
en: 29 Enero 2015, 21:58 pm
|
Buenas, primero que nada: 1) Utiliza el foro adecuado para formular preguntas sobre CMD/Batch: http://foro.elhacker.net/scripting-b64.0/
2) Cuando formules una pregunta sobre programación, si dices tener un código, como mínimo publica el contenido de dicho código.
3) Especifica el navegador también, por Dios, que no somos adivinos.
Si no he entendido mal, ¿lo que quieres hacer es ejecutar un navegador (con una url específica) y ocultar la ventana de dicho navegador?, en ese caso, en una herramienta tan simple como Batch no es posible realizar es tarea, no sin utilizar herramientas de terceros como CMDOW/NirCMD. Normalmente podrías llevarlo a cabo de forma sencilla y natural usando VisualBasicScript: Option Explicit : Dim procFilePath, procArguments, procWindowStyle, procWaitReturn procFilePath = """" & "C:\Program Files\Google Chrome\Google Chrome.exe" & """" procArguments = """" & "http://foro.elhacker.net/" & """" procWindowStyle = 0 ' Hides the window and activates another window. procWaitReturn = False Call CreateObject("WScript.Shell"). _ Run(procFilePath & " " & procArguments, procWindowStyle, procWaitReturn) Wscript.Quit(0)
El problema es que aplicaciones como Chrome o Firefox no soportan la modificación del estilo de ventana, en este caso mediante el método Run/ShellExecute para volver invisible la ventana, así que al igual que con Batch, otro lenguaje simple como es VBS tampoco te sirve para la tarea. Debes recurrir a otro lenguaje que esté capacitado para dicha tarea, o bien puedes mezclar Batch+VBS+CMDOW/NirCMD para llevarlo a cabo de una forma más simple en nivel de conocimientos, pero también mucho más tediosa. Los procesos de esos navegadores en cuestión son bastante problemáticos al respecto de esto, por lo que he leido hay mucha gente más o menos en tu misma situación (que aparecen en los resultados de Google xD), así que he decidido proporcionarte ayuda en profundidad. Lo primero de todo es obtener el navegador por defecto registrado en el SO, luego iniciar el navegador, esperar a que cargue el formulario, obtener el puntero de la ventana principal, y por último ocultar la ventana (usando la API de Windows). Pero hay un inconveniente en todo esto, ya que es necesario esperar a que la ventana se haya creado para que se defina el Handle y poder obtenerlo para así ocultar la ventana, es decir, que la ventana de firefox/chrome se debe mostrar si o si durante el tiempo necesario, que pueden ser apenas unos ínfimos ms (ni se notaría), o segundos, dependiendo del tiempo de respuesta del sistema. Aparte hay que tener en cuenta muchos otros factores, como por ejemplo el aviso de restaurar sesion de Firefox que literalmente jodería esta metodología al no estar visible la ventana principal, o que la clave de registro que almacena el directorio absoluto al navegador por defecto haya sido eliminada por el usuario, etc, etc, etc... En fin, te muestro un ejemplo de como se podria llevar a cabo, he escogido como lenguaje VB.Net al ser muy práctico, eficiente, para poder hacerlo de forma simplificada. Aquí tienes la aplicación ya compilada junto al proyecto de VisualStudio: https://www.mediafire.com/?9e5ixgz5ne6n8n8Modo de empleo: RunWebBrowserEx.exe "http://url" hide o RunWebBrowserEx.exe "http://url" show Es una aplicación que usa tecnología WinForms, es decir, con interfáz gráfica, pero he omitido la interfáz para aceptar parámetros commandline y evitar que se muestre cualquier ventana del programa  . De todas formas solo es un ejemplo de aplicación, sin controles de errores, ya que bastante he hecho. Este es el Core de la aplicación: ' Get Default WebBrowser ' By Elektro ' ''' <summary> ''' Gets the default web browser filepath. ''' </summary> ''' <returns>The default web browser filepath.</returns> Friend Shared Function GetDefaultWebBrowser() As String Dim regKey As RegistryKey = Nothing Dim regValue As String = String.Empty Try regKey = Registry.ClassesRoot.OpenSubKey("HTTP\Shell\Open\Command", writable:=False) Using regKey regValue = regKey.GetValue(Nothing).ToString() regValue = regValue.Substring(0, regValue.IndexOf(".exe", StringComparison.OrdinalIgnoreCase) + ".exe".Length). Trim({ControlChars.Quote}) End Using Catch ex As Exception Throw Finally If regKey IsNot Nothing Then regKey.Dispose() End If End Try Return regValue End Function ' Run Default WebBrowser ' By Elektro ' ''' <summary> ''' Runs the specified url using the default registered web browser. ''' </summary> ''' <param name="url">The url to navigate.</param> ''' <param name="windowState">The target web browser its window state.</param> Friend Shared Sub RunDefaultWebBrowser(ByVal url As String, ByVal windowState As SetWindowState.WindowState) Dim browserHwnd As IntPtr = IntPtr.Zero Dim browserFileInfo As New FileInfo(WebBrowserTools.GetDefaultWebBrowser) Dim browserProcess As New Process With { .StartInfo = New ProcessStartInfo With { .FileName = browserFileInfo.FullName, .Arguments = url, .WindowStyle = ProcessWindowStyle.Minimized, .CreateNoWindow = False } } browserProcess.Start() browserProcess.WaitForExit(0) Do Until browserHwnd <> IntPtr.Zero browserHwnd = Process.GetProcessById(browserProcess.Id).MainWindowHandle Loop SetWindowState.SetWindowState(browserHwnd, windowState) End Sub
Plus el P/Invoking: ' *********************************************************************** ' Author : Elektro ' Last Modified On : 10-02-2014 ' *********************************************************************** ' <copyright file="SetWindowState.vb" company="Elektro Studios"> ' Copyright (c) Elektro Studios. All rights reserved. ' </copyright> ' *********************************************************************** #Region " Usage Examples " 'Dim HWND As IntPtr = Process.GetProcessesByName("devenv").First.MainWindowHandle ' 'SetWindowState.SetWindowState(HWND, SetWindowState.WindowState.Hide) 'SetWindowState.SetWindowState("devenv", SetWindowState.WindowState.Restore, Recursivity:=False) #End Region #Region " Imports " Imports System.Runtime.InteropServices #End Region Namespace Tools ''' <summary> ''' Sets the state of a window. ''' </summary> Public NotInheritable Class SetWindowState #Region " P/Invoke " ''' <summary> ''' Platform Invocation methods (P/Invoke), access unmanaged code. ''' This class does not suppress stack walks for unmanaged code permission. ''' <see cref="System.Security.SuppressUnmanagedCodeSecurityAttribute"/> must not be applied to this class. ''' This class is for methods that can be used anywhere because a stack walk will be performed. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/ms182161.aspx ''' </summary> Protected NotInheritable Class NativeMethods #Region " Methods " ''' <summary> ''' Retrieves a handle to the top-level window whose class name and window name match the specified strings. ''' This function does not search child windows. ''' This function does not perform a case-sensitive search. ''' To search child windows, beginning with a specified child window, use the FindWindowEx function. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx ''' </summary> ''' <param name="lpClassName">The class name. ''' If this parameter is NULL, it finds any window whose title matches the lpWindowName parameter.</param> ''' <param name="lpWindowName">The window name (the window's title). ''' If this parameter is NULL, all window names match.</param> ''' <returns>If the function succeeds, the return value is a handle to the window that has the specified class name and window name. ''' If the function fails, the return value is NULL.</returns> <DllImport("user32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)> Friend Shared Function FindWindow( ByVal lpClassName As String, ByVal lpWindowName As String ) As IntPtr End Function ''' <summary> ''' Retrieves a handle to a window whose class name and window name match the specified strings. ''' The function searches child windows, beginning with the one following the specified child window. ''' This function does not perform a case-sensitive search. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx ''' </summary> ''' <param name="hwndParent"> ''' A handle to the parent window whose child windows are to be searched. ''' If hwndParent is NULL, the function uses the desktop window as the parent window. ''' The function searches among windows that are child windows of the desktop. ''' </param> ''' <param name="hwndChildAfter"> ''' A handle to a child window. ''' The search begins with the next child window in the Z order. ''' The child window must be a direct child window of hwndParent, not just a descendant window. ''' If hwndChildAfter is NULL, the search begins with the first child window of hwndParent. ''' </param> ''' <param name="strClassName"> ''' The window class name. ''' </param> ''' <param name="strWindowName"> ''' The window name (the window's title). ''' If this parameter is NULL, all window names match. ''' </param> ''' <returns> ''' If the function succeeds, the return value is a handle to the window that has the specified class and window names. ''' If the function fails, the return value is NULL. ''' </returns> <DllImport("User32.dll", SetLastError:=False, CharSet:=CharSet.Auto, BestFitMapping:=False)> Friend Shared Function FindWindowEx( ByVal hwndParent As IntPtr, ByVal hwndChildAfter As IntPtr, ByVal strClassName As String, ByVal strWindowName As String ) As IntPtr End Function ''' <summary> ''' Retrieves the identifier of the thread that created the specified window ''' and, optionally, the identifier of the process that created the window. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633522%28v=vs.85%29.aspx ''' </summary> ''' <param name="hWnd">A handle to the window.</param> ''' <param name="ProcessId"> ''' A pointer to a variable that receives the process identifier. ''' If this parameter is not NULL, GetWindowThreadProcessId copies the identifier of the process to the variable; ''' otherwise, it does not. ''' </param> ''' <returns>The identifier of the thread that created the window.</returns> <DllImport("user32.dll")> Friend Shared Function GetWindowThreadProcessId( ByVal hWnd As IntPtr, ByRef processId As Integer ) As Integer End Function ''' <summary> ''' Sets the specified window's show state. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx ''' </summary> ''' <param name="hwnd">A handle to the window.</param> ''' <param name="nCmdShow">Controls how the window is to be shown.</param> ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns> <DllImport("User32", SetLastError:=False)> Friend Shared Function ShowWindow( ByVal hwnd As IntPtr, ByVal nCmdShow As WindowState ) As Boolean End Function #End Region End Class #End Region #Region " Enumerations " ''' <summary> ''' Controls how the window is to be shown. ''' MSDN Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx ''' </summary> Friend Enum WindowState As Integer ''' <summary> ''' Hides the window and activates another window. ''' </summary> Hide = 0I ''' <summary> ''' Activates the window and displays it in its current size and position. ''' </summary> Show = 5I ''' <summary> ''' Activates and displays the window. ''' If the window is minimized or maximized, the system restores it to its original size and position. ''' An application should specify this flag when restoring a minimized window. ''' </summary> Restore = 9I End Enum #End Region #Region " Public Methods " ''' <summary> ''' Set the state of a window by an HWND. ''' </summary> ''' <param name="WindowHandle">A handle to the window.</param> ''' <param name="WindowState">The state of the window.</param> ''' <returns><c>true</c> if the function succeeds, <c>false</c> otherwise.</returns> Friend Shared Function SetWindowState(ByVal windowHandle As IntPtr, ByVal windowState As WindowState) As Boolean Return NativeMethods.ShowWindow(windowHandle, windowState) End Function #End Region End Class End Namespace
Saludos
|
|
|
6062
|
Programación / Scripting / Re: FreeSSHd Error Windows
|
en: 29 Enero 2015, 19:23 pm
|
Buenas Si la instrucción que estás utilizando es algo parecido a esto: ssh.exe me@myWindowsBox 'Dir' Entonces el problema se debe a que la aplicación espera un proceso como argumento y la aplicación interpreta "dir" como si fuera un proceso, pero obviamente no lo es, así que debes especificar el proceso CMD.exe y pasarle los argumentos a dicho proceso, por ejemplo: ssh.exe me@myWindowsBox 'cmd.exe /C Dir' En ciertas circunstancias (al usar caracteres reservados, por ejemplo al concatenar comandos) también deberás asegurarte de encerrar los argumentos pasados al proceso CMD.exe: ssh.exe me@myWindowsBox 'cmd.exe /C "Dir & Echo Hello World"' Pero, según parece creo que primero debes activar la siguiente opción: uncheck freeSSHD settings->SSH->Use new console engine ⇲ Fuente: Execute remote command? - freeSSHd and freeFTPd⇲ Otras posibles soluciones: GoogleSaludos
|
|
|
6063
|
Programación / Programación General / Re: Python o Visual Basic. Que me recomiendan aprender primero.
|
en: 29 Enero 2015, 18:40 pm
|
Y otra cosita que olvide. Una vez utilizé Visual Basic y noté que era demasiado secillo crear la parte visual, es decir, la cajas de texto, los botones, las entanas emergentes y esas cosas (el código lo auto generaba el mismo Visual Basic en segundo plano). Para lo que nesecitaba código era para especificar las interacciones entre las ventanas, cajas y botones. Acabas de descubrir la diferencia entre una IDE con soporte RAD (VisualStudio), y un lenguaje que ofrece una IDE sin practicamente ninguna utilidad valiosa para el programador más allá de sus funcionalidades más primarias (Python-IDLE). Recuerda que Python es un lenguaje de Scripting cuyo paquete de instalación lleva una IDE gratuita y orientada a principiantes (nada que ver con las IDES profesionales de terceros para Python), ¡no lo confundas con un buen patrón de programación a seguir o algo parecido por ser la herramienta que va incluida en el paquete o por parecerse al notepa o por lo que sea!, mientras que VB.Net es un lenguaje compilado y se puede adquirir una IDE de pago que proporciona las herramientas más profesionales para manejar dicho lenguaje (VS).
Encambio con Python, (la verdad no se) pero noté que nesecitabas conocer el código para cualquier cosa que quisiera hacer, como las cajas y botones, y sus funciones entre ellas. ¿Será a esto a lo que se refieren cuando dicen: Bueno, no se si es esto, pero creo que me gustaría mas así. ¿Eso lo consideras un beneficio al respecto?, no te das cuenta de lo improductivo que resulta escribirlo todo todito a mano, jeje, pero bueno, si tú crees que eso va a ser más cómodo para ti o crees que te vas a sentir más profesional por "escribir la UI a mano", o lo que sea... pues bueno, allá cada uno con sus gustos  . Pero déjame explicarte que VisualStudio solo "genera" un control dándole un estilo visual por defecto (algún estilo debe tener el control por defecto, no puede estar en blanco, vaya), quiero decir, que no te hace el trabajo, obviamente puedes modificar tanto los elementos visuales del control, como las propiedades de cada control de la misma manera que lo haces usando Python-GTK/etc en un editor, escribiendo el código a mano, al igual que puedes añadir los controles en la UI "escribiendo código" (y no usando el designer), e incluso puedes ir mucho más lejos y crear tus propios controles de forma bastante sencilla (o compleja variando las necesidades), y dinamicamente.
Ya que no me gusta mcho la idea de depender de un programa para hecer las cosas. (Es como DreamWaver y el Bloc de Notas de windown. El DreamWaver podria hacerlo todo y tu no aprenderás nada, mientras que el Bloc de Notas no hará nada pero tu podrías hacerte llamar Diseñador Web  ) Por usar un GUI builder para añadir un control en la UI arrastrando el ratón no vas a estar aprendiendo más, ni menos, ni tampoco te va a hacer peor programador ni mucho menos mejor, ni te estará haciendo el trabajo sucio si es lo que piensas. Todo eso son conceptos erroneos, en mi opinión. De hecho, es una característica que va ligada a los estándares de la programación de hoy en día, cualquier IDE que tenga integrado un GUI builder, no solo se ve en VB.Net, sino en IDES de Java, C++, C#, Delphi, etc, y Python, porsupuestisimamente: ⇲Is there an GUI Designer for python?¿Y por que se usan esas herramientas en lugar de un editor de texto?, La razón principal es obvia, fue un avance informático muy importante en lo relacionado con el desarrollo de aplicaciones, y deberías aprovecharlo. Aquí puedes leer un poco sobre el tema del que estoy hablando, algunas características muy importantes que se suelen ver en una IDE: ⇲Rapid application developmentGraphical user interface builderIntelligent code completionDebugger
El DreamWaver podria hacerlo todo y tu no aprenderás nada, mientras que el Bloc de Notas no hará nada pero tu podrías hacerte llamar Diseñador Web  ) Por eso yo eliminé de mi PC a DreamWaver y descargue el NotePad...  Seguimos con el ejemplo entre una IDE wysiwyg orientada a la programación Web y una IDE orientada al desarrollo de aplicaciones de escritorio, ¡Es algo totalmente distinto!. Hay gente capaz de escribir una página html con el notepad, si, por supuesto, es algo relativamente fáicl, y bueno, el scripting se basa más o menos en eso, en escribir y escribir instrucciones en un editor, omitiendo otros detalles innecesarios como la elaboración de una GUI, no por eso está mal usar un GUI builder cuando necesitar desarrollar una GUI en un lenguaje de Scripting, para eso existen. Dices que usas notepad en lugar de DreamWeaver porque así te puedes hacer llamar "diseñador de webs" al no usar una IDE, es decir, ¿que te sientes mejor programador al usar una herramienta primitiva, al imponerte límites inecesarios por negarte a usar los beneficios de las herramientas modernas?, ¿que sentido le ves a eso?. EDITO: No se mucho sobre programación web, pero uno de mis hermanos lleva décadas diseñando Webs y he adquirido muchas experiencias de él, tienes razón en que quien suele aprender a usar Dreamweaver luego no sabe hacer nada por si solito a mano por ejemplo ni sabe cómo corregir bugs ni nah, pero es que esto es muy distinto, esto no es Html, el buen programador (de webs, y de lo que sea) es aquél que mejor sabe aprovechar los recursos de su entorno (entre otras cosas, como conocer sus capacidades, intentar desarrollar un algoritmo de la forma más eficiente, ser humilde, blah blah blah... ese no es el tema ahora), una IDE aumenta tu rendimiento/productivas en un 200%, mientras que el notepad solo te ralentiza en cada tarea ...por no decir que ni siquiera puedes debuggear una app, ya me dirás que cualidades ganarás como desarrollador de software usando un editor de texto para programar, en lugar de una IDE capacitada, aunque sea un simple script de Python. Estás muy equivocado con ese manera de pensar.
Pero yo me inclino a Python, porque se que cuando llegue a las cosas avanzadas Python será mejor opción (bueno, lo sé por lo que leo en internet  )... Generalizando con las espectativas y las necesidades de un programador "estándar", no va a haber practicamente NADA que puedas desarrollar en Python pero no puedas hacerlo en VB.Net, y viceversa
Sobre la elección entre Python o VB.Net: Al final todo depende de gustos y necesidades, quiero dejar claro que todo lo que he comentado hasta ahora y lo que voy a comentar solo es mi opinión personal, pero yo y mis gustos coincidimos en que Python es improductivo empezando por su estricta sintaxis, y dejándome por el camino cientos de razones más (que ya he comentado en muchas ocasiones en otros posts). Entre dos lenguajes tan capacitados en funcionalidades como Python y VB.Net, la mejor opción es aquella con la que más a gusto estés y la que mejor se adapte a tu forma de trabajar en lo referente a la programación, no solo cuenta el lenguaje o sus capacidades/limitaciones, sino también la herramienta (IDE) que vayas a utilizar (si, hazte a la idea que no vas a usar por siempre el notepad si tienes pensado programar de forma seria en el lenguaje que sea, acabarás usando una IDE con características profesionales, de esas que tanto te has quejado en los comentarios), asi que simplemente evalua bien las distintas características que te ofrece cada lenguaje. PD: Yo aprendí de forma básica Python (sin profundizar excesivamente en sus Internals), para evaluarlo como lenguaje, y luego pasé por la misma elección, ¿Python o VB.Net?, bueno, creo que te podrás dar cuenta de cual fue mi decisión si te fijas en la imagen de mi avatar xD. Saludos!
|
|
|
6064
|
Programación / Scripting / Re: Batalla naval Python!!!
|
en: 29 Enero 2015, 17:10 pm
|
en la linea 31 tengo un error y no se que esta mal ¿Y cual es el mensaje de error?, no somos adivinos.
elif tablero[adivina_fila][adivina_columna] == "X": tablero es una lista bacíaCreo que tú mismo lo has resuelto sin darte cuenta: Estás intentando acceder a un elemento inexistente, por que la lista está vacía, así pues dará un error de índice fuera de rango. Solo debes inicializar la lista antes de intentar usarla en la condicional que has mostrado. Ejemplo funcional: matrix = [ ["A0","B0"], ["A1","B1"] ] if matrix[1][1] == 'A1': pass; # Do Nothing. elif matrix[1][1] == 'B1': print "Felicitaciones, Hundiste mi barco!"
Si tienes otro tipo de error, especifíca el mensaje de error. Saludos!
|
|
|
6065
|
Programación / .NET (C#, VB.NET, ASP) / Re: como agregar texto en el body de un webbrowser
|
en: 29 Enero 2015, 02:20 am
|
¿Te has dado cuenta que en el html que has mostrado NO has encerrado el style de CSS con comillas dobles?, no se si ha sido un error de edición por tu parte al publicar el código, o si ese es el mismo html original de la página, entonces esa podría ser la causa del problema, ya que con este error de sintaxis yo tampoco consigo reconocer correctamente el elemento: Ejemplo funcional: Private Sub HtmlTest() Dim htmlText As String = <a><![CDATA[ <body id="B" style="padding: 0px; margin: 2px; color: rgb(0, 0, 0); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 15px; background: rgb(255, 255, 255);"> This is a test inner text </body> ]]></a>.Value Dim htmlElement As HtmlElement Dim wb As New WebBrowser With { .Dock = DockStyle.Fill, .DocumentText = String.Empty } Me.Controls.Add(wb) wb.Document.Write(htmlText) htmlElement = wb.Document.GetElementById("B") Select Case htmlElement Is Nothing Case False htmlElement.InnerText = "halooooo???" Debug. WriteLine(htmlElement. OuterHtml) Case Else Throw New NullReferenceException("Element not found") End Select End Sub
Saludos
|
|
|
6067
|
Programación / Scripting / Re: Batalla naval Python!!!
|
en: 28 Enero 2015, 21:24 pm
|
Algo relacionado con problemas de codificación y su solución ya se te explicó aquí: Problema en python [alguno me ayuda??vuelve a leer atentamente  Pero en esta ocasión el error parece tener que ver con la codificación de la shell (no como en la otra pregunta), prueba así # encoding=utf8 import sys reload(sys) sys.setdefaultencoding('utf8')
saludos
|
|
|
6068
|
Programación / Desarrollo Web / Re: ¿registrar? sublime text 2
|
en: 28 Enero 2015, 21:13 pm
|
Deberías usar la versión 3.X, a pesar de que son betas, se actualizan frecuentemente y dan Cero problemas teniendo más funcionalidades que la versión 2.X, obviamente.
El registro de Sublime Text es opcional, todas sus características son funcionales en la modalidad gratuita, con el inconveniente de mostrar el molesto aviso de licencia.
Los cracks de Sublime Text que verás por ahí consisten en un archivo de texto plano que contiene la licencia que introducir en la interfaz del programa (no hay keygens, archivos ejecutables), vamos, que no hay riesgo alguno de infectarte por leer un archivo de texto. ...te lo comento solo como dato adicional, ya que en el foro está prohibido el pedido de cracks.
Saludos.
|
|
|
6069
|
Programación / Scripting / Re: Batalla naval Python!!!
|
en: 28 Enero 2015, 20:59 pm
|
pero creo que tengo problemas con el módulo, eso es lo que me dice el interprete: Traceback (most recent call last): File "python", line 31, in <module> NameError: name 'board' is not defined El error se está explicando por si mismo. No existe ningún miembro deifnido en el código con el nombre ' board', quizás quisiste decir ' tablero', que es como se llama tu lista: import random tablero = [] ...
Saludos.
|
|
|
6070
|
Programación / Programación General / Re: jbuilder
|
en: 28 Enero 2015, 20:06 pm
|
I.A.1.b. Temas prohibidos. Para mantener un control sobre el contenido del foro, así como de su uso y legalidad, ciertos temas deben ser controlados, temas con este contenido podrían ser borrados o cerrados. Estos temas no pueden ser discutidos en el foro en absoluto, y la acción de hablar de ellos continuamente podría conllevar a una de las sanciones especificadas en la sección III.C, dichos temas son:
... Solicitar Cracks y/o Serials ... Tema cerrado.
|
|
|
|
|
|
|