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ú

Mensajes - Black.scorpion.x

#1
Hola estimados me encuentro desarrollado aplicación obtiene el DOM de un sitio web, el cual saque el contenido en primer instancia en WinForms y ahora me encuentro tratando de implementar lo mismo que realice WinForms a un WebForm en C#.
1.- La página a la cual estoy recorriendo del DOM con C# tiene varios IFRAME el código HML del sitio Web
2.- Dentro del código de C# necesitaba leer el contenido que se encontraba dentro del  IFRAME con el id=A4, Dentro de Iframe.
3.- Dentro del IFRAME  con el id A4 este contienes varios Select anidados con Ajax donde, como señale anteriormente tengo problemas para leer.
4.- El problema es el siguiente tratao de leer los select que se encuentra dentro del iframe A4 lo cual lo realizo en le WinForm pero cuando trato de adaptar el código al WebForm me aparece el siguiente problema

Mensaje de error del compilador: CS0104: 'HtmlElement' es una referencia ambigua entre 'System.Web.UI.HtmlControls.HtmlElement' y 'System.Windows.Forms.HtmlElement'
El código HTML es el siguiente :
<body>
<div id="contFrameUno" class="frameWrapper" style="margin: 0px auto; width: 100%;">
<div id="contFrameDos" class="frameWrapper" style="margin: 0px auto; width: 100%;">
<iframe id="a1" width="100%" height="103px" frameborder="0" style="vertical-align:top;" scrolling="no" src="top.php" name="a1">
<br>
<iframe id="a3" width="16%" height="730px" frameborder="0" style="vertical-align:top; margin-left: 28px;" scrolling="no" src="left.php" name="a3">
<iframe id="a4" width="78%" height="770px" frameborder="0" style="vertical-align:top;" scrolling="auto" src="moduloautoconsulta.php" name="a4">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="200" border="1">
  <tr>
    <td>
      <label for="Competencia"></label>
      <select name="Competencia" id="Competencia">
        <option value="A1">Competencia1</option>
        <option value="A2">Competencia2</option>
        <option value="A3">Competencia3</option>
      </select>
    </td>
  </tr>
  <tr>
    <td><select name="Tribunal" id="Tribunal">
        <option value="TR1">Tribunal 1</option>
        <option value="TR2">Tribunal 2</option>
        <option value="TR2">Tribunal 3</option>
    </select></td>
  </tr>
  <tr>
    <td><select name="Corte" id="Corte">
        <option value="Corte1">Corte 1</option>
        <option value="Corte2">Corte 3</option>
        <option value="Corte3">Corte 3</option>
    </select></td>
  </tr>
  <tr>
    <td><select name="Tipo" id="Tipo">
        <option value="Tipo1">Tipo 1</option>
        <option value="Tipo2">Tipo 2</option>
        <option value="Tipo4">Tipo 3</option>
    </select></td>
  </tr>
  <tr>
    <td><select name="SubTipo" id="SubTipo">
        <option value="SubT1">Sub Tipo 1</option>
        <option value="SubT2">Sub Tipo 2</option>
        <option value="SubT3">Sub Tipo 3</option>
    </select></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</form>
</body>
</html>
</iframe>
<br>
<iframe id="a6" width="100%" height="83px" frameborder="0" style="vertical-align:bottom;" scrolling="no" src="footer.php" name="a6">
</div>
</div>



El Codigo de C# es el siguiente

   private void GetLinksFromFrames()
        {
            try
            {

                WebBrowser.Navigate("https://misitio.com/frameInv.php");
                string frameUrl;

                if (!(this.webPoderJudicial.Document == null))
                {
                  //  WebCargado = true;
                    HtmlWindow currentWindow = this.WebBrowser.Document.Window;
                    if (currentWindow.Frames.Count > 0)
                    {
                        foreach (HtmlWindow frame in currentWindow.Frames)
                        {
                            frameUrl = frame.Url.ToString();


                            if (frameUrl == "https:///misitio.com/moduloautoconsulta.php")
                            {
                                 HtmlElementCollection select = frame.Document.GetElementsByTagName("select");
                                foreach (HtmlElement el in select)
                                {

                                    if (el.Name == "competencia")
                                    {
                                        Application.DoEvents();
                                        foreach (HtmlElement ele in el.GetElementsByTagName("option"))
                                        {
                                                                                        cmbCompetencia.Items.Add(ele.InnerText);
                                        }
                                    }
                                }
                            }
                        }
                    }                   
                }
            }
            catch (Exception ex) {
            }

        }
#2
Estimados.
Queria hacer una pregunta ya que tengo la siguiente duda me encuentro trabajando con C# necesito extraer unos documentos PDF.
Estos documentos PDF se genera en una URL. Esta URL envía por método POST el siguiente parámetro dtaDoc. Este parámetro datDoc envía datos cifrado. Para que formulario que esta en la URL recibe el valor del parámetro datDoc genera un documento PDF.
Ahora me encuentro utilizando WebBrowser el cual paso por método Post el campo y valor cifrado. Me genera el documento PDF. El segundo paso almacenar ese documento PDF en directorio en mi computadora.
Trato de almacenar este archivo por medio de WebBroser.FileDownload pero me encuentro con el siguiente problema ya que tengo que tener dos url el path de origen del documento y el segudo Path es la destino donde se almacenan el documento PDF en mi maquina Local. Pero el path de origen no lo alcanzo a mueve este parámetro dtaDoc ya que esta con el método. Pero no puedo hacer que pasarle el parámetro con valor cifra para así generar el documento y copiarlo.
Estoy tratato de general el levantar el generar el documento el con el campo dtaDoc con Webclient al cual genero paso la URL con parámetro dtaDoc con el valor cifra para luego realizar un File.WriteAllBytes para almacenar el archivo Bynario y me lo descargue en mi computadora pero cuando abro el documento el PDF que genero con el Webclient me dice que el archivo esta corrupto.

Código (csharp) [Seleccionar]
String nombre = "Causar-" + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + ".pdf";
string postData = "dtaDoc=" + strDocumento;
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
byte[] bytes = encoding.GetBytes(postData);

Console.Write("URL Documento " + "https://midominio/" + strURL + " dtaDoc=" + strDocumento  + "\r\n");
webDocumento.Navigate("https://midominiol/" + strURL, string.Empty, bytes, "Content-Type: application/x-www-form-urlencoded");
//  webDocumento.FileDownload("https://midominio/" + strURL, "C:\\Temporal\\" + nombre);                                                       
//byte[] bte = webDocumento
using (WebClient client = new WebClient())
{
var reqparm = new System.Collections.Specialized.NameValueCollection();
reqparm.Add("dtaDoc", strDocumento);
  //  byte[]
byte[] responsebytes = client.UploadValues("https://oficinajudicialvirtual.pjud.cl/" + strURL, "POST", reqparm);
string responsebody = Encoding.UTF8.GetString(responsebytes);
File.WriteAllBytes("C:\\Temporal\\" + nombre , responsebytes);
client.Dispose();
}
#3
Hola gente foro quería preguntar ya que me encuentro trabajado en una solución en ASP.NET con visual studio ocupando de lenguaje de programación  C#, cuando quiera compilar la solución necesito cambiar el puerto  del servidor cuando se muestra en explorador.
Buscando por la Red hay una opción que se encuentra dentro Propiedades de la Solución que es Use dynamic ports (Usar puertos dinámicos) y también  (Port number / Número de puerto).

1.- Me encuentro trabajando con visual studio 2013  y no encuentro esta opción Use dynamic ports.

2.- Esto lo encontré en la pagina web del Guille pero el articulo habla de un visual studio antigueo una versión 2008

Por fa alguien que me pueda indicar como hacerlo en visual estudio 2013

http://www.elguille.info/net/aspnet/numero_puerto_aspnet_development_server_diferente_explorador.aspx

#4
Hola gente del foro tengo la siguiente duda ya que me encuentro tomando un proyecto en VS 2013 en C# el cual tome una versión en repositorio. Cuando me encuentro compilando la Aplicación me aparece el siguiente problema

Error   1   El parámetro "TargetFrameworkVersion" no es compatible con la tarea "SignFile". Compruebe que el parámetro existe en la tarea y que puede establecerse en una propiedad de instancia Public.   

Error   2   La tarea "SignFile" no se puede inicializar con sus parámetros de entrada.    FFWord

Buscando por Internet me dice que tengo que hacer modificaciones en las etiquetas de este XML ya que problema del Framework


Mi pregunta donde encuentro este XML por que no buscando y no lo encuentro

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 
        <FileToSign Include="File.exe" /> 
    </ItemGroup> 
    <PropertyGroup> 
        <Certificate>Cert.cer</Certificate> 
    </PropertyGroup> 
    <Target Name="Sign"> 
        <SignFile 
            CertificateThumbprint="$(CertificateThumbprint)" 
            SigningTarget="@(FileToSign)"   
            TargetFrameworkVersion="v4.5" /> 
    </Target> 
