![]() |
UAC Steuerungsdialog Win10
Wie kann ich den Dialog unter Windows 10 unterbinden.
Mit meiner neuen Hardware kann ich leider kein Win7 mehr installieren (Danke Intel, MS und Konsorten) Jetzt muss ich mich mit dem Mist doch beschäftigen. Wenn ich die UAC nicht ausschalte und BDS.exe nicht als Admin starte kann ich meine Anwendungen nicht kompilieren. Bei jedem Start kommt jetzt der nervige UAC Dialog (als wenn man nichts anderes zu tun hätte als den immer wieder zu bestätigen) Ist die UAC aus und ich starte BDS ohne Admin rechte kommen unten im Anhang angehängten Fehler. Keine meiner Anwendungen funktioniert vernünftig ohne den Eintrag im Manifest.
Code:
Wie machen die anderen Anwendungen dass das sie trotzdem richtig ausgeführt werden mit allen rechten die benötigt werden.
<!-- Windows Vista application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> Ein einfaches Beispiel. Ich starte die ID und mein Projekt, funktioniert alles korrekt so wie es soll. Beendet ich Delphi und starte die Anwendung mit den besagten Eintrag im Manifest werden mir keine Cover mehr in meinem Player angezeigt. Das funktioniert aber innerhalb der IDE beim kompilieren bzw. ausführen der Anwendung. Anders Beispiel. Ich öffne die IDE mit einem xbeliebigen Projekt *.dproj Die ID ist offen jetzt starte ich eine neues Projekt damit dieses in die IDE eingefügt wird. Pustekuchen.. tut sich nix (war unter Win7 nie ein Problem) Kann also nur immer 1 Projekt zur gleichen zeit öffnen. Dieses OS macht ärger wo es nur geht. Kann es sein das ich einfach zu blöd dafür bin oder habt ihr die gleichen Probleme. PS: Für alle die kein Win10 verwenden möchten. Kauft euch kein Board mit Intel Prozessor und informiert euch besser OB das auch mit Win7 kompatible ist. Tut ihr das nicht dann steht ihr auf dem Schlauch. gruss |
AW: UAC Steuerungsdialog Win10
|
AW: UAC Steuerungsdialog Win10
Zitat:
Das die Dialoge nicht angezeigt werden wenn ich die UAC deaktiviert ist mir klar. Aber! Deaktiviere ich die UAC dann werden keine entsprechenden Rechte für das jeweilige Programm zugewiesen. Von daher ist das keine Lösung. Was mich wundert warum wird der Dialog jedes mal wieder angezeigt dem System müsste doch bekannt sein welche Rechte das Programm hat nachdem der Dialog einmalig aufgerufen wurde. Unter Win7 habe ich die BDS niemals mit Admin rechten starten müssen (Wenn UAC ausgeschaltet wurde) und es hat funktioniert. Hier geht gar nichts unabhängig davon ob die UAC eingeschaltet ist oder nicht. Keine Admin rechte Delphi funktioniert nicht. gruss |
AW: UAC Steuerungsdialog Win10
Deine Projekte liegen unter "C:\Programme"
Das erklärt praktisch alle deine Probleme. Bei passender Rechtevergabe hättest du schon mit Windows NT 3.1 nicht arbeiten können und ähnliche Fehler bekommen |
AW: UAC Steuerungsdialog Win10
Zitat:
Und ich frage mich warum das nicht sein darf? Es sind 32Bit Anwendungen.. wo bitte soll ich sie sonst ablegen. Ich kenne Hunderte von Programmen die sich dort befinden und die funktionieren alle. bsp. Ich erstelle ein Projekt (Portable APP) und veröffentliche es. Nun kopiert der User die Anwendung unter Programme (x86). So wie kann ich dann garantieren das die Anwendung bei ihm überhaupt läuft wenn ich als Programmierer nicht feststellen kann wohin er sie kopiert. Es kann doch nicht sein das die funktionsweise eines Programm davon abhängig ist wohin man sie kopiert. gruss |
AW: UAC Steuerungsdialog Win10
Zitat:
Auf die Idee, Delphi-Projekte und Quelltexte unterhalb des VS-Ordners im Programme-Verzeichnis zu speichern...wie kommt man dazu? :shock: |
AW: UAC Steuerungsdialog Win10
Zitat:
Nochmal zum besseren Verständnis. Debugge ich die Anwendung mit Delphi funktioniert alles wenn BDS.exe mit Admin rechten und eingeschalteter UAC gestartet wird. Ich habe mein Manifest addiert so wie gezeigt. Aber egal in welchem Ordner sich nachher die Anwendung befindet und mit Admin Rechten gestartet wird funktioniert sie nicht wie sie soll. Obwohl beim debuggen alles in Ordnung ist. Das Problem kenne ich aber nur unter Win10. Zitat:
Und selbst wenn wo hin dann bitte sonst? Du selbst hast doch gar keine Kontrolle darüber abgesehen von einer über ein Setup installiert Anwendung wohin der User die Anwendung kopiert. Zitat:
gruss |
AW: UAC Steuerungsdialog Win10
Hallo,
Zitat:
Dabei werden die erforderlichen Rechte vom Setup-Programm gesetzt. Schreibrechte im Programme/Verzeichnis sind nicht erlaubt. Wahrscheinlich hattest Du die Rechte unter Programme unter Win7 mal geaendert, damit das laeuft. |
AW: UAC Steuerungsdialog Win10
Zitat:
Denn meine Anwendungen sind alle Portable. Die benötigen kein Setup. Es kann auch niemand einen Developer dazu zwingen ein Setup für jede Datei zu erstellen oder? Wie verhält sich das dann mit Portable Anwendungen die dürften dann alle nicht laufen. Unter Win7 habe ich dergleichen nichts getan. gruss |
AW: UAC Steuerungsdialog Win10
Zitat:
Da könntest du auch gleich in C:\Windows die Quelltexte und die Kompilate ablegen, dass ist dann genauso "clever". |
AW: UAC Steuerungsdialog Win10
Zitat:
gruss |
AW: UAC Steuerungsdialog Win10
Öffne die IDE ganz normal ohne Admin-Rechte. Baue ein Hello World Programm und speichere es explizit in einen Ordner unterhalb des Dokumente-Ordners. Auch den Ausgabepfad lassen wir so wie er ist und damit also unterhalb des Dokumente-Ordners. Lasse das Manifest so wie es die IDE erzeugt ohne Änderung.
Builde das Programm und starte es über den Dateiexplorer deiner Wahl per Doppelklick. Das Programm wird ohne Murren und Knurren starten und funktionieren. |
AW: UAC Steuerungsdialog Win10
Zitat:
Zudem verwende ich keine Resource die mich dazu veranlasst das Manifest mit der IDE zu erstellen. Was soll also anders sein es sollte keine rolle spielen wie ich das Manifest erstelle.
Code:
2. Ich habe die Adminrechte von Delphi entfernt.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <description>SoundMachine</description> <!-- Windows Vista application security requirements. --> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> <!-- Mildrop Visualisation support --> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"> </assemblyIdentity> </dependentAssembly> </dependency> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"> </assemblyIdentity> </dependentAssembly> </dependency> <!-- End of Mildrop Visualisation support --> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!--The ID below indicates app support for Windows Vista --> <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> <!--The ID below indicates app support for Windows 7 --> <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> <!--The ID below indicates app support for Windows 8 --> <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> <!--The ID below indicates app support for Windows 8.1 --> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> <!--The ID below indicates app support for Windows 10 --> <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> </application> </compatibility> </assembly> 3. Den Source nach Dokumente kopiert. 4. IDE gestartet und diese Meldung (error.png) bekommen wenn ich mein Manifest mit Adminrechten ausstatte (requireAdministrator). 5. Wenn ich es mit asInvoker in der IDE starte funktioniert es. 6. Starte ich sie alleine geht nichts. egal ob mit asInvoker oder requireAdministrator aus dem Pfad Dokumente heraus. So nun frage ich mich abgesehen davon das ich BDS.exe nicht mehr mit Adminrechten starte nun anders sein soll. Denn es funktioniert nicht. Egal ob ich die Anwendung unter Programm oder Dokumente starte. Aber wie du siehst geht es innerhalb der IDE beim Debuggen bzw. Ausführung. Zitat:
Wie gesagt mit dem Manifest dort oben startet das Projekt erst gar nicht. (IDE) Dazu muss ich das Manifest erst mit asInvoker ausstatten. gruss |
AW: UAC Steuerungsdialog Win10
Hallo Emil,
Kannst Du mal erklären warum Deine Programme Administrator Rechte benötigen? Das sollte nur in den seltensten Fällen nötig sein |
AW: UAC Steuerungsdialog Win10
Zitat:
Denn in der IDE funktioniert es ja. Auch mein Programm OTTB64 funktioniert ohne Admin rechte nicht. Die Probleme hatte ich vorher alle nicht unter Win7. gruss |
AW: UAC Steuerungsdialog Win10
Ich behaupte das liegt zu 100% nicht an den Rechten.
Du weist wie Du mich erreichen kannst, ich will hier nicht Öl ins Feuer legen, aber zuerst einmal, da gebe ich meinen Vorrednern recht, Deine Projekt gehören auf keine Fall in irgend eine Program* Ordner. Dann: Wenn die IDE als Usr läuft kann Sie keine AdminProcess starten, gewollt und richtig. Das muss schief gehen: IDE User Programm Admin. Also Du hast meine Adresse. Gruss Fritz |
AW: UAC Steuerungsdialog Win10
Zitat:
Es sollte aber egal sein wo sie am ende ausgeführt werden. Denn bds.exe als Beispiel liegt auch unter Programme (x86) und wird dort ausgeführt warum darf ich meine Soundmachine oder andere Anwendungen von mir dort nicht ausführen? Die Einstellungen werden ja alle unter Roaming abgespeichert von daher dürfte es eigentlich egal sein wo und in welchem Pfad diese liegen. Aber alle x64 Anwendungen laufen ohne Adminrechte nicht. Und werden auch nicht gestartet wenn sie zum Beispiel in Autostart Ordner liegen. (OTTB64) Zitat:
Woran soll es sonst liegen wenn nicht an den Adminrechten. gruss |
AW: UAC Steuerungsdialog Win10
Welchen Teil von "Lasse das Manifest so wie es die IDE erzeugt ohne Änderung.", hast du nicht verstanden?
Einfach nicht daran herumfummeln. Lasse dein Manifest einfach weg. |
AW: UAC Steuerungsdialog Win10
Zitat:
Nochmal extra für dich!
Code:
funktionieren Meine Visualisierungen nicht! Alles klar?
<!-- Mildrop Visualisation support -->
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"> </assemblyIdentity> </dependentAssembly> </dependency> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*"> </assemblyIdentity> </dependentAssembly> </dependency> <!-- End of Mildrop Visualisation support --> Ich hoffe du hast mich jetzt verstanden warum ich das nicht kann. Es besteht kein Grund das Manifest über die IDE zu erstellen zumal dieses in D2010 eh nicht viel hergibt.. das ist nicht "DCE" gruss |
AW: UAC Steuerungsdialog Win10
Was auch immer "DCE" bedeuten soll?!
Ist dir schon mal aufgefallen, dass du von uns ganz viel Vorwissen erwartest, was deine Programme können, tun und machen sollen? Funktioniert das für dich im echten Leben? Oder schnauzst du die Bäckersfrau auch an, weil sie dir dein Bestellwunsch nicht von den Lippen ab liest? Wenn du der Meinung bist, dass es nicht ohne geht (ist damit das Milkdrop Musikvisualisierungs-Plugin gemeint? Es fehlt das k im XML-Kommentar), dann kommentiere doch zumindest testweise den gesamten trustInfo-Node aus. |
AW: UAC Steuerungsdialog Win10
Relative Pfade oder ähnliches könnten auch für das Problem verantwortlich sein. Solltest du halt debuggen, und zwar ohne Adminrechte.
Grüße Dalai |
AW: UAC Steuerungsdialog Win10
Zitat:
Zitat:
Ist dir schon aufgefallen das du immer irgendwie versuchst deinen Standpunkt durchzusetzen? Was ist da nicht zu verstehen das ich das Manifest nicht mit der IDE erstellen will? Es hat einen Grund! Zitat:
Sorry bin kein Klein Kind und verstehe schon. Zitat:
Ich zumindest nicht! Diese Art der ungerechtfertigten Anschuldigen ist das was mich immer auf die Palme bringt. Lass gut sein habe keine Lust wegen dir wieder gebannt zu werden. Ich habe meine lehren daraus gezogen und weis das man aufpassen muss was man sagt.. egal wie gerechtfertigt es ist. Zitat:
Kann ich mal versuchen und werde berichten. gruss |
AW: UAC Steuerungsdialog Win10
Ich gebe dir den Tipp:
1, Während der Entwicklung speichere alle Projektdateien (*.pas, *.dfm, *.exe, *.dcu, ...) außerhalb von "c:\programme" 2, Während der Programmausführung speichere keine Dateien in deinem Anwendungsverzeichnis. Nehme hier die seit Jahrzehnten dafür vorgesehenen Verzeichnisse wie %Appdata% oder C:\ProgramData 3, Nur wenn du spezielle Fehler nachstellen willst kompiliere deine Anwenung nach "c:\Programme". Wenn Du 2 beherzigst hast du auch keine Problem damit das etwas anders ist je nachdem ob die IDE mit oder ohne Adminrechte gestartet ist. |
AW: UAC Steuerungsdialog Win10
Danke.
zu 1. Habe ich beherzigt und habe alle Projekte in den Dokumenten Ordner verschoben. zu 2. Ich verwende %APPDATA\Roaming Die Delphi IDE läuft nun richtig mit deinem Tip's ohne Adminrechte. Aber löst immer noch nicht das Problem mit meinem Anwendungen. Muss mich da noch schlau machen was da falsch läuft. Die haben unter Win7 alle funktioniert auch ohne Adminrechte. gruss |
AW: UAC Steuerungsdialog Win10
Habe jetzt alles soweit am laufen unter W10 ohne irgendwelche Adminrechte aber meine Anwendung funktioniert nur richtig wenn ich sie in der IDE mit Delphi ausführe.
Versteh nicht warum das als eigenständige Anwendung dann nicht mehr funktioniert :stupid: Welche rechte könnten da fehlen? Die Mp3 Dateien liegen auf einer anderen Platte der zugriff ist also gewährt. (Kein Schreibschutz nichts) Meine Anwendung starte ich unter Dokumente. Keine Ahnung was das Problem verursachen könnte. Habe nochmal 2 Pics angehängt. Also was macht Delphi anders als meine Anwendung wenn sie alleine läuft? :wall: gruss |
AW: UAC Steuerungsdialog Win10
Hmm..
In welchem Verzeichnis werden die Cover vor der Anzeige abgelegt? Ist dort vielleicht ein festes Verzeichnis eingetragen? |
AW: UAC Steuerungsdialog Win10
Zitat:
Ansonsten benutzen wir für solche Probleme als absolutes Standard-Tool den ![]() Den sollte jeder Entwickler kennen. Als Standardfilter bietet es sich an auf "Process Name" zu filtern, "is" auszuwählen und als Filtertext den Namen der Anwendung einzugeben. Meistens reicht das schon. Wenn dann der Fehler passiert ist, einfach eine ggf. angezeigte Fehlermeldung offen lassen und schauen was zuletzt im Process Monitor geloggt wurde. |
AW: UAC Steuerungsdialog Win10
Zitat:
Werde mal schauen was der mir ausspuckt. Zitat:
Ich habe noch mit keiner Programmiersprache gearbeitet wo die Eigenschaften\Funktionsweise einer Anwendung verändert wird wenn sie alleine außerhalb der Entwicklungsumgebung gestartet wird. Kann ich mir nicht erklären. Mit dem Arbeitsverzeichnis hat es nichts zu tun wäre das in meiner Anwendung falsch gesetzt dürfte es auch in der Entwicklungsumgebung nicht funktionieren. Aber das tut es und ich weis nicht warum es so ist. Meine Anwendung müsste sich eigentlich genauso verhalten wie in der Entwicklungsumgebung, tut sie aber nicht. Wenn man sich nicht mal mehr darauf verlassen kann das sich eine Anwendung gleich verhält in und außerhalb der Entwicklungsumgebung was soll das dann noch. Hmmmmm….. gruss |
AW: UAC Steuerungsdialog Win10
Eine aus der IDE gestartete Anwendung nutzt das von der IDE genutzte Arbeitsverzeichnis sofern bei Start / Parameter kein Arbeitsverzeichnis gesetzt ist.
Dieses Arbeitsverzeichnis muss nicht mit dem Arbeitsverzeichnis übereinstimmen, dass eine Anwendung nutzt, wenn sie außerhalb der IDE gestartet wird. Das kann zuweilen sehr verwirrend sein. Eventuell hilft es der "Informationsfindung", wenn Du beim Programmstart mal ein
Delphi-Quellcode:
einbaust und die Ausgabe beim Start aus der IDE mit der Ausgabe beim Start ohne IDE vergleichst.
ShowMessage(GetCurrentDir);
Statt ShowMessage kannst Du das natürlich auch auf andere Weise protokollieren, ist halt nur eine Info, die eventuell bei der Fehlersuche hilfreich sein könnte. |
AW: UAC Steuerungsdialog Win10
Zitat:
Wenn ich in der Anwendung das Arbeitsverzeichnis selber setze wird auch in der IDE beim kompilieren\debuggen dieses verwendet. Was hat das Arbeitsverzeichnis damit zu tun das sich meine Anwendung in der IDE anders verhält als alleine? Ich benötige auch kein Showmessage um zu wissen welches das ist ;) denn ich setze es ja vorher selbst. Mal zum Ablauf! Die Bilder werden nicht von meiner Anwendung sondern von einem Externen Plugin geladen der Pfad dafür ist "C:\Program Files (x86)\Windows Media Player\Visualizations\MediaPlayer_10.dll" 1. Sie wird gestartet 2. Läd eine Mp3 Datei aus irgendeinen Pfad 3. Übergibt das verwendete Plugin an meinen Visualisierungs Wrapper 4. Dieser Kommuniziert nun mit diversen DLL's vom Windows Media Player 5. Und rendert die Rückgabe des Plugin in einem Window der Anwendung. PS: Habe nochmal zwei shots gemacht und dein Message eingebaut obwohl ich mir klar darüber bin das in beiden fällen Der Arbeitspfad der gleiche ist. IDE funktioniert außerhalb nicht. Der Process Monitor bringt gar nichts er zeigt mir nur an das verschiedene Bilder vom Plugin nicht gefunden werden. Aber das ist mir bekannt. Wenn das also ein Problem wäre.. dürfte das Resultat in dem Fall auch in der IDE nicht True sein. Ist es aber, wie man sieht werden dort die Bilder gerendert. EDIT: Fakt ist doch dieser! Welchen Sinn macht es eine Anwendung zu debuggen wenn das verhalten dieser in der Entwicklungsumgebung anders ist als allein gestartet. Welcher murks wird da vom Compiler generiert? Das es hier unterschiede gibt. Eine einfache Berechnung 1+1 muss in der IDE sowie außerhalb das gleiche Ergebnis liefern und nicht wie hier = 3 Wohlbemerkt das Problem tritt nur unter "Windows 10 Alpha" auf. gruss |
AW: UAC Steuerungsdialog Win10
Zitat:
Die Datei "C:\Program Files (x86)\Windows Media Player\Visualizations\MediaPlayer_10.dll" gibt's übrigens auf keinem meiner Systeme, weder Win10 noch Win7 (auf letzterem gibt's noch nicht einmal das Verzeichnis Visualizations). Aber das mag damit zusammenhängen, dass ich keinen WMP verwende. Grüße Dalai |
AW: UAC Steuerungsdialog Win10
Neben dem ProcessMonitor gibt es bei SysInternals auch noch ein Programm FileMon.Exe.
Das kann ausführlich protokollieren, welche Datei von einem Prozess gesucht wird, welche geöffnet wird, Lese- und Schreiboperationen ... Man kann dort sehen, ob die Suche nach einer Datei erfolgreich war oder eben nicht. Hier müsste man mal schauen, ob irgendwas als nicht erfolgreich protokolliert wird, wo gesucht wurde und wo hätte gesucht werden müssen. Theoretisch müssten die Protokolle ja beim Aufruf aus der IDE und beim Aufruf ohne IDE identisch sein. Frage ist halt, gibt es Unterschiede und wenn ja, wie lassen sie sich begründen. Weiß nicht, ob FileMon.exe eventuell mehr Infos liefert, als der ProcessMonitor. Man kann sich das Ergebnis in 'ne Datei schreiben lassen und darin dann gezielt suchen, ob es irgendwelche Unstimmigkeiten gibt. Mir war nicht klar, dass Du das Arbeitsverzeichnis im Programm explizit setzt. In dem Falle ist / war mein Vorschlag natürlich für die Katz. Zitat:
Startet man das Programm aber nicht aus der IDE und die Exe läge z. B. im Verzeichnis G:\MeineProgramme\, so wäre das Arbeitsverzeichnis in diesem Falle G:\MeineProgramme\. Gibt es nun Abhängigkeiten zu DLLs, PlugIns oder sonstigen Dateien, so kann es passieren, dass sie, ausgehend vom Arbeitsverzeichnis E:\Delphi\, gefunden würden, aber ausgehend vom Arbeitsverzeichnis G:\MeineProgramme\ nicht. Es könnte sich bei dem von Dir beobachteten Verhalten um eine derartige Konstellation handeln, muss es aber nicht. Es ist halt nur eine Idee für eine mögliche Fehlerursache, aber keinesfalls eine quasi für alle Umstände gültige Aussage. Ich gehe nicht davon aus, dass es sich um einen Fehler im Compiler bzw. im generierten Code handelt, sondern um irgendein Konfigurations- und/oder Abhängigkeitsproblem, das sich in dieser Form nur unter Windows 10 Alpha ergibt. |
AW: UAC Steuerungsdialog Win10
Zitat:
Von daher ist das erst einmal egal, nur wenn dann muss es auch funktionieren und das hat es bisher unter Win7 immer getan. Zitat:
Delphi-Quellcode:
Sorry das ist uninteressant denn wie du sehen kannst wird ja innerhalb der IDE korrekt gerendert.
function TWMPHelper.RenderWindowed(var pData: TimedLevel; fRequiredRender: Bool): Bool;
begin Result := False; try EnterCriticalSection(CritSect); if Assigned(_IWmpEffects2) then try if _IWmpEffects2.RenderWindowed(pData, fRequiredRender) = S_OK then Result := True; except Result := False; end; finally LeaveCriticalSection(CritSect); end; end; Aber nochmal.. nicht als eigenständige Exe. Wenn ich also Debugge und hier true zurück geliefert wird ergibt das schon etwas sinnvolles. ;) Es ist in der Entwicklungsumgebung auch alles korrekt! Nur ich kann schwerlich einen "Fehler" finden der in der Entwicklungsumgebung nicht existent ist aber ohne schon. Zitat:
Zitat:
Trotzdem rendert in der IDE das Plugin korrekt. Zitat:
Oder? Zitat:
Es ist eine ActiveX.dll und wird Systemweit registriert von daher sollte es egal sein welcher Arbeitspfad gesetzt ist. Zitat:
Werde das wohl überarbeiten müssen erklärt aber immer noch nicht warum es in der IDE funktioniert. Und wie soll man einen Fehler beheben der eigentlich nicht existiert das fuchst mich gewaltig. gruss |
AW: UAC Steuerungsdialog Win10
Zitat:
Wird sowohl aus der IDE als auch ohne IDE die Datei nicht gefunden, aber aus der IDE heraus trotzdem gerendert? Gibt der ProcessMonitor auch eine Info zum vollständigen Pfad der Datei AlbumArt_{8888F348-E19F-44C3-B158-27605170DC2F}_Large.jpg aus? Sind die Dateien immer mit absoluten Pfadangaben versehen oder gibt es eventuell auch relative Pfadangaben? Wenn auch eventuell weit hergeholt: Könntest Du mal die Umgebungsvariabeln des Programmes aufgerufen aus der IDE mit denen eines "Solo-Aufrufes" vergleichen. Eventuell gibt es da ja in der Path-Variabel ... oder sonstwo einen Unterscheid, der zu diesem seltsamen Seiteneffekt führt. Der Processmonitor kann einem ja die von 'nem Prozess geladenen Module anzeigen, gibt es dort eventuell Unterschiede? |
AW: UAC Steuerungsdialog Win10
Zitat:
Zitat:
Ich habe das log von der IDE und eigenständiger Anwendung abgespeichert und konnte keine Unstimmigkeiten entdecken. Das einzige was ich dadurch festgestellt habe ist das die PRV also die Privaten Frames unter Win10 gebrochen sind. (werden nicht mehr erstellt und ausgewertet.) Habe ich bereinigt und bekomme jetzt das Ergebnis siehe Shot. Aber in der IDE wird das Cover gerendert nicht die leere Hülle. Danke für deine Unterstützung. Denke muss erstmal das Problem mit den fehlenden Cover beheben es wäre möglich das es dann korrekt läuft. Erklärt aber immer noch nicht das aktuelle verhalten auch wenn es dann funktionieren sollte. Wenn der OpenStatus sich ändert muss ich mir die GUID holen und das Cover abspeichern wenn nicht vorhanden.
Delphi-Quellcode:
var
x: string; begin x := currentMedia.getItemInfo('WM/WMCollectionID'); gruss |
AW: UAC Steuerungsdialog Win10
Starte dein Programm bitte mal per rechter Maustaste -> Kontextmenü -> "Als Administrator ausführen".
Sollte dann die Cover angezeigt werden, dann wird bei dir oder innerhalb dieses Visualisierungs-Plug-In noch Schindluder in Sachen Rechte und Verzeichnisse betrieben. Ggf. vielleicht auch die Abhängigkeit von den externen DLL lösen und selber das Cover aus der MP3 auslesen und anzeigen. Da gibt es auch was für Delphi: ![]() |
AW: UAC Steuerungsdialog Win10
Zitat:
Zitat:
Ich muss es über den Media Player selber lösen wie im Beispiel gezeigt. gruss |
AW: UAC Steuerungsdialog Win10
Zitat:
Kannst du die Logs vielleicht zeigen? |
AW: UAC Steuerungsdialog Win10
Zitat:
gruss |
AW: UAC Steuerungsdialog Win10
So habe das Problem jetzt gelöst (Nein nicht das mit Delphi warum auch immer es hier in der IDE funktioniert hat)
Unter Win7 habe ich mit meinem PrivframesWriter die Frames auf diese weise in die Mp3 Dateien geschrieben.
Delphi-Quellcode:
Das hatte zur folge das jede Datei mit einer anderen GUID erstellt wurde.
for i := 1 to 16 do
begin b := Random(255); GUID.Write(b, 1); end; v23Tag.SetPrivateFrame('WM/WMCollectionID', GUID); v23Tag.SetPicture('image/jpeg', 0, '*', PicData); v23Tag.WriteToFile(mp3file); Hier lag der erste Fehler denn für ein Album egal welche Dateien geladen werden muss die GUID immer gleich sein. Unter Win7 schien das aber egal zu sein es hat immer funktioniert. Nun habe ich es so abgeändert.
Delphi-Quellcode:
jetzt ist es egal welches Album bzw. Datei das Frame enthält.
for i := 1 to 16 do
begin b := 0 GUID.Write(b, 1); end; v23Tag.SetPrivateFrame('WM/WMCollectionID', GUID); v23Tag.SetPicture('image/jpeg', 0, '*', PicData); v23Tag.WriteToFile(mp3file); Die GUID ist jetzt immer AlbumArt_{00000000-0000-0000-0000-000000000000}_Large.jpg So muss sich niemand damit rumschlagen nach der richtigen zu suchen damit das Picture korrekt angezeigt wird. Befindet sich kein Frame (GUID) innerhalb der Datei nun dann wird die leere Hülle angezeigt. Damit kann ich leben. Wenn nun jemand das Cover der jeweiligen MP3 anzeigen möchte muss die GUID addiert und ein Picture mit der NullGuid im Albumpfad vorhanden sein. Habe jetzt noch zusätzlich das schreiben der AlbumArt_{00000000-0000-0000-0000-000000000000}_Large.jpg automatisiert. Bei 100'ten von Alben ist das zu mühselig von Hand zu machen.
Delphi-Quellcode:
gruss
v23Tag.SetPrivateFrame('WM/WMCollectionID', GUID);
v23Tag.SetPicture('image/jpeg', 0, '*', PicData); v23Tag.WriteToFile(mp3file); if Path <> OldPath then begin if FileExists(Path + 'AlbumArtSmall.jpg') and not FileExists(Path + 'AlbumArt_' + NullGUID + '_Large.jpg') then begin try JpgIn := TJPEGImage.Create; JpgOut := TJPEGImage.Create; JpgIn.LoadFromFile(Path + 'AlbumArtSmall.jpg'); finally JpgOut.Assign(JpgIn); JpgOut.SaveToFile(Path + 'AlbumArt_' + NullGUID + '_Large.jpg'); JpgIn.Free; JpgOut.Free; OldPath := Path; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz