elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [DUDA] ¿Cómo hacer que un programa no abra haciendo doble clic?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] ¿Cómo hacer que un programa no abra haciendo doble clic?  (Leído 1,459 veces)
XorNet

Desconectado Desconectado

Mensajes: 14


Ver Perfil
[DUDA] ¿Cómo hacer que un programa no abra haciendo doble clic?
« en: 8 Diciembre 2013, 21:21 pm »

Bueno lo que trato de hacer es que un programa que ya hice no se abra haciéndole doble clic sino que se abra mediante otro programa ya sea apretando un botón o 'x' evento. Ayuda por favor. n_n


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.700



Ver Perfil
Re: [DUDA] ¿Cómo hacer que un programa no abra haciendo doble clic?
« Respuesta #1 en: 8 Diciembre 2013, 21:47 pm »

Sin otro factor intermediario en mi opinión es complétamente absurdo cancelar la ejecución de la aplicación al iniciarla haciendo doble click pero no cancelarla al iniciarla desde otro sitio, para mi no tiene sentido,
dicho factor intermediario que podrías usar es un Argumento, es decir, desde la aplicación secundaría ejecutas la aplicación y le envías un parámetro para asegurar de que la aplicación cumple las condiciones necesarias para proseguir con su inicio.

Ejemplo:
Código
  1. Process.Start("Aplicación.exe", "ForceRun")

Puedes evaluar el argumento pasado a la aplicación, si el argumento no es igual a "X", entonces terminas la ejecución.

En este ejemplo uso los eventos de la aplicación (Startup) ya que se da lugar antes de que se cree la ventana, pero puedes evaluarlo en el Evento Load o donde prefieras.

Código
  1. Namespace My
  2.  
  3.    Partial Friend Class MyApplication
  4.  
  5.        Private Shadows Sub Startup() Handles MyBase.Startup
  6.  
  7.            Dim Arg As String = My.Application.CommandLineArgs.FirstOrDefault
  8.  
  9.            If String.IsNullOrEmpty(Arg) _
  10.            OrElse Not Arg.Equals("ForceRun", StringComparison.InvariantCultureIgnoreCase) Then
  11.                End
  12.            End If
  13.  
  14.        End Sub
  15.  
  16.    End Class
  17.  
  18. End Namespace

De esta manera, la aplicación sólamente se iniciará si le pasas el argumento,
quizás exista alguna forma de averiguar si un proceso se ha iniciado desde el explorer por la intervención del ratón, es un misterio muy interesante la verdad, pero al menos yo desconozco si eso es algo posible de averiguar, y dudo que sea nada factible puesto que es la Shell quien se encarga de interpretar ese Click, puedes hacer doble click en un acceso directo (.lnk) que esté asociado a la aplicación ¿Como se interpreta entonces ese Click?, desde luego sería muy dificil por no decir imposible que llegase a ser eficiéntemente detectado, espero que la solución alternativa que te he ofrecido te sirva, a mi parecer es la más eficaz además de sencilla.

Saludos!


« Última modificación: 9 Diciembre 2013, 03:28 am por EleKtro H@cker » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como se pasa un video clic mineatura a lo doble sin perder calidad ?
Multimedia
mit 2 1,559 Último mensaje 2 Febrero 2004, 18:47 pm
por mit
no puedo abrir archivos jar con doble clic
Java
dexter00x 3 13,298 Último mensaje 21 Abril 2011, 05:28 am
por 1mpuls0
¿Cómo hacer que un formulario de un programa solo se abra una vez?
Programación Visual Basic
theluigy13etv 5 3,207 Último mensaje 12 Marzo 2012, 14:02 pm
por $Edu$
Cómo puedo hacer que un main abra dos consolas distintas?
Java
NikNitro! 4 1,205 Último mensaje 24 Mayo 2014, 15:34 pm
por Migugami
duda sobre como hacer programa
Programación C/C++
yina07 1 779 Último mensaje 6 Febrero 2020, 09:16 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines