Resource 24 besser an Vista angepasst

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

  • Roland, könntest du nicht noch eine neuere Manifest-Resource rein nehmen, die besser an Vista und später angepasst ist? So wie diese:


  • Wenn, dann eher AsInvoker. Zumindest sollte das Wahlweise möglich sein, weil Vista davon ausgeht, das die Anwendung Vista-Konform ist, wenn es auf eine solche Manifest trifft und Anwendungen, die das eben nicht sind, dann nicht mehr richtig funktionieren werden. Einfach von Hause aus so eine Manifest per Default da reinklatschen ist Kontroproduktiv.


    Gruß
    Thomas

  • Zitat von Frabbing;822503

    Die trustInfo wird eigentlich von XP ignoriert und greift erst ab Vista. Wenn du andere Vorschläge hast, immer raus damit. :-)


    Da hast Du mich nicht verstanden. Wenn diese Manifest vorhanden ist, dann
    geht Windows Vista und höher, davon aus, das diese Anwendung auch Konform dazu ist. Sollte diesem nicht so sein, was gerade bei Anfängerprogrammen, besonders häufig der Fall ist, funktionieren diese Programme nicht mehr, da sie auch nicht mehr autom. im Kompatibilitätsmodus (Virtuelle Verzeichnisse, Registry usw.) ausgeführt werden.


    Wenn, dann Optional eine Manifest für UserModus oder AdminModus, so das
    diese nur Bewußt von Usern ausgewählt werden, die Wissen was sie tun :D


    Gruß
    Thomas

  • Vielleicht lässt sich das mit Rolands Compilteridee ausführen. Er hat ja schon angedeutet, dass eventuell in einem Update Compileroptionen für Icons kommen und da würde das ja mit reinpassen.

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/108TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    TerraMaster F4-421 mit 28TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 6 8GB/256GB
    jacdelad.bplaced.net

  • Ich glaube ja, dass es gerade Anfängern entgegen kommt, wenn sie sich keinen Kopf machen müssen, ob nun im User- oder Adminmode gestartet wird. IsKey() funktioniert z.B. nicht im Usermodus, wenn das gerade aktive Programm in einem höheren Level läuft. Sind alles Sachen, die nicht in der Hilfe stehen und speziell bei Anfängern nur für Verwirrung sorgen.


    Wenn man seine Resourcen per Compiler einbauen kann, wäre das natürlich optimal. Na ja, eigentlich Standard bei Programmsprachen. ;-)

  • Zitat von Frabbing;822548

    Ich glaube ja, dass es gerade Anfängern entgegen kommt, wenn sie sich keinen Kopf machen müssen,


    Das ist ja wie ne Schußwaffe für Waffenscheinlose :D.
    Keine Ahnung was IsKey macht (intern), aber bei "normaler" Eventbearbeitung,
    sollte es auch keine Probleme geben.

  • Zitat von Frabbing;822578

    IsKey ist nichts anderes als Get(Async)KeyState. Unter Windows Vista und 7 blockiert ein im höheren Level laufender aktiver Task die Abfrage, wenn das abfragende Programm nicht als Admin läuft.


    Sowas verwendet man ja auch nicht in einem Event-Loop.
    Entweder Shortcut oder WM_CHAR.

  • Das funktioniert aber ebenfalls nicht. ;-)
    WM_CHAR arbeitet eh nur, wenn das eigene Fenster den Focus hat, wie fast alle Fenstermessages.


    Aufgefallen ist mir das zuerst in meinem Screenshot-Tool, das unter XP immer zuverlässig arbeitete. Unter 7 nicht mehr unbedingt, und da es für gewöhnlich aus dem Autostart heraus aufgerufen wird, läuft es immer im User-Modus. Starte ich es manuell als Admin, gibts keine Probleme.
    Betrifft alle bekannten Key-Techniken, auch Hotkeys und Tastatur-Hooks.

  • Das Problem kann ich aber nicht nachvollziehen, jedenfalls nicht in der
    Programmiersprache, die ich per Default nutze. Shortcuts, Globale Hotkeys
    usw. funktionieren problemlos ohne Adminrechte. Und meine Einstellungen
    bezüglich der Sicherheit entsprechen den Vorgaben von MS.


    Programme, die immer erst Adminrechte anfordern sind recht nervig.
    Wenn sie dann nicht mal eine Digitale Signatur aufweisen (bei
    Hobbyprogrammen wohl selten der Fall, Signatur kostet ca. 400$ pro Jahr)
    werden sie keine große Verbreitung erreichen (sieht man im UAC ob signiert
    oder nicht).


    Also soweit wie es irgend geht auf Adminrechte verzichten! Prof. Installer
    für Installation nutzen usw., nur dann ist man auf der sicheren Seite.


    Ich schätze mal, das MS das mit den Adminrechten ohne Signatur sowieso
    früher oder später sperren wird, so das man als Hobbyprogrammierer
    sowieso auf Adminrechte verzichten muß. Vielleicht sehe ich ja auch nur zu
    schwarz :D


    Gruß
    Thomas

  • Das wird sich zeigen. :-)


    Letztendlich gibts immer zig verschiedene Meinungen.
    Vielleicht versuche ich mal, ein kurzes Testprogramm zu erstellen. Vielleicht liegt es ja tatsächlich an XProfan. Ich glaube aber eher nicht.


  • Da habe ich andere Erfahrungen gemacht. Ist kein Manifest enthalten und versucht das Programm etwas durchzuführen, zu dem es Adminrechte braucht, fragt Windows des öfteren mal nach, ob das Programm im "Kompatibilitätsmodus" ausgeführt werden soll. Es startet das Proggie dann generell mit Adminrechten - was man aber manchmal gar nicht will.
    Ist ein Manifest drin, hält sich Windows eigentlich an das, was da angegeben ist. Ich würde da auch AsInvoker als Standard setzen. Franks Vorschlag halte ich also für gar nicht so abwegig.
    Hast du da andere Erfahrungen gemacht? Würde mich sehr interessieren...

  • Schreib einfach ein Programm, das seine Einstellungen im Programm-
    Verzeichnis sichert. Mit XP-Style Manifest werden die Einstellungen, ohne
    Fehlermeldung, im VirtualStore gesichert, mit Manifest für UserModus
    bekommste eine Fehlermeldung und kannst reagieren.


    Gruß
    Thomas


    // edit
    bei dem Szenario muß bereits eine Einstellungsdatei im Programordner vorhanden sein,
    Windows schreibt dann die Änderungen in eine virtuelle Datei im Virtualstore Ordner.

  • Du hast mich scheinbar falsch verstanden:
    Ich habe bislang nicht das Problem gehabt, das ein Programm mit Manifest nicht funktionierte. Ich habe das Problem aber öfters gehabt, das ein Programm ohne Manifest Sachen tat, die ich gar nicht wollte, weil Windows automatisch den kompatibilitätsflag gesetzt hat.
    Das ist also keine Frage, sondern eine Feststellung. Du sprachst von Problemen bei Programmen mit Manifest - was meinst du genau damit? Wo hattest du Probleme??? Ich finde Franks Vorschlag eigentlich sehr schlüssig - das sollte aber standardmäßig ein Manifest als AsInvoker sein.
    Es wäre meiner Meinung nach angebracht, dem Compiler eine Option mitzugeben, ob ein Manifest eingebunden werden soll und in welcher Form.

  • Mit Problemen meine ich, das z.B. Einstellungen einfach gar nicht mehr
    gespeichert werden, weil eine AsInvoker Manifest vorhanden, das Programm
    dem aber nicht entspricht. Die meisten Einsteiger, vor allem diejenigen, die noch XP als Admin nutzen (der übliche "Dau" :lol: ) kennen diese Anforderungen nun mal nicht annähernd. Für diejenigen wäre es besser nur
    eine XP-Style oder garkeine Manifest zu haben.


    Gruß
    Thomas

  • Zitat

    Schreib einfach ein Programm, das seine Einstellungen im Programm-
    Verzeichnis sichert.


    Wozu natürlich niemand ab Vista ernsthaft noch raten würde... ;-)
    Im Appdata gibts keine Probleme und dort ist der Speicherort für solche Fälle.

  • Na ja - ein Programm das nicht als Admin läuft, kann auch ohne Manifest keine Einstellungen in einen Ordner oder einen Key speichern, auf den es keinen Zugriff hat. Da liegt dann also eher ein Fehler des Programmierers vor. Das kein Fehler kommt liegt ja an der Virtualisierung. :-)

    Problematischer wird es da, wenn das Programm ganz plötzlich den Kontext ändert, im des ausgeführt wird - weil Windows denkt, das ist besser so. Das kommt gar nicht gut.

  • Zitat von Frabbing;822722

    Wozu natürlich niemand ab Vista ernsthaft noch
    raten würde... ;-)


    Genaugenommen seit Windows 2000 ;)
    Bloß weil die Masse (will mich nicht wiederholen :lol: ) keine eingeschränkten
    Benutzerkonten kennt, kannten Sie das Problem bisher nicht. Die
    Einschränkung, nicht in das Programmverzeichnis schreiben zu dürfen, gibt es
    also schon sehr viel länger, betraff aber meist nur Firmen und seltener
    Privatpersonen (die lieber als Admin sürfen, damit die Trojaner auch den
    rechten Weg finden ).


    Wichtig ist hier also nur eines, es sind 2 optionale Ergänzungen zur Manifest nötig, nix, admin oder invoker.


    Gruß
    Thomas