Archiv für die Kategorie ‘16bit’

Source Code von MS-DOS 2.0 veröffentlicht

25 März 2014

Yuppiee! Der erste Schritt ist gemacht. Nach über 30 Jahren wird der Source Code von MS-DOS 2.0 veröffentlicht. Bis wir den Source Code von Windows 8.1 und nachfolgend sehen werden, wird es sicherlich nicht mehr ganz so lange dauern. http://www.heise.de/newsticker/meldung/Quelltexte-von-MS-DOS-und-Word-for-Windows-veroeffentlicht-2154723.html

Hier zum Source von MS-DOS: http://www.computerhistory.org/atchm/microsoft-ms-dos-early-source-code/, falls nicht wieder die Guru Meditation wegen Überlastung kommt.

MS-DOS 2.0 das war das Betriebssystem, welches damals auf den ersten IBM-XT-PCs lief, dem Nachfolger des ersten als solches benannten Personal Computer, dem IBM PC. Da gab es auch schon Festplatten mit 10MB und so, ach und die flexiblen Scheiben, die 5 1/4 Zoll großen, ähm – ah ja – Floppy Disks! So ein PC war damals richtig schwer und heute tragen wir um 100 ja sogar 1000fach leistungsfähigere Geräte in der Hosentasche. Wer das alte Feeling nochmal erleben möchte, hier der Link zum MS-DOS 2.0 Emulator im Browser: http://jsmachines.net/configs/pc/machines/5160/cga/256kb/demo/

Warum es bei Windows 8.1 keine 30 Jahre bis zur Source Code Veröffentlichung dauern wird? Na weil das .Net Framework 4.5.1 bereits in seiner reinsten Form einsehbar ist: http://referencesource.microsoft.com/. Auch sind weite Teile von ASP.NET bereits unter Open Source verfügbar.

Schließlich wird Microsoft irgendwann gezwungen sein allen Source Code zu veröffentlichen, da keiner mehr den ganzen Müll warten will, den die da über die Jahre angehäuft haben. Denen gehen ja jetzt schon die ganzen Techniker aus, die sich mit dem ganzen Zeugs beschäftigen wollen bzw. die da überhaupt noch durchblicken. Man sieht dies ganz deutlich in vielen Microsoft moderierten Foren. Was da teilweise für Antworten von MS-Mitarbeitern kommen. Oder wie oft fehlt es an technischen Beschreibungen in der Knowledge Base oder Technet. Alles klare Anzeichen, dass die letzten Jahre viel in die falsche Richtung lief. Aber die Cloud soll es ja retten. Mal sehen, was nächste Woche auf der Build der neue Oberindianer von sich gibt.

Nochmal zum Thema 16-Bit-Programme unter Windows 8.1 32-Bit und wie verhält es sich mit FONDUE.EXE und den Legacykomponenten?

15 September 2013

Nachdem das Thema im vorhergehenden Artikel http://newyear2006.wordpress.com/2013/09/15/16-bit-programme-unter-windows-8-es-muss-zuerst-die-16-bit-anwendungsuntersttzung-aktiviert-werden/ schon ausführlich beschrieben wurde, folgt hier nun die Fortsetzung speziell auf Windows 8.1 bezogen.

Die Microsofties scheinen für die Zukunft Großes zu planen und gehen immer mehr in die Richtung nur die Komponenten einzusetzen, die wirklich benötigt werden. Mein Vorschlag: Powershell verwenden und auf den ganzen GUI-Käse verzichten Smiley. Spaß beiseite, wenn man unter Windows 8.1 bei Windows-Features aktivieren oder deaktivieren schaut, fällt einem bei der 32-Bit Version NTVDM auf, unter 64-Bit gibt es nur Directplay. Profis wissen, NTVDM das ist die DOS-Maschine unter Windows NT Anno dazumal.

Im oben genannten Artikel wurde der Dialog beschrieben der beim Aufruf von 16-Bit-Programmen erscheint. Unter Windows 8.1 sieht dieser nun so aus:

image

Deutlich professioneller, fast wäre man geneigt “Modern App”-Like zu sagen! Aber die Funktion ist die Gleiche wie beim alten Dialog. Es wird die NTVDM-Umgebung eingerichtet, damit die alten 16-Bit-Programme aufgerufen werden können.

Um in Setupskripten diese Komponenten automatisch einrichten zu können, kann man DISM.EXE verwenden.

So aktiviert diese Zeile die Unterstützung für 16-Bit:

dism /online /enable-feature /all /featurename:NTVDM

diese schaltet sie wieder ab:

dism /online /disable-feature /featurename:NTVDM
dism /online /disable-feature /featurename:LegacyComponents

Diese Zeilen entsprechen quasi den RUNDLL32-NTVDMCPL.DLL-Aufrufen vom letzten Artikel.

Apropos, da ich oben Powershell genannt hatte, hier noch die Kommandos in Powershell:

Enable-WindowsOptionalFeature –Online –FeatureName NTVDM –All

Zum Ausschalten:

Disable-WindowsOptionalFeature –Online –FeatureName NTVDM
Disable-WindowsOptionalFeature –Online –FeatureName LegacyComponents

Und noch die Abfrage, ob das Feature aktuell aktiv ist oder nicht:

(Get-WindowsOptionalFeature –Online) | where FeatureName –eq NTVDM

dies gibt dann ein BasicFeatureObject zurück:

Feature Name: NTVDM
State              : Disabled

Wenn man den State direkt abfragen möchte, sieht das noch professioneller aus:

(((Get-WindowsOptionalFeature –Online) | where FeatureName –eq NTVDM).State) –eq [Microsoft.Dism.Commands.FeatureState]::Enabled

Dies liefert dann wirklich ein Boolean mit $true oder $false zurück, mit dem man dann arbeiten kann. Für alle Scriptschreiber beachten: Der FeatureState kann noch weitere Werte annehmen:

[Enum]::GetNames([Microsoft.Dism.Commands.FeatureState])

ergibt:

Disabled
DisablePending
Enabled
EnablePending
Superseded
PartiallyInstalled
DisabledWithPayloadRemoved

Schön, so haben wir hier einen Legacy-Artikel der den Bogen von 16-Bit-MS-DOS-Programmen in die wunderbare Welt der Monads mit Powershell schlägt.

Stopp, ich hatte in der Überschrift noch FONDUE.EXE erwähnt, das wollte ich jetzt nicht unterschlagen. Wer die im vorhergehenden Artikel beschriebene Variante zum Aufruf der Einstellungen für 16-Bit-Anwendungsprogramme in der Systemsteuerung probiert, der bekommt FONDUE.EXE zu Gesicht. FONDUE ist jetzt nichts zum Essen sondern steht eher für FeatureOnDemand, wo auch immer das U herkommt. Mmmh, vielleicht wenn man UE für UserExperience setzt. Ja, in Zeiten von Modern UI muss es so sein. Merken wir uns FONDUE steht für Feature On Demand User Experience! Siehe da, schon im August 2011 hat die BILD.DE darüber berichtet!!! http://www.bild.de/digital/internet/windows-betriebssysteme/windows-8-vorabversion-kurzt-test-c_b-19363404.bild.html. Erinnert mich an: Bild sprach mit dem Toten…

16-Bit Programme unter Windows 8, es muss zuerst die 16-Bit Anwendungsunterstützung aktiviert werden

15 September 2013

Öfter mal was Neues! Da dieser Blog ja ein Herz für 16-Bit Programme hat, war ich um so mehr erstaunt also mir aktuell eine Meldung mit 16-Bit über den Weg lief.

Jetzt wird jeder einwenden, ja ist doch logisch! Unter 64-Bit Windows gibt es ja keine Unterstützung mehr für 16-Bit Programme. Stimmt! Aber in diesem Fall war es Windows 8 als 32-Bit Version! Der Fall ist etwas besonders, ja sogar so besonders, dass nicht einmal Microsoft Mitarbeiter Bescheid wissen.

So sieht der Dialog aus, ich stelle ihn Ausnahmsweise als Grafik ein, hat einfach Seltenheitswert (man beachte das tolle Win 3.x-Icon):

image

Wichtig dabei ist, die Meldung erscheint, egal ob es sich um echte 16-Bit MS-DOS-Programme handelt oder um 16-Bit-Windowsprogramme.

Blöd nur, wer im ersten Augenblick “Deaktivieren” anklickt, der hat verloren. Yes! Es gibt nämlich keine offensichtliche Methode die gemachte Auswahl einfach zu ändern. Mist! Wann immer man nun das betreffende Programm versucht zu starten, erscheint:

fibu.exe ist eine 16-bit-Anwendung. Sie sind nicht dazu berechtigt, 16-bit-Anwendungen auszuführen. Überprüfen Sie Ihre Berechtigungen mit dem Systemadministrator.

Analog erscheint in der Eingabeaufforderung:

Das angegebene Programm kann nicht ausgeführt werden.

Dumm nur, wenn der Systemadministrator keinen Plan hat. Noch blöder, wenn die Jungs von der Herstellerfirma, also MS, auch keinen Plan haben: http://answers.microsoft.com/en-us/windows/forum/windows_8-performance/how-to-enable-16-bit-application-support-in/a8d8c10d-0bbe-4a5f-a3b8-45e9725496fc. Aber was will man erwarten, wenn die Sache nicht einmal irgendwo im Technet oder MSDN dokumentiert ist. Dies führt dann z. B. auch zu der tollen Situation, dass auf Stackoverflow solche unrelevanten Fragen einfach Zwangsgeschlossen werden. Yupiee! http://stackoverflow.com/questions/13037968/how-to-enable-16-bit-applications-on-windows-8.

OK – es gibt immer einen Weg. Unbedarfte verwenden einfach die Systemwiederherstellung, in der Hoffnung, dass diese aktiviert war und nicht neue Probleme schafft. Danach nochmal die 16-Bit-Anwendung starten und hoffen, dass die Abfrage nochmal erscheint.

Der Profi ruft die Systemsteuerung auf und gibt dort im Suchfenster 16 ein. Oder noch einfacher man gibt 16 im Startbildschirm ein und klickt auf Einstellungen, dann taucht “Unterstützung für 16-Bit-Anwendungen” auf. Hier kann man die Einstellung jederzeit ändern und es erscheint obiger Dialog wieder.

Zum Schluss nun noch die Variante für die Commandliner. Wer diesen Punkt direkt verändern möchte, der braucht Admin-Rechte und kann dann über diesen Aufruf die Einstellung ändern, ohne dass der Benutzer behelligt wird:

rundll32.exe ntvdmcpl.dll,SetDPDExport 2

Alternativ kann man mit dieser Einstellung die Einstellung deaktivieren:

rundll32.exe ntvdmcpl.dll,SetDPDExport 1

Oder mit dieser die Einstellung wieder auf den Ursprungszustand stellen:

rundll32.exe ntvdmcpl.dll,SetDPDExport 0

Auch kann man den Dialog als solches aufrufen:

rundll32 shell32.dll,Control_RunDLL ntvdmcpl.dll

Bin mal gespannt wie viele Leute sich hier melden und über diesen Dialog noch stolpern, in Zeiten von 64-Bit Windows. Vielleicht dient dieser Beitrag aber auch nur, den Zeitgenossen mit 64-Bit zu verdeutlichen, dass es nicht immer nur eine Sicht gibt, sondern die Welt vielschichtiger sein kann.

Oplocks oder Opportunistic Locking lässt einen nicht los oder wie man alte 16bit Clipper Programme mit Server 2008 R2 Fileshares ans Laufen bekommt

24 Mai 2011

Hier der passende KB Artikel für die Oplocks: http://support.microsoft.com/kb/296264

Zur Abfrage der Einstellung:

reg query "HKLM\System\CurrentControlSet\Services\lanmanserv
er\parameters"

Zum Abschalten am Server:

reg add "HKLM\System\CurrentControlSet\Services\lanmanserver
\parameters" /v EnableOplocks /t REG_DWORD /d 0

Damit aber nicht genug. Denn es muss gleichzeitig noch SMB2 abgeschaltet werden. Ob man dies nun am Server oder am Client macht hängt davon ab, welche Clients ein Problem haben.

Auf die Schnelle kann man SMB2 auf dem Server abschalten, wenn man laut diesem Artikel http://www.petri.co.il/how-to-disable-smb-2-on-windows-vista-or-server-2008.htm# mittels

reg add "HKLM\System\CurrentControlSet\Services\lanmanserver
\parameters" /v Smb2 /t REG_DWORD /d 0

abschaltet. Ein zusätzliches Abschalten auf den Clients sollte eigentlich nicht notwendig sein, denn damit SMB2 verwendet wird, muss dieses auf beiden Seiten aktiv sein.

Infos zu SMB2: http://blogs.technet.com/b/josebda/archive/2008/12/05/smb2-a-complete-redesign-of-the-main-remote-file-protocol-for-windows.aspx

In Verbindung mit SMB2 und dessen spezifische Registrierungseinträge dürfte dieser Forumeintrag noch interessant sein: http://social.msdn.microsoft.com/Forums/en/os_fileservices/thread/832d395b-6e6f-4658-8dbb-120138a4cd7c

Da werden so tolle Dinge wie


==============================================================================
Registry values

All listed settings are in the following registry location:

Key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkStation\Parameters

Value type:    REG_*
Value name: <name of value>
Default:        <value if note present>

==============================================================================
Vista, 2008, …

Value type: REG_DWORD
Value name: AllowGuestAuthWhenSigningRequired
Default:    FALSE

Group Policy settings are not applied on member computers that are running Windows Server 2008 or Windows Vista SP1 when certain SMB signing policies are enabled
http://support.microsoft.com/kb/950876

When a Server Message Block (SMB) version 1 client establishes a non-guest session or a non-anonymous session with a server, the client enables security signatures for the server. Later sessions then inherit the security signature sequence that is already established.

To improve security, Windows Server 2008 and Windows Vista SP1 prevent server authenticated connections from being maliciously downgraded to a guest session or to an anonymous session. However, this improved security does not address the scenario that is described in the "Symptoms" section (Event ID: 1058).

==============================================================================
Vista, 2008, …

Value type: REG_DWORD
Value name: FileInfoCacheLifetime
Default:    10 (seconds)

Used for increasing network file system performance.
The caches are consistent when changes are made by the client, but if changes are made from another client, they may not be reflected until the cache times out.

==============================================================================
Vista, 2008, …

Value type: REG_DWORD
Value name: FileNotFoundCacheLifetime
Default:    5 (seconds)

Used for increasing network file system performance. The caches are consistent when changes are made by the client, but if changes are made from another client, they may not be reflected until the cache times out.

==============================================================================
Vista, 2008, …

Value type: REG_DWORD
Value name: DirectoryCacheLifetime
Default:    10 (seconds)

Used for increasing network file system performance. The caches are consistent when changes are made by the client, but if changes are made from another client, they may not be reflected until the cache times out.

==============================================================================
Vista, 2008, …

Value type: REG_DWORD
Value name: DisableBandwidthThrottling
Default:    FALSE

Performance Tuning Guidelines for Windows Server 2008.
http://go.microsoft.com/fwlink/?LinkId=121171

The default is 0. This setting is available starting with Windows Server 2008 SP2. By default, the SMB redirector throttles throughput across high-latency network connections in some cases to avoid network-related timeouts. Setting this registry value to 1 disables this throttling, enabling higher file transfer throughput over high-latency network connections.

beschrieben.

Generell haben alle möglichen Leute Probleme damit: http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/01ddd2c0-568d-457e-a229-8f51872610b0/

Dieser Hotfix http://support.microsoft.com/kb/2028965 ist im SP1 für Windows 7 und Server 2008 R2 enthalten. Die Frage ist nun aber bezüglich Windows Vista, welche Rolle er dort spielt?

16Bit Fibu lässt sich nach Umzug von NT4-Server auf SBS2011 nicht mehr starten

29 April 2011

Eigentlich keine große Sache, es sollte eine in sich geschlossene Fibu welche im Netz auf einem NT4-Server gespeichert war, umgezogen werden auf einen Small Business Server 2011. Bei der Fibu handelt es sich um die GDI-Fibu für Windows in einer älteren 16Bit Version. Eigentlich genügt es das Verzeichnis auf einen anderen Rechner zu schieben und es läuft.

Aus dieser Kenntnis heraus, war also mit keinen Problemen mit dem Programm bei der Serverumstellung zu rechnen. Aber weit gefehlt. Als das Verzeichnis N:\WINFIBUNEU beim neuen Server übernommen wurde, wurde das passende Netzlaufwerk N: bei der Verknüpfung eingerichtet und los konnte es gehen. Denkste.

Beim Aufruf der Verknüpfung gabs ne Fehlermeldung:

Fehler in 16Bit-Bit-Windows-Programm

Datei "N:\WinFibuNeu\fibu.exe” (oder Komponente) nicht gefunden. Überprüfen Sie, ob der Pfad- oder Dateiname korrekt sind und ob alle erforderlichen Bibliotheksdateien zur Verfügung stehen.

Hä was soll das? Das Verzeichnis kurz auf die lokale Platte gespielt und läuft. Also eine Abhängigkeit kann es nicht sein. Also zu wenig Rechte auf dem Netzlaufwerk? Nein, auch der Admin hat Probleme.

Zum Glück gibt es den Process Monitor von Sysinternals. Mit diesem wurde die ganze Sache mal aufgezeichnet, was im Hintergrund so alles passiert.

Siehe da, bei einem CreateFile-Aufruf sollte das Verzeichnis N:\WinFibuN geöffnet werden aber als Result steht “NAME NOT FOUND”. Ist ja logisch, denn das Verzeichnis heißt ja auch N:\WinFibuNeu!

Aber was ist der Grund? Na klar, die guten alten 16Bit Programme können halt nix mit den langen Dateinamen anfangen. Also braucht es den Kurznamen in 8.3 Notation. Ja aber beim NT4-Server gabs doch auch keine Probleme! Richtig, der war aber auch 32Bit und der SBS2011 ist 64Bit und da ist 8.3 Notation ausgeschaltet!

Wer es nicht glaubt ein kleines

fsutil behavior query C:

auf dem Serverlaufwerk liefert den Beweis.

Und die Moral von der Geschicht? 16- und 64Bit vertragen sich nicht!

Okay wenn man das Problem kennt, dann kann man auch hergehen und den Verzeichnisnamen auf 8 Zeichen kürzen, dann klappt wieder alles. Also aus N:\WinFibuNeu wurde N:\WinFibuN. Das wars.

GPT-Boot-Datenträger mit Diskpart einrichten

16 Februar 2011

MBR und 16bit ade, jetzt schlägt die Stunde von 64bit und UEFI. Es gibt noch nicht viele Informationen über GPT-Datenträger zum momentanen Zeitpunkt. Man muss sich noch alle möglichen Infos aus allen Ecken zusammentragen. GPT steht übrigens für GUID Partition Table. MSR steht für Microsoft Reserved Partition und ESP für EFI System Partition.

Die wichtigsten Begriffe im Zusammenhang mit GPT, MSR und ESP werden hier geklärt: http://www.microsoft.com/whdc/device/storage/gpt_faq.mspx

Schema eines GPT-Datenträgers: http://www.microsoft.com/whdc/device/storage/gpt-on-x64.mspx

Nochmal eine schematische Darstellung von GPT-Datenträgern in Verbindung mit der Aufteilung der Partitionen: http://blogs.technet.com/b/askcore/archive/2010/10/08/gpt-in-windows.aspx

Aber eines ist sicher: GPT bringt viele Vorteile bei der Festplattenverwaltung und dass moderne Festplatten optimal angesprochen werden können (Thema Alignment). Dazu noch UEFI mit 64bit Code wo vorhandenen Speicher, der in der Regel im Überfluss da ist, nun auch optimal verwenden kann. Endlich lässt sich der Flaschenhals mit dem Ruhezustandsmodus entschärfen.

Trotz aller Vorteile ergeben sich noch ewig viele Fragen.

Als erste wäre dies: Wie erstellt man einen GPT-Datenträger unter Windows 7? Ganz einfach, mittels

CONVERT GPT

Allerdings darf davor keine Partition auf der Platte vorhanden sein, also löscht man diese mittels CLEAN.

GPT-Datenträger sind aber ganz anders aufgebaut und benötigen neben der eigentlichen Datenpartition gleichmal zwei zusätzliche Verwaltungspartitionen EFI-Systempartition und MSR.

Schön dargestellt und wie man diese einrichtet, stellt dieser Artikel dar: http://technet.microsoft.com/de-de/library/dd744301(v=WS.10).aspx

Tipp: Achso, GPT mag Vorteile bringen und gibt es schon relativ lange, allerdings werden die Kinderkrankheiten in Verbindung mit UEFI Bootvorgängen erst gerade ausgemerzt. Man sollte also nach Möglichkeit sein 64bit Windows 7 mit der GPT-Bootpartition erst einrichten, wenn man ein Windows 7 mit integriertem Service Pack 1 Installationsdatenträger hat.

Beispiel: http://support.microsoft.com/kb/975535/ 
und http://support.microsoft.com/kb/979374

Weitere Probleme: VHD-Boot ist nicht möglich: http://www.delltechcenter.com/page/uEFI+Boot+to+VHD oder mögliche Probleme mit Hyper-V: http://www.mcseboard.de/virtualisierung-82/windows-server-backup-efi-maschine-hyper-v-nutzen-167416.html

Wird alles noch richtig spaßig!

WPF Anwendung kann aus 16bit Umgebung heraus nicht gestartet werden

7 Januar 2010

Wenn man per eine 16bit Umgebung ausführt bzw. command.com direkt ausführt und dann aus dieser Umgebung heraus versucht eine WPF Anwendung zu starten, der bekommt einen AppCrash serviert.

Die Lösung des Problems in der 16bit Umgebung

set windir=C:\Windows

zu setzen, danach konnte die WPF Anwendung gestartet werden. Hintergrund dürfte die Suche nach den im System verfügbaren Zeichensätzen gewesen sein. Da windir nicht bekannt war, wurde c:\windows\fonts nicht gefunden.

Wenn man windir nicht per Commandline direkt setzen kann, dann muss die Zuordnung innerhalb der AUTOEXEC.NT erfolgen!

Schriftarten für Eingabeaufforderung erweitern

20 März 2009

Selbst in Windows 7 finden sich nur die Standardschriftarten Lucida Console und der Rasterschriftfont mit einer sehr begrenzten Auswahl an Größen.

Gerade bei den heutigen vielfältigen Möglichkeiten welche Auflösung ein Monitor unterstützt, reichen die Standardfonts nicht immer aus um den Platz optimal zu nutzen.

Bei den Rasterschriftarten ist bei 10×18 Pixeln Schluss, eine Erweiterung hatte ich schon Mal hier beschrieben: http://newyear2006.wordpress.com/2006/09/18/hilfreiche-utilities-fur-16bit-dos-programme-unter-vistaxp2000nt/

Nun gibt es seit Windows Vista und Office 2007 neue Fonts, unter anderem Consolas:
http://www.microsoft.com/typography/ctfonts/ConsolasPoster.xps

Diese Schrift lässt sich ganz einfach mittels einer Registryänderung einbinden:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 00 /d Consolas

Würde man weitere Fonts hinzufügen z. B. Courier New:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont" /v 000 /d "Courier New"

Wichtig: Nach dieser Änderung muss man den Rechner neu starten, damit die Änderung auch dauerhaft zur Verfügung steht.

Basierend auf: http://phatness.com/node/1643

16bit Subsystem für Windows Vista PE

6 März 2009

Coole Sache mithilfe dieses Scripts kann man sich ein MS-DOS bzw. 16 bit Subsystem unter Windows PE einrichten.

Aus dem Script ergeben sich alle nötigen Dateien und Registrierungseinträge.

http://www.boot-land.net/forums/index.php?act=attach&type=post&id=5844

Echo,"Copying Files..."
If,NotExistDir,%TargetDir%\Windows,DirMake,%TargetDir%\Windows
FileCopy,%ScriptDir%\i386\_default.pif,%TargetDir%\Windows
FileCopy,%ScriptDir%\i386\kb16.com,%TargetDir%\Windows
FileCopy,%ScriptDir%\i386\system.ini,%TargetDir%\Windows
FileCopy,%ScriptDir%\i386\win.ini,%TargetDir%\Windows
If,NotExistDir,%TargetDir%\Windows\System,DirMake,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\avicap.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\avifile.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\commdlg.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\keyboard.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\lzexpand.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\mciavi.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\mciseq.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\mciwave.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\mmsystem.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\mouse.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\msvideo.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\olecli.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\olesvr.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\shell.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\stdole.tlb,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\system.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\tapi.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\timer.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\vcdex.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\ver.dll,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\vga.drv,%TargetDir%\Windows\System
FileCopy,%ScriptDir%\i386\System\wfwnet.drv,%TargetDir%\Windows\System32
If,NotExistDir,%TargetDir%\Windows\System32,DirMake,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ansi.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\autoexec.nt,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\avicap32.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\avifile.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\command.com,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\commdlg.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\compobj.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\config.nt,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\country.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\crtdll.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ctl3dv2.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ddeml.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\dosx.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ega.cpi,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\gdi.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\himem.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\kb16.com,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\keyboard.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\keyboard.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\krnl386.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\lanman.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\MAPI.DLL,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\mciavi.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\mciseq.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\mciwave.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\mmsystem.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\mouse.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\msacm.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\mscdexnt.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\msvideo.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\netapi.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntdos.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntdos404.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntdos411.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntdos412.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntdos804.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntio.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntio404.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntio411.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntio412.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntio804.sys,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntvdm.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ntvdmd.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ole2.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ole2disp.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\ole2nls.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\olecli.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\olesvr.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\pmspl.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\progman.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\Rasapi16.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\redir.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\rtutils.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\sfc.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\sfc_os.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\shell.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\sound.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\storage.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\system.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\timer.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\toolhelp.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\typelib.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\user.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\vcdex.dll,%TargetDir%\Windows\System32l
FileCopy,%ScriptDir%\i386\System32\ver.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\vga.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\wfwnet.drv,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\win87em.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\winoldap.mod,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\winspool.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\wow32.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\wowdeb.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\wowexec.exe,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\wowfax.dll,%TargetDir%\Windows\System32
FileCopy,%ScriptDir%\i386\System32\wowfaxui.dll,%TargetDir%\Windows\System32
Echo,"Writing new values on registry hive.."
Hive_Load,HKLM
reg_add,0x2,"%reg%\ControlSet001\Control\WOW","cmdline","%SystemRoot%\system32\ntvdm.exe"
reg_add,0x1,"%reg%\ControlSet001\Control\WOW","DefaultSeparateVDM","no"
reg_add,0x1,"%reg%\ControlSet001\Control\WOW","LPT_timeout","15"
reg_add,0x1,"%reg%\ControlSet001\Control\WOW","size","0"
reg_add,0x1,"%reg%\ControlSet001\Control\WOW","wowsize","16"
reg_add,0x2,"%reg%\ControlSet001\Control\WOW","wowcmdline","%SystemRoot%\system32\ntvdm.exe -a %SystemRoot%\system32\krnl386"
reg_add,0x1,"%reg%\ControlSet001\Control\WOW","KnownDLLs","comm.drv commdlg.dll ctl3dv2.dll ddeml.dll keyboard.drv lanman.drv mmsystem.dll mouse.drv netapi.dll olecli.dll olesvr.dll pmspl.dll shell.dll sound.drv system.drv toolhelp.dll vga.drv wfwnet.drv win87em.dll winoldap.mod winsock.dll winspool.exe wowdeb.exe timer.drv rasapi16.dll compobj.dll storage.dll ole2.dll ole2disp.dll ole2nls.dll typelib.dll msvideo.dll avifile.dll msacm.dll mciavi.drv mciseq.drv mciwave.drv progman.exe avicap.dll mapi.dll command.com kb16.com rtutils.dll sfc.dll sfc_os.dll"
reg_add,0x4,"%reg%\ControlSet001\Control\WOW","SharedWowTimeout","0x00000e10"
reg_add,0x3,"%reg%\ControlSet001\Control\WOW","RomFontPointers","b0,52,00,c0,b0,4a,00,c0,b0,4e,00,c0,b0,60,00,c0,c0,60,00,c0,c0,70,00,c0"
reg_add,0x1,"%reg%\ControlSet001\Control\Session Manager\Environment","PATHEXT",".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH"
reg_add,0x7,"%reg%\ControlSet001\Control\VirtualDeviceDrivers","VDD",""
Hive_Unload,HKLM

Problem mit Parametern bei 16bit Programmen unter Windows Vista

11 Dezember 2007

Ein Problem mit der Parameterübergabe beim Aufruf von 16bit Programmen wird im KB-Artikel
http://support.microsoft.com/kb/933662/en-us
beschrieben. Behoben wird das Problem mit dem kommenden SP1 für Windows Vista.

Vielleicht wirkt sich der SP1 auch auf das vor einem Jahr beschriebene Phänomen mit Batchdateien aus:
http://newyear2006.wordpress.com/2006/12/08/probleme-mit-16bit-batchdateien-und-netzlaufwerken-unter-windows-vista/


Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.