Aktueller Ressourcen-Editor?

17/12/2014 - 09:54 von Edzard Egberts | Report spam
Mein Ressourcen-Editor (BC 5.0 von 1995) ist wahrscheinlich nicht mehr
ganz aktuell, denn beim Rechtsklick auf eine Programmdatei werden unter
Win7 in den Eigenschaften kaum noch Eintràge angezeigt, die über die
Programmversion hinaus gehen. Ich brauche da die Produktinfos,
Programmversion und das Icon.

Mit welcher Software sollte ich also die Ressourcen bearbeiten und wo
bekomme ich ein Beispiel der Ressource für die Produktinfos?


Liegt das eigentlich auch an den Ressourcen:

"Programmkompatibilitàtsassistent - Dieses Programm wurde eventuell
nicht richtig installiert." - laut Hilfe wird das nur für "àltere
Programme" angezeigt. Wie bringe ich Windows 7 bei, dass meine frisch
compilierte Software kein "àlteres Programm" ist? Im C++-Standard bin
ich garantiert kompatibler als Microsoft! ;o)

"Benutzerkontensteuerung - Möchten Sie zulassen, dass durch das folgende
Programm von einem unbekannten Herausgeber Änderungen an diesem Computer
vorgenommen werden":

Kann ich mit einem aktuellen Ressourcen-Editor den "Herausgeber:
*Unbekannt*" auf "Herausgeber: *Ed*" àndern, oder wo sonst kommt das her?


Noch eine ganz andere Frage: Zum Mitlesen taugt diese Gruppe mangels
Traffic ja nicht so sehr, gibt es ein empfehlenswertes Forum in dem noch
etwas anderes als .NET vorkommt? Ich kann mit dem ganzen Visual-Zeugs
nichts anfangen, gibt es sonst noch Leute, die mit MinGW und der Win-API
programmieren? Es wàre vielleicht doch ganz nützlich, wenn ich
gelegentlich einen Blick auf den aktuellen Stand der Dinge werfen kann. ;o)
 

Lesen sie die antworten

#1 Stefan Kanthak
17/12/2014 - 21:34 | Warnen spam
"Edzard Egberts" schrieb:

Mein Ressourcen-Editor (BC 5.0 von 1995)



"Schuster, bleib bei Deinen Leisten"

Besorg Dir ANSTAENDIGES Werkzeug!

ist wahrscheinlich nicht mehr ganz aktuell, denn beim Rechtsklick
auf eine Programmdatei werden unter Win7 in den Eigenschaften kaum
noch Eintràge angezeigt, die über die Programmversion hinaus gehen.
Ich brauche da die Produktinfos, Programmversion und das Icon.

Mit welcher Software sollte ich also die Ressourcen bearbeiten



NICHT bearbeiten, sondern beim Erzeugen der Software generieren.
Schreib Dir *.RC und erzeuge daraus mit dem kostenlosen Microsoft
Resource-Compiler (den findest Du in JEDEM Platform oder Windows
SDK) *.RES.
In den *.RC referenzierst Du das Icon und das Manifest.
Fuer Meldungen gibt's analog *.MC und den Message-Compiler; dessen
Ausgabe braucht RC.EXE als Eingabe.
Die *.RES linkst Du mit Deinem *.O[BJ] zur *.EXE/*.DLL

Meine Makefiles erzeugen *.Manifest und "VERSION"-Ressource per
"here"-Dokument:

$NAME.MAK
# Copyright (C) 2004-2014, Stefan Kanthak

TSA = http://timestamp.verisign.com/scripts/timstamp.dll # VeriSign SHA1
...

all: $(NAME).EXE
SIGNTOOL.EXE Sign /A /D "$(DESCRIPTION)" /DU $(URL) /N "$(CERTIFICATE)" /T $(TSA) /V $(NAME).EXE

$(NAME).EXE: $(NAME).OBJ $(NAME).RES
LINK.EXE /NXCOMPAT /OPT:REF /RELEASE /SUBSYSTEM:WINDOWS,5.0 /VERSION:1.0 $(NAME).OBJ $(NAME).RES

$(NAME).OBJ: $(NAME).C $(NAME).H
CL.EXE /c /GA /GF $(NAME).C

$(NAME).RES: $(NAME).TMP $(NAME).RC $(NAME).ICO $(NAME).MAN $(NAME)_ENU.BIN $(NAME)_GER.BIN
RC.EXE /N /R /V $(NAME).TMP

$(NAME).H $(NAME).RC $(NAME)_ENU.BIN $(NAME)_GER.BIN: $(NAME).MC
MC.EXE -b -c -n -v $(NAME).MC

$(NAME).TMP: $(NAME).MAK
Rem <<$(NAME).TMP
// Copyright (C) 2004-2014, Stefan Kanthak

#define WIN32_LEAN_AND_MEAN

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500

#define UNICODE
#define _UNICODE

#include <winresrc.h>
#include <winuser.h>
#include <winver.h>

#include "$(NAME).RC"

#ifdef _WIN32
#pragma code_page(1252)
#endif

LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
...

LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
...

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL

1 ICON "$(NAME).ICO"

CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "$(NAME).MAN"

VERSION 0x20141217L

VS_VERSION_INFO VERSIONINFO
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0
#endif
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
FILESUBTYPE VFT2_UNKNOWN
FILEVERSION 0,8,1,5
PRODUCTVERSION 0,8,1,5
BEGIN
BLOCK "StringFileInfo"
BEGIN
#ifdef _UNICODE
BLOCK "040004B0"
#else
BLOCK "040004E4"
#endif
BEGIN
VALUE "Comments", "..."
"..."
"...\0"
VALUE "CompanyName", "$(COMPANY)\0"
VALUE "FileDescription", "$(DESCRIPTION)\0"
VALUE "FileVersion", "0.8.1.5\0"
VALUE "InternalName", "$(NAME)\0"
VALUE "LegalCopyright", "Copyright © 2004-2014, Stefan Kanthak\0"
VALUE "LegalTrademarks", "\0"
// VALUE "OLESelfRegister", "\0"
VALUE "OriginalFilename", "$(NAME).EXE\0"
// VALUE "PrivateBuild", "\0"
VALUE "ProductName", "$(PRODUCT)\0"
VALUE "ProductVersion", "0.8\0"
VALUE "SpecialBuild", "Release\0"
END
// weitere Sprachen
...
END
BLOCK "VarFileInfo"
BEGIN
#ifdef _UNICODE
VALUE "Translation", 0x0400, 1200, ...
#else
VALUE "Translation", 0x0400, 1252, ...
#endif
END
END
<<KEEP

$(NAME).MAN: $(NAME).MAK
Rem <<$(NAME).MAN
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- Copyright (C) 2004-2014, Stefan Kanthak -->
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
name="$(COMPANY).Tools.$(PRODUCT)"
processorArchitecture="*"
type="win32"
version="0.8.1.5" />
<compatibility
xmlns="urn:schemas-microsoft-com:compatibility.v1">
...
<dependency>
...
<description>$(DESCRIPTION)</description>
<trustInfo
xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges
xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel
level="asInvoker"
uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
<<KEEP

EOF

und wo bekomme ich ein Beispiel der Ressource für die Produktinfos?



Siehe oben, oder MSDN: "VERSION" Ressource.

Liegt das eigentlich auch an den Ressourcen:

"Programmkompatibilitàtsassistent - Dieses Programm wurde eventuell
nicht richtig installiert." - laut Hilfe wird das nur für "àltere
Programme" angezeigt.



Verwendest Du die MSVCRT.DLL?
Selbst schuld, die ist seit Jahren NUR fuer die interne Nutzung durch
Microsoft freigegeben!

Wie bringe ich Windows 7 bei, dass meine frisch
compilierte Software kein "àlteres Programm" ist?



Indem Du keine veralteten Schnittstellen des Win32API aufrufst, oder
sie nicht mit falschen/veralteten Versionen der Argumente aufrufst.

Im C++-Standard bin ich garantiert kompatibler als Microsoft! ;o)



Der Fisch stinkt vom Kopf her!

"Benutzerkontensteuerung - Möchten Sie zulassen, dass durch das folgende
Programm von einem unbekannten Herausgeber Änderungen an diesem Computer
vorgenommen werden":



Du rufst Schnittstellen des Win32API auf, die privilegierte Aktionen
ausfuehren koennen/sollen.
Sag Windows per (als Ressource ins Programm eingebundenes) Manifest,
dass das Programm unprivilegiert ablaufen soll.

Kann ich mit einem aktuellen Ressourcen-Editor den "Herausgeber:
*Unbekannt*" auf "Herausgeber: *Ed*" àndern,



Nein.

oder wo sonst kommt das her?



Von der fehlenden Authenticode-Signatur!

Stefan
[
Die unaufgeforderte Zusendung werbender E-Mails verstoesst gegen §823
Abs. 1 sowie §1004 Abs. 1 BGB und begruendet Anspruch auf Unterlassung.
Beschluss des OLG Bamberg vom 12.05.2005 (AZ: 1 U 143/04)


news://freenews.netfront.net/ - complaints:

Ähnliche fragen