Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   DLLOCX Registrieren Contexmenu (https://www.delphipraxis.net/199141-dllocx-registrieren-contexmenu.html)

EWeiss 28. Dez 2018 20:19

DLLOCX Registrieren Contexmenu
 
Hat vielleicht jemand ein *.reg File das unter Windows 10 funktioniert um DLL's und Ocx zu registrieren\Unregistrieren ?
Registrierung funktioniert UnRegistrieren nicht.

Code:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\Windows\\System32\\regsvr32.exe"="~ RUNASADMIN"

[HKEY_CLASSES_ROOT\DllFile\Shell\Register]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\DllFile\Shell\Register\Command]
@="C:\\Windows\\System32\\regsvr32.exe \"%1\""

// ************** ab hier funktioniert es nicht mit Adminrechten *************
[HKEY_CLASSES_ROOT\DllFile\Shell\Unregister]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\DllFile\Shell\Unregister\Command]
@="C:\\Windows\\System32\\regsvr32.exe -u \"%1\""

[HKEY_CLASSES_ROOT\OcxFile\Shell\Register]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\OcxFile\Shell\Register\Command]
@="C:\\Windows\\System32\\regsvr32.exe \"%1\""

[HKEY_CLASSES_ROOT\OcxFile\Shell\Unregister]
"HasLUAShield"=""

[HKEY_CLASSES_ROOT\OcxFile\Shell\Unregister\Command]
@="C:\\Windows\\System32\\regsvr32.exe -u \"%1\""
gruss

HolgerX 29. Dez 2018 07:09

AW: DLLOCX Registrieren Contexmenu
 
Hmm..

Wieso verwendest Du nicht direkt regsvr32?

Dieses trägt doch die Eintrage im System und Registry korrekt ein, bzw. löscht diese bei Uninstall...

Hier muss nur bei 32Bit Apps aufgepasst werden, das auf einem 64Bit System die Richtige genutzt wird.

Und Adminrechte brauchst Du bei deinen Änderungen, wie auch beim Aufruf von regsvr32 dennoch.


https://www.thewindowsclub.com/regis...l-file-windows
https://community.sophos.com/kb/en-us/14343
https://www.thewindowsclub.com/regsv...error-messages

jaenicke 29. Dez 2018 08:58

AW: DLLOCX Registrieren Contexmenu
 
Zitat:

Zitat von HolgerX (Beitrag 1422254)
Wieso verwendest Du nicht direkt regsvr32?

Das macht er doch, aber der Aufruf scheint ja nicht richtig zu funktionieren. Als Ausweichlösung kann man das natürlich auch manuell von der Kommandozeile ausführen, aber per Kontextmenü ist es natürlich einfacher.

Bei mir funktioniert das aber mit den geposteten Registryeinträgen. Die Menüeinträge sind beide da, haben das Adminschild, lassen sich auch erfolgreich inkl. Adminanforderung ausführen.

Was passiert denn, wenn du auf das Unregister klickst? Kommt eine Fehlermeldung, kommt keine Adminaufforderung, ...? Im Taskmanager sehe ich, wenn die Meldung kommt, dass die Registrierung bzw. Deregistrierung erfolgreich war, dass auch die Kommandozeile richtig aussieht. Falls eine Fehlermeldung kommt, solltest du das auch prüfen können.

HolgerX 29. Dez 2018 13:54

AW: DLLOCX Registrieren Contexmenu
 
Hmm...

Hab da nur

https://www.winhelponline.com/blog/r...-context-menu/

gefunden, scheint aber das selbe script zu sein, nur etwas anders angeordnet....

EWeiss 29. Dez 2018 18:00

AW: DLLOCX Registrieren Contexmenu
 
Zitat:

Was passiert denn, wenn du auf das Unregister klickst? Kommt eine Fehlermeldung, kommt keine Adminaufforderung, ...?
Bilder sagen mehr als Tausend worte.
Ich möchte die Quarz.dll entfernen und andere Versionen versuchen.. Win10 hat extreme Probleme damit mein Player kann so gut wie kein Video starten.
Und wenn dann nur Ton Absturz inbegriffen.

Zitat:

Falls eine Fehlermeldung kommt, solltest du das auch prüfen können.
Die sind nichtssagend und genauso fehlerhaft wie einiges andere im System.
Angeblich gibt es die Datei nicht oder wurde nicht gefunden.. obwohl ich sie offensichtlich angeklickt habe. :wall:
Zitat:

Wieso verwendest Du nicht direkt regsvr32?
Ich möchte mich nicht durch hunderte von Pfaden mit PowerShell hangeln rechtsklick, bestätigen, fertig!

Ich habe auch noch andere Scripts(Reg-Files) die das Arbeiten erleichtern. siehe Scripts.png .

gruss

jaenicke 29. Dez 2018 19:00

AW: DLLOCX Registrieren Contexmenu
 
Zitat:

Zitat von EWeiss (Beitrag 1422272)
Bilder sagen mehr als Tausend worte.
Ich möchte die Quarz.dll entfernen und andere Versionen versuchen..

Werden vorher Adminrechte angefordert? Die Fehlermeldung bedeutet nämlich "Zugriff verweigert". Solche Probleme hatte ich mal auf Systemen, auf denen z.B. kurzzeitig die Benutzerkontensteuerung deaktiviert wurde. Worauf da der Zugriff verweigert wird, sollte der Process Monitor zeigen.

Zitat:

Zitat von EWeiss (Beitrag 1422272)
Ich habe auch noch andere Scripts(Reg-Files) die das Arbeiten erleichtern. siehe Scripts.png

Das Win+X Menü bekommt man nun übrigens auch per Rechtsklick auf den Startknopf, von daher ist es ohnehin jederzeit auch per Maus zu erreichen.

