1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Vista: User32.dll austauschen möglich?

Discussion in 'Windows XP / Server 2003/2008 / Vista' started by Nepal, Mar 18, 2010.

Thread Status:
Not open for further replies.
  1. Nepal

    Nepal Byte

    Guten Tag,

    ich habe ein Programm auf 2 verschiedenen Vista-Rechnern installiert.
    Auf einem PC ist alles i.O., auf dem anderen erhalte ich folgende Fehlermeldung:

    1. Die Ordnungszahl 7 wurde in der DLL „User32.dll“ nicht gefunden.
    2. MonfWin.exe funktioniert nicht mehr. Ein Problem hat die richtige Ausführung dieses Programms verhindert. Schließen Sie das Programm.

    Die Ordnungszahl 7 = AllowForegroundActivation
    Und genau diese Funktion benötigt das Programm, weil es immer im Vordergrund liegt.

    Funktionierender Rechner:
    Vista Business SP1: User32.dll vom 18.01.08, Dateiversion: 6.0.6001.18000, Größe: 627.200 Bytes

    Nicht funktionierender Rechner:
    Vista Business SP2: User32.dll vom 10.04.09, Dateiversion: 6.0.6002.18005, Größe: 627.712 Bytes
    Hier gibt es eine Schattenkopie der User32.dll vom 21.01.08. Dateiversion und Größe sind mit der User32.dll vom 18.01.08 identisch.
    Allerdings ist der Wiederherstellen-Button nicht aktiviert, ich kann nur öffnen oder kopieren wählen …

    Fragen:
    1. Kann ich die neuere user32.dll (Vista SP2) durch die ältere Version aus SP1 ersetzen ???
    Umgekehrt dürfte es nicht funktionieren … Sprich, die ältere Systemdatei aus SP1 mit der neueren aus SP2 auszutauschen … oder?

    2. Falls ich sie ersetzen kann, muss sie dann noch registriert werden (regsvr /s user32.dll) ?

    Warum dieser Eintrag in der neueren user32.dll nicht mehr vorhanden ist, verstehe ich nicht so ganz …


    Ich würde mich sehr freuen, wenn mir jemand weiterhelfen könnte.

    Viele Grüße
    Nepal
     
  2. deoroller

    deoroller Wandelndes Forum

    Wie heißt denn das Programm? Bevor du in den Systemdateien von Vista herumfrickelst, solltest du es beim Hersteller des Programms versuchen (FAQ, Hilfe, usw.).
    Die User32.dll lässt sich vermutlich nicht im laufenden Betrieb austauschen und wenn sie nicht zur Vista Version passt, startet Vista womöglich nicht mehr.
     
  3. Nepal

    Nepal Byte

    Hallo Deoroller,

    vielen Dank für Deine Antwort.

    Es handelt sich um ein Füllmengenkontrollprogramm.
    Besagtes Monitor-Alarm-Programm läuft immer im Vordergrund, um sofort Unter- und Überfüllungen zu erkennen.

    Lt. Hersteller wird Vista nicht unterstützt ... Die Aussage war, ich soll es probieren, was ich ja auch getan habe. Ergebnis: auf meinem Rechner habe ich das Programm zum Laufen gebracht, aber nicht auf dem PC des Users, der es benötigt. Wahrscheinlich wegen SP2.

    Hatte auch schon mal die user32.dll des Vista-SP2-Rechners auf meinen PC (Vista SP1) kopiert ... Das Ergebnis war, wie Du schon vermutet hast, dass Vista nicht mehr startete. Das Reparaturprogramm setzt die ursprüngliche, zum System passende, Version wieder ein.
    Wollte den User-PC nicht in "Unordnung" bringen, deshalb bin ich mit meinem PC den umgekehrten Weg gegangen.

    Was tun?
    Ich vermute mal, dass der Austausch der user32.dll nicht funktionieren wird. Leider ... wäre ja auch zu einfach gewesen ...

    Hast Du noch ne Idee?


    Viele Grüße
    Nepal
     
  4. mike_kilo

    mike_kilo Ganzes Gigabyte

    die user32.dll als Kernel-file unterliegt dem SFC.
    Windows würde versuchen, diese immer zu ersetzen.
    "Rein theoretisch" könnte man versuchen, die neue mit regsvr32 de-registrieren, umbenennen, die alte "einschleusen" und mit regsvr32 anmelden.
    Windows sieht das jedoch als illegal an, und inwieweit die UAC > "Run as Admin" , DEP und andere Schutzmechanismen da mitspielen, ist nicht klar.
    RegSvr32
    Syntax/Parameter:
    regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname
    /u - Serverregistrierung aufheben
    /s - Hintergrundmodus. Meldungen werden nicht angezeigt
    /i - Aufruf von DllInstall, wobei optional eine [Befehlszeile] übergeben werden kann. Unter Verwendung von /u wird die DLL-Deinstallation aufgerufen.
    /n - Kein Aufruf von DllRegisterServer. Diese Option muss mit /i verwendet werden.
    > http://www.website-go.com/artikel/regsvr32.php
    Nur bei vorhandenem System-Image würde ich sowas wagen, falls du da "herumfrickelst". Siehe Deos Rat!
     
  5. deoroller

    deoroller Wandelndes Forum

    Kann das Programm nicht in einem Emulator laufen?
    Virtual PC mit XP zum Beispiel.
    Downgarde auf SP1 ist auch keine Alternative, da der Support nächstes Jahr dafür ausläuft. (keine neue Sicherheitsupdates mehr)
    Bietet der Hersteller kein Update mehr für das Programm an?
    Das ist wahrscheinlich eine Kostenfrage?
     
  6. Fettbemme

    Fettbemme Halbes Megabyte

    Hallo

    Und ich denke mal darin besteht genau das Problem. Laut Microsoft gibt es KEIN Programm dass so wichtig ist, dass im Vordergrund gehalten werden muß. Dafür soll die API Funktion FlashWindow/FlashWindowEx verwendet werden, damit in der Taskleiste der Anwendungsbutton blinkt, und dem Anwender somit eine "Prüfnotwendigkeit" signalisiert.

    Nun das ist immer schlecht. Produktiv genutzte Software auf nicht unterstützten Betriebssystemen ist immer ganz schlecht.

    Die Funktionalität wird an einigen anderen Stellen auch noch verschwunden sein. Ich wage zu behaupten, dass die User32.dll nicht ausreicht. Allg. ist es sowieso schlecht nicht offiziell dokumentierte APIs zu verwenden. "AllowForegroundActivation" ist eine undokumentierte API Funktion. Die wirst Du in keiner MS Doku finden.

    ein offiziell unterstütztes OS verwenden. Sollte bei Produktivsystemen usus sein.



    User32.dll muß nicht registriert werden. Es handelt sich nicht um COM.
     
  7. Nepal

    Nepal Byte

    Hallo alle zusammen,

    sorry, dass ich mich erst heute melde.
    Vielen Dank für Eure Tipps + Anregungen.

    Die Idee mit der De-Registrierung und Neuanmeldung der user32.dll hatte ich auch schon, aber wieder verworfen.
    Ich denke, wie auch Fettbemme, dass es wahrscheinlich mit dem Austausch der user32.dll alleine nicht getan ist ..., falls es überhaupt möglich ist.
    Und ein Downgrade auf SP1 macht auch keinen Sinn ...

    Hatte auch mal versucht, über VNC zum Ziel zu gelangen. Über Ultra-VNC sollte es ja eigenlich möglich sein, nur ein einzelnes, bestimmtes Fenster zu übertragen. Ist mir leider nicht gelungen, hatte immer den kompletten Desktop ...

    Evtl. funktioniert der Zugriff über Virtualisierung. Aber z. Zt. kann ich das leider aus Zeitgründen nicht testen.
    Werde dem User jetzt erst mal eine zusätzliche W2K-Maschine zur Verfügung stellen, auf dem das Programm problemlos läuft.

    Bin ziemlich gefrustet, aber was soll's.
    Hoffe, irgendwann mal eine neue Programmversion für Windows 7 zu erhalten ...


    Viele Grüße
    Nepal
     
Thread Status:
Not open for further replies.

Share This Page