</Project> 

#5
Hola Muchachos del Foro quería preguntar como podría generar ejecutar con C# el mismo procesos dos veces
YA encuentro Trabajando con la api de Gmail para enviar correo en forma de dejarlo como borradores, pero el problema lo tengo ya que también me solicitaron que desde la aplicación WinForm abrir el navegador con cargar el Borrador con la siguiente línea de código

Código (csharp) [Seleccionar]
Process ps = Process.Start("chrome.exe", "https://mail.google.com/mail/u/0/#drafts?compose=" + idBorrador);

El problema es que cuando abro el Chrome no me carga borrador que necesito editar. Lo que me aparece es la bandeja bandeja Entrada con el listado todos los borradores
Para ello necesito volver a ejecutar el mismo proceso dos veces por que la segunda vez me aparece el borrador
Tengo el siguiente código pero se me cae cuando trato de Process.Star()

Código (csharp) [Seleccionar]

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace Gmail
{
    class Procesos
    {


        // Opens urls and .html documents using Internet Explorer.

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        public void OpenWithStartInfo(String strProceso, String strUrl)
        {
            Process ps = Process.Start("chrome.exe", "https://mail.google.com/mail/u/0/#drafts?compose=16128c6784508721");
// Process ps = Process.Start(strProceso, strUrl)                     
        }



        public int getFileProcessId(string excelFileName)
        {
            String strTituloProceso = String.Empty;
            Int32 intTituloCantidad = 0;
            Process[] localByName = Process.GetProcessesByName(excelFileName);

            var processes = Process.GetProcessesByName(excelFileName);
            var procId = 0;

           
            foreach (var process in processes)
            {
                Console.Write(process.MainWindowTitle + " " + process.ProcessName.ToString() + " " + Convert.ToString(process.Id) + "\n");
               
                if (process.MainWindowTitle == "")
                {
                    procId = process.Id;
                }
                strTituloProceso = process.MainWindowTitle.ToString();
                intTituloCantidad = strTituloProceso.Length;
                if (intTituloCantidad >=  10) {
                    strTituloProceso = strTituloProceso.Substring(0, 10);
                }
                if (strTituloProceso == "Borradores")
                {


                    process.StartInfo.FileName = "chrome.exe";
                    process.StartInfo.Arguments = "https://mail.google.com/mail/u/0/#drafts?compose=16128c6784508721";
                    process.StartInfo.CreateNoWindow = true;
                    process.StartInfo.RedirectStandardOutput = true;
                    process.StartInfo.RedirectStandardError = true;
                   
                    process.Start();
                   
                }
            }

            return procId;
        }

        //helper method to kill zombie excel processes



        public void KillSpecificExcelFileProcess(int anId, string excelName)
        {
            //var processes = from p in Process.GetProcessesByName("Excel");
            var processes = Process.GetProcessesByName(excelName);
            //select p;

            foreach (var process in processes)
            {
                if (process.Id == anId)
                {
                    process.Kill();
                }
            }
        }


    }
}

#6
Hola estimados   foreros quería hacer una pregunta si alguien tiene la buena onda de contesta. Ya que me encuentro trabajando en proyecto con visual studio 2013 con el  lenguaje C# y necesito trabajar con la API de Gmail, me encontró dando mis primeros pasos. Tengo proyecto que está desarrollado con framework 4.5.  y necesito implementar que Aplicativo interactúe con la cuenta de correo de gmail.
Con Nuget me encuentro descargando los paquetes las librerías para trabajar con Gmail cuando estoy en el proceso de instalación dentro de la consola me aparece el siguiente mensaje

PM>  Install-Package Google.Apis.Gmail.v1
Attempting to resolve dependency 'Google.Apis (≥ 1.32.0)'.
Attempting to resolve dependency 'Google.Apis.Core (≥ 1.32.0)'.
Attempting to resolve dependency 'System.Net.Http (≥ 4.3.1)'.
Install-Package : 'System.Net.Http' already has a dependency defined for 'System.IO'.
At line:1 char:17
+  Install-Package <<<<  Google.Apis.Gmail.v1
    + CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

Saque de la solución las referencias System.IO para que no tuvieran conflicto. Por internet leí que había que limpiar el proyecto y también la cache de Paquetes Nuget
Realice el proceso de instalación en barias oportunidades  de Limpie la solución y el proyecto

También fui al administrador de Paquetes Nuget  -Configuración de Administrador de Paquetes  General  Borrar Cache de Paquetes

Tambien Limpie

regsvr32 "C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\VsLangproj.olb"

Trato de instalar los Paquetes de la Api de Gmail y tengo problemas con la instalación persiste el mismo error. Alguien que me pueda ayudar
#7
Hola que tal estimada gente del foro.

Me encuentro realizando unas man tensiones a los sistemas necesito guardar una Fecha  ingresada desde control.
El problema es el siguiente como estoy realizando unos sistema me cambiaron reiglas de negocios por que antes las fecha era ingresada en forma del sistema y actualmente el Fecha es ingresada desde un archivo de importación

Código (csharp) [Seleccionar]
sql.QueryInsert("INSERT INTO ultimos20 (fk_usuario, fk_documento, version, fecha) VALUES (" + idUsuario + ", " + idDoc + ", " + version + ", (SELECT CONVERT(datetime,stuff(stuff(stuff('" + DateTime.Now.ToString("yyyyMMddHHmmss") + "', 9, 0, ' '), 12, 0, ':'), 15, 0, ':')) ConvertedDate));", conexion);

Donde  DateTime dtiFechaExportacion

Código (csharp) [Seleccionar]
sql.QueryInsert("INSERT INTO ultimos20 (fk_usuario, fk_documento, version, fecha) VALUES (" + idUsuario + ", " + idDoc + ", " + version + ", (SELECT CONVERT(datetime,stuff(stuff(stuff('" +  dtiFechaExportacion.ToString("yyyyMMddHHmmss") + "', 9, 0, ' '), 12, 0, ':'), 15, 0, ':')) ConvertedDate));", conexion);

Al momento de Guardar la fecha con dtiFechaExportacion es ingresado en BD el campo que se genero el insert pero no se muestra en las consulta ya que dentro de aplicacion unos buscadores y no me muestra el registro si en Insert a la consulta de la BD dato fue con dtiFechaExportacion

#8
Hardware / baterias de notebook asus k52jk
11 Julio 2017, 22:54 PM
hola estimada gente del foro quería pregunta por las baterías de notebook asus k52jk cuanta es la duración de esta batería y si a esta máquina tienen baterías de larga duración

saludos

.


· No se debe escribir en mayúsculas
>aquí las reglas del foro
-Engel Lex
#9
Hola estimada Gente del foro tengo la siguiente consulta ya que estoy realizando una consulta SQL en una base de Datos SQL Server 2008 rs2 necesito generar una HAVING.   ya que tengo que preguntar por número de mes de un campo de tipo Date (Fecha_Apertura) pero cuando ejecuto el  Analizador de Consulta me aparece el siguiente problema

Código (sql) [Seleccionar]
SELECT     Nombre_Proyecto, Cantidad, Id_Tipo_Hallazgo, Nombre_Tipo_Hallazgo, ProyectoActivo, ID_Proyecto, Nombre_Tipo_Falla, Id_Filial, Fecha_Apertura
FROM         dbo.vis_UiInf_Ranking_Hallazgos_TipoFalla
GROUP BY Nombre_Proyecto, Cantidad, Id_Tipo_Hallazgo, Nombre_Tipo_Hallazgo, ID_Proyecto, Nombre_Tipo_Falla, Id_Filial, Fecha_Apertura, MONTH(Fecha_Apertura)
HAVING      (MONTH(Fecha_Apertura) = 4) AND (Id_Filial = 9)


La columna 'dbo.vis_UiInf_Ranking_Hallazgos_TipoFalla.ProyectoActivo' de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.

Saludos
#10
Estimados

Me encuentro haciendo una mantención a unos sistemas en ASP clásico. Y necesito limpiar la cache del navegador. Me podrían ayudar. Ya que coloque el siguiente código en al inicio del archivo .asp

Código (asp) [Seleccionar]
Response.Expires         = -1
Response.ExpiresAbsolute = Now() - 1
Response.CacheControl    = "no-cache; private; no-store; must-revalidate; max-stale=0; post-check=0; pre-check=0; max-age=0"
Response.AddHeader         "Cache-Control", "no-cache; private; no-store; must-revalidate; max-stale=0; post-check=0; pre-check=0; max-age=0"  ' Same as previous line, I know, just in case.
Response.AddHeader         "Pragma", "no-cache"
Response.AddHeader         "Expires", "-1"


Como también coloque el siguiente código en el HTML del formulario para limpiar la memoria chache del navegador y así me mostraran los cambios hechos en el formulario.

Código (html4strict) [Seleccionar]
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">