HolgerX 29. Dez 2018 19:15

AW: DLLOCX Registrieren Contexmenu
 
Hmm..

Könnte es sein, das der Zugriff auf das Unregister geblockt wurde, weil Quarz.dll vielleicht gerade von einem anderen Prozess verwendet wird?

Kannst ja mal mit diesem Tool schauen:

http://www.nirsoft.net/utils/loaded_dll_view.html

ob die DLL noch geladen ist und von wehm...

HolgerX 29. Dez 2018 19:42

AW: DLLOCX Registrieren Contexmenu
 
Hmm..

Andere Frage:
Ist die Quarz.dll eventuell eine 32Bit DLL ?
Dann könnte es sein, dass der Aufruf von regsvr32.exe unter \System32 fehlschlägt, da die 32bit DLL nicht geladen werden kann.
Somit ist dein Contextmenu unter 64Bit nur für 64Bit Libs verwendbar..

(Nur so eine Idee)

Siehe:

https://support.microsoft.com/de-de/...error-messages
Zitat:

Hinweis Bei einer 64-Bit-Version eines Windows-Betriebssystems sind zwei Versionen der Datei "Regsv32.exe" verfügbar:
Die 64-Bit-Version ist "%systemroot%\System32\regsvr32.exe".
Die 32-Bit-Version ist "%systemroot%\SysWoW64\regsvr32.exe".

Alternativ kannst Du Dir ja einen eigenen (Zwischen-Starter) für den Aufruf anhand 32/64 Bit der Lib mit \System32\regsvr32.exe oder \SysWoW64\regsvr32.exe basteln.

Oder direkt eine eigene regsvr32.exe...
Dieser könntest Du eventuell auch ein Versions Compare mitgeben.. ;)

Unter D6 gibt es hierfür ein Beispiel $(Delphi)\Demos\ActiveX\TRegSvr\

EWeiss 30. Dez 2018 01:17

AW: DLLOCX Registrieren Contexmenu
 
Zitat:

Das Win+X Menü bekommt man nun übrigens auch per Rechtsklick auf den Startknopf
Wenn man es zulässt;)
Bei mir zumindest nicht da ist schon der WinKey + x erforderlich.
So ist es mir lieber und ich verwende Classic Start Menu will von dem Tablet, Phone und anderen kram auf meinem Desktop PC nichts sehn.
MS verweigert ja die Installation aber anstatt nach dem Hash der Anwendung zu scannen wird nur der Name zum blockieren verwendet
eine einfache Umbenennung und schon lies es sich ohne murren installieren.

Ich benötige keine Kacheln oder ähnlichen Kram aus dem einfachen Grund weil ich nichts mit meinem Fingern betatsche den Bildschirm schon gar nicht.
Der Inhalt der Kacheln ist für mich unwichtig.
Mit Werbung werde ich im Internet schon zugeschüttet und Wettervorhersagen wer braucht das?
Das mag alles schön und gut sein wenn man Synchronisieren oder aber mit Anwendungen von außerhalb auf den PC zugreifen will aber wie gesagt habe damit nichts man Hut.

Zitat:

Ist die Quarz.dll eventuell eine 32Bit DLL ?
Als auch. 64+32Bit

Zitat:

Somit ist dein Contextmenu unter 64Bit nur für 64Bit Libs verwendbar..
Schon versucht oder wie kommst du zu dieser Feststellung?
Meine ActiveX Dll's - Ocx'e sind alle 32Bit.

Zitat:

Kannst ja mal mit diesem Tool schauen:
danke dafür nehme ich den ProcessMonitor von SysInternals

Zitat:

Und Adminrechte brauchst Du bei deinen Änderungen, wie auch beim Aufruf von regsvr32 dennoch.
Hast du vielleicht das "RUNASADMIN" übersehen? Richtig die braucht man des deshalb gibt es diesen Befehl.
"C:\\Windows\\System32\\regsvr32.exe"="~ RUNASADMIN"

gruss

jaenicke 30. Dez 2018 07:35

AW: DLLOCX Registrieren Contexmenu
 
Zitat:

Zitat von EWeiss (Beitrag 1422291)
Ich benötige keine Kacheln oder ähnlichen Kram aus dem einfachen Grund weil ich nichts mit meinem Fingern betatsche den Bildschirm schon gar nicht.
Der Inhalt der Kacheln ist für mich unwichtig.

Anderes Thema, drum antworte ich per PN. ;-)

Zitat:

Zitat von EWeiss (Beitrag 1422291)
Zitat:

Somit ist dein Contextmenu unter 64Bit nur für 64Bit Libs verwendbar..
Schon versucht oder wie kommst du zu dieser Feststellung?

Das ist so, ja, gerade noch einmal getestet. Die DLL im Screenshot liegt aber ja ohnehin unter system32 und ist somit eine 64-Bit DLL. Entsprechend wäre ja auch die regsvr32.exe unter system32 korrekt.

Nebenbei habe ich zuletzt unter Windows 9x DLLs in das System32 Verzeichnis gelegt. Seit Windows 2000 registriere ich diese über das Setup oder lege sie in das Anwendungsverzeichnis. Denn ansonsten greift die DLL-Versionierung von Windows nicht.

Zitat:

Zitat von EWeiss (Beitrag 1422291)
Zitat:

Und Adminrechte brauchst Du bei deinen Änderungen, wie auch beim Aufruf von regsvr32 dennoch.
Hast du vielleicht das "RUNASADMIN" übersehen? Richtig die braucht man des deshalb gibt es diesen Befehl.
"C:\\Windows\\System32\\regsvr32.exe"="~ RUNASADMIN"

Aber trotzdem meldet die regsvr32.exe ja zurück, dass der Zugriff verweigert würde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz