Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Editor Desconocido (https://www.clubdelphi.com/foros/showthread.php?t=81882)

oesqueda 29-12-2012 02:32:59

Editor Desconocido
 
Buenas noches, alguien sabe como "firmar" mi aplicacion y no salga esa molesta pantalla en Vista y 7 de que es una aplicacion de un Editor Desconocido.

Por la ayuda mil gracias

ecfisa 29-12-2012 08:55:54

Hola oesqueda.

El motivo de esa advertencia es avisar de que un archivo ha sido descargado de internet y que puede ser potencialmente perjudicial. Windows verifica que el archivo tenga una firma digital que se valida mediante la tecnología Authenticode y de no poseerla, nos muestra el consabido cartelito avisándonos del peligro en cuestión y nos dá la posibilidad de ejecutarlo bajo nuestra responsabilidad.

Obviamente lo ideal es conseguir una firma digital pero, aunque no es lo aconsejable, la advertencia se puede deshabilitar.

Te hice un ejemplo de como hacerlo por código:
Código Delphi [-]
...
uses Registry;

type
  TEnumAction = (acAllow, acAsk, acDeny); 

procedure ExecNotSecureApp(Action: TEnumAction);
const
  KEY = '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3';
var
  op: Integer;
  s1,s2,s : string;
begin
  with TRegistry.Create do
  try
    RootKey := HKEY_CURRENT_USER;
    if OpenKey(KEY, False) then
    begin
      case Action of
        acAllow: s1:= 'Permitir';
        acAsk  : s1:= 'Preguntar';
        acDeny : s1:= 'Prohibir';
      end;
      op := ReadInteger('1806');
      case op of
        0: s2:= 'Permitir';
        1: s2:= 'Preguntar';
        3: s2:= 'Prohibir';
      end;
      if s1 <> s2 then
      begin
        s:= 'Accion actual de seguridad: ' + s2 + #10 +
          '¿ Deseas cambiar la acción por : '+ s1 + ' ?';
        if MessageBox(0, PChar(s), '', MB_ICONQUESTION + MB_YESNO) = IDYES then
          WriteInteger('1806', Integer(Action));
      end
      else
        MessageBox(0, 'Esa acción ya esta definida', '', MB_ICONINFORMATION + MB_OK);
      CloseKey;
    end;    
  finally
    Free;
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
  ExecNotSecureApp(acAllow);
También podes realizar esta acción desde Internet Explorer:
Herramientas -> Opciones de Internet -> Seguridad -> Nivel Personalizado -> Ejecutar aplicaciones y archivos no seguros -> Habilitar (no seguro).


Ahora, si el problema se te presenta con aplicaciones Intranet, podes darle solución por código del siguiente modo:
Código Delphi [-]
procedure ShowMessageNoSecure(Value: Boolean);
const
   KEY = '\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap';
begin
  with TRegistry.Create do
  try
    RootKey:= HKEY_CURRENT_USER;
    if OpenKey(KEY, False) then
    begin
      WriteInteger('AutoDetect', Integer(Value));
      CloseKey;
    end;
  finally
    Free;
  end;
end;

Llamada:
Código Delphi [-]
  ShowMessageNoSecure(True);  // Mostrará el mensaje
  ShowMessageNoSecure(False); // No mostrará el mensaje
Igual que anteriormente podes modificar esta accion desde el IE:
Herramientas -> Opciones de Internet -> Seguridad -> Intranet Local -> botón Sitios -> Detectar redes intranet automáticamente.

Pero... curiosamente funciona al revés :rolleyes:. Selecionado muestra el aviso, de lo contrario no.

Saludos.

mamcx 29-12-2012 18:18:10

Si, pero eso deshabilita a nivel de todo el sistema. Es incorrecto hacerlo sin permiso del usuario, y no es responsabilidad de este resolvernos nuestro problema.

Para resolverlo de una vez por todas, es solo cuestion de comprar un certificado digital, y seguir estos pasos:

http://www.pantaray.com/signcode.html

Yo compre en http://www.startssl.com/ que es mas barato. Es necesario adquirir como minimo el clase 2 (http://www.startssl.com/?app=2).

AzidRain 30-12-2012 00:31:51

La solución de mamcx es la correcta. Después de todo no podemos decir que nos dedicamos a este negocio si no queremos invertir ni un duro en nada además el precio de un certificado digital se diluye en el costo del producto final y obviamente da una mejor imagen de cara al cliente.

miado 26-01-2013 18:49:03

Efectivamente y así te costará bastante mas vender tu software al encarecer el precio y beneficiar y pagar a estas empresas que no hacen absulatamente nada, eso si son amiguetes de Mocosoft.

Que se dejen de lios y que dejen a los usuarios ejecutar lo que le de la gana en su pc. Que ya estamos un poco hartos de que nos digan lo que tenemos que hacer en nuestra casa..

Al González 26-01-2013 20:07:12

¡Vaya, qué cosas se ven estos días! :eek:

Casimiro Notevi 26-01-2013 21:01:11

Cita:

Empezado por Al González (Mensaje 454091)
¡Vaya, qué cosas se ven estos días! :eek:

Así va el mundo :confused:


La franja horaria es GMT +2. Ahora son las 06:30:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi