Página 1 de 2

Arquivo Manifest

Enviado: 31 Mar 2018 20:01
por JoséQuintas
Acabo de testar meu manifest do Harbour no Visual Basic 6.
Não me refiro a um aplicativo gerado, mas ao ambiente de desenvolvimento do Visual Basic 6.
Funciona perfeito, muuuuuito melhor que o modo de compatibilidade e/ou administrador.

VB6, 32 bits, de 1998, em máquina com Windows 10 Fall Creators 64 bits.

Nada de precisar modo de compatibilidade.
Nada de executar como administrador.
Nada de problema com antivírus ao compactar.

Nota:
Já postei muitas vezes no fórum.
Quem anda com problemas, convém testar.
Criei antes de existir no HBMK2, e nunca troquei, continuo usando até hoje.
Então não sei dizer se é melhor ou pior do que o criado pelo HBMK2.

Também resolveu o problema do fivedit, editor do fivewin. (pelo menos no meu teste, não sei se já faz parte do oficial).

Nota2:
Pra quem não sabe, além da opção de embutir no EXE, é só criar um arquivo em separado com o nome do EXE, exemplo: test.exe.manifest

Arquivo Manifest

Enviado: 31 Mar 2018 21:12
por asimoes
Quintas, onde está o arquivo manifest queria testar

Ops, foi mal é do harbour

Arquivo Manifest

Enviado: 31 Mar 2018 22:29
por JoséQuintas
A última "colocada" foi no post do fivedit, incluindo o teste prático do próprio fivedit.

https://pctoledo.org/forum/viewto ... =2&t=15869

Arquivo Manifest

Enviado: 31 Mar 2018 22:35
por JoséQuintas
Em todo caso, como arquivo externo, que é o mesmo conteúdo:
manifest.zip
(742 Bytes) Baixado 227 vezes
Apenas palpite: Eu acho que "as invoker" não necessita privilégios a mais, e por isso a segurança não bloqueia.

Esta parte

Código: Selecionar todos

<security>
<requestedPrivileges>
<requestedExecutionLevel
               level="asInvoker"
               uiAccess="false"
            />
</requestedPrivileges>
</security>

Arquivo Manifest

Enviado: 31 Mar 2018 22:38
por asimoes
Quintas,

Eu só me interessei mesmo pelo manifest, acabei achando a definição do manifest no harbour.rc na pasta pakage

Eu queria ver esse manifest que você tá usando. tem como posta aqui ?

Ops, você é rápido no gatilho, rs

Arquivo Manifest

Enviado: 31 Mar 2018 22:57
por asimoes
Quintas,

Não funcionou o seu manifest olha o que acontece.

Compila normal, mas quando executa:
2018-03-31 22_56_15-h-CEPJASON.png
2018-03-31 22_56_15-h-CEPJASON.png (10.87 KiB) Exibido 3292 vezes

Arquivo Manifest

Enviado: 31 Mar 2018 23:21
por JoséQuintas
Que estranho, é o que uso faz anos.

Ou... o mesmo componente que impede de compactar também impede de usar esse manifest.

Arquivo Manifest

Enviado: 01 Abr 2018 06:59
por gilbertosilverio
Quintas, Simões,

A titulo de curiosidade, testei aqui este manifest, e funcionou com HB34+MINGW7.2+HWGUI, ficou muito bonita a tela no W10.

Ja com xHB1.10+BCC55+HWGUI, deu a mesma mensagem do Simões...

Arquivo Manifest

Enviado: 01 Abr 2018 07:38
por asimoes
Informações:

O meu windows é 10 Pro
Versão 1709
Compilação 16299.309

Sobre a compilação que eu fiz ( sem compactação)
MinGW GNU C 7.3 (32-bit) (versão atual do msys)
Harbour 3.4.0dev (da55042) (2017-12-21 20:50)

Código: Selecionar todos

hbmk2: Processando script local make: hbmk.hbm
hbmk2: Harbour: Compilando módulos...
Harbour 3.4.0dev (da55042) (2017-12-21 20:50)
Copyright (c) 1999-2017, https://github.com/vszakats/harbour-core/
Compiling 'DEMO.PRG'...
Lines 1417, Functions/Procedures 8
Generating C source output to 'OBJMINGWFORK\DEMO.c'... Done.
hbmk2: Compilando recursos...
hbmk2: Compilando...
hbmk2: Linkando... DEMO.exe
Criei um arquivo rc para testar
demo.rc

1 24 vb6.exe.manifest

Arquivo Manifest

Enviado: 01 Abr 2018 08:02
por asimoes
Esse problema pode ser a versão do mingw, apesar de estar usando a versão indicada pelo Viktor que é a do MSYS

Arquivo Manifest

Enviado: 01 Abr 2018 09:12
por asimoes
Quintas,

Achei essa informação sobre: Windows 10 - Falha na inicialização do aplicativo devido à configuração lado a lado incorreta
quando uso o seu arquivo manifest

https://answers.microsoft.com/pt-br/win ... 1bd23c784e

Arquivo Manifest

Enviado: 01 Abr 2018 10:06
por JoséQuintas
Procurei mais detalhes, e é o que comentei mesmo:

Dependency:

As dependências, por exemplo liberar os controles comuns do Windows versão 6.00

TrustInfo:

asInvoker - nenhuma permissão adicional
highestAvailable - permissões máximas
requireAdministrator - permissão de administrador

Compatibility:

Em que versões Windows funciona

https://www.finalbuilder.com/resources/ ... fest-files
http://www.samlogic.net/articles/manifest.htm
https://msdn.microsoft.com/pt-br/librar ... s.85).aspx

Voltamos aos componentes opcionais, que devem exigir nível de segurança superior, ou não devem ter manifest e o Windows assume isso.
Lembrando que, dependendo de como a DLL é inclusa no programa, ela passa a fazer parte dele.

Arquivo Manifest

Enviado: 01 Abr 2018 10:17
por asimoes
Segui as instruções do link da microsoft desinstalei os microsoft visual c++, instalei a versão recomendada para x64 mas não funcionou.

Esse é o harbour.rc que tem requestedExecutionLevel

Código: Selecionar todos

/* Copyright 2011-present Viktor Szakats (vszakats.net/harbour) */

#if !( defined( OS2 ) || defined( __OS2__ ) || defined( OS_2 ) )

#include "hbver.h"

#if defined( _HB_INCLUDE_ICON ) && \
    ! defined( __BORLANDC__ ) && ! defined( UNDER_CE )
1 ICON DISCARDABLE "../package/harbour.ico"
#endif

/* NOTE: BCC 5.5 has an RC preprocessor bug that in certain cases will append
         a trash byte to the return value of this macro. Such trash byte
         will result in a broken manifest record and the executable rejected
         by the OS (e.g. Windows 10) to run. It can be "fixed" by using
         a macro name shorter or longer by one character. But, instead of
         such non-zero-cost hacks, please switch to a modern compiler. */
#define HB_MACRO2STRING( macro )   HB_MACRO2STRING_( macro )
#define HB_MACRO2STRING_( macro )  #macro

#define HB_VER_PROD                HB_VER_MAJOR,HB_VER_MINOR,HB_VER_RELEASE,0
#define HB_VER_PROD_STR            HB_MACRO2STRING( HB_VER_MAJOR ) "." HB_MACRO2STRING( HB_VER_MINOR ) "." HB_MACRO2STRING( HB_VER_RELEASE )
#define HB_VER_FILE                HB_VER_PROD
#define HB_VER_FILE_STR            HB_VER_PROD_STR

#define HB_NAME                    "SEBOL"

/* Version info */

#include <winver.h>

VS_VERSION_INFO  VERSIONINFO
FILEVERSION      HB_VER_FILE
PRODUCTVERSION   HB_VER_PROD
FILEFLAGSMASK    VS_FFI_FILEFLAGSMASK
FILEFLAGS        0
FILEOS           VOS__WINDOWS32
FILETYPE         VFT_APP
BEGIN
   BLOCK "StringFileInfo"
   BEGIN
      BLOCK "040904B0"  /* LANGUAGE: US English (0x0409), ENCODING: Unicode (1200/0x04B0) */
      BEGIN
         VALUE "Comments",         "See LICENSE.txt for licensing terms." "\0"
         VALUE "CompanyName",      HB_NAME "\0"
         VALUE "FileDescription",  HB_NAME "\0"
         VALUE "FileVersion",      HB_VER_FILE_STR HB_VER_STATUS "\0"
         VALUE "LegalCopyright",   "Copyright © 2008-present (see application banner)" "\0"
         VALUE "ProductName",      HB_NAME "\0"
         VALUE "ProductVersion",   HB_VER_PROD_STR HB_VER_STATUS "\0"
      END
   END
   BLOCK "VarFileInfo"
   BEGIN
      //VALUE "Translation", 0x0409, 0x04B0  /* LANGUAGE: US English (0x0409), ENCODING: Unicode (1200/0x04B0) */
      VALUE "Translation", 0x416, 0x4B0
   END
END

/* Manifest */

#if ! defined( HBMK_DYNLIB ) && ! defined( HB_DYNLIB )

/* String escaping rules:
      https://msdn.microsoft.com/library/aa381050
   Application Manifest doc, including the list of 'supportedOS Id's:
      https://msdn.microsoft.com/library/aa374191 */

#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
#define CREATEPROCESS_MANIFEST_RESOURCE_ID  1
#endif
#ifndef RT_MANIFEST
#define RT_MANIFEST  24
#endif

CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST
BEGIN
   "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>"
   "<assembly xmlns=""urn:schemas-microsoft-com:asm.v1"" manifestVersion=""1.0"">"
      "<assemblyIdentity name=""" HB_NAME """ version=""" HB_VER_PROD_STR ".0"" type=""win32""/>"
      "<application xmlns=""urn:schemas-microsoft-com:asm.v3"">"
         "<windowsSettings>"
            "<dpiAware xmlns=""http:" "//schemas.microsoft.com/SMI/2005/WindowsSettings"">true</dpiAware>"
         "</windowsSettings>"
      "</application>"
      "<trustInfo xmlns=""urn:schemas-microsoft-com:asm.v3"">"
         "<security>"
            "<requestedPrivileges>"
               "<requestedExecutionLevel level=""asInvoker"" uiAccess=""false""/>"
            "</requestedPrivileges>"
         "</security>"
      "</trustInfo>"
      "<dependency>"
         "<dependentAssembly>"
            "<assemblyIdentity name=""Microsoft.Windows.Common-Controls"" version=""6.0.0.0"" type=""win32"" processorArchitecture=""*"" publicKeyToken=""6595b64144ccf1df""/>"
         "</dependentAssembly>"
      "</dependency>"
      "<compatibility xmlns=""urn:schemas-microsoft-com:compatibility.v1"">"
         "<application>"
            "<supportedOS Id=""{e2011457-1546-43c5-a5fe-008deee3d3f0}""/>"  /* Vista / Server 2008 */
            "<supportedOS Id=""{35138b9a-5d96-4fbd-8e2d-a2440225f93a}""/>"  /* 7 / Server 2008 R2 */
            "<supportedOS Id=""{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}""/>"  /* 8 / Server 2012 */
            "<supportedOS Id=""{1f676c76-80e1-4239-95bb-83d0f6d0da78}""/>"  /* 8.1 / Server 2012 R2 */
            "<supportedOS Id=""{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}""/>"  /* 10 / Server 2016 */
         "</application>"
      "</compatibility>"
   "</assembly>"
END

#endif
#endif

Arquivo Manifest

Enviado: 01 Abr 2018 14:36
por asimoes
Enquanto não tem explicação, vou usando o harbour.rc

Arquivo Manifest

Enviado: 01 Abr 2018 14:40
por asimoes
Quintas,

Descobri o erro, o problema está no seu arquivo manifest.

Tá repetindo:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Removi uma linha repetida e funcionou.