Mittwoch, 30. Mai 2007

HOWTO_ Vorlage mit OpenOffice.org Impress erstellen

Nachdem ich mehrmals beim Erstellen einer eigenen Präsentationsvorlage mit Impress gescheitert bin oder am Ende auf eine fertige Vorlage mit vorsichtigen Änderungen zurückgreifen musste, stelle ich jetzt eine schnelle Anleitung ins Netz. Etliche Bugs machen einem zusätzlich zur wenig intuitiven und dazu faktisch nicht dokumentierten Vorlagenerstellung das Leben schwer.


1. Leere Präsentation erstellen

Unbedingt muss im ersten Schritt mit einer ganz leeren Präsentation begonnen werden. Dazu im Präsentations-Assistenten "Leere Präsentation" auswählen und auf "Fertig stellen" klicken. Das Layout muss auf "Leere Folie" gesetzt werden.

Achtung: Voreilige Einstellungen in der Vorlage können diese unbrauchbar machen - ein Rückgängigmachen ist oftmals nicht möglich! Daher zusätzlich jetzt noch eine zweite, neue Präsentation erstellen. In dieser wird mit dem neuen Design ausgiebig experimentiert, bevor es endgültig in die Vorlage übernommen wird.


2. Masterseiten anlegen

Über "Ansicht" > "Master" > "Folienmaster" wechselt man in die Masteransicht. Hier werden die eigentlichen Folienvorlagen bearbeitet. Im Folienfenster wird eine Standardfolie angezeigt, dies ist die primäre Masterfolie. Es können mehrere Master erstellt und innerhalb einer Präsentation verwendet werden. Meist reichen zwei, ein Titel- und ein Standardmaster.

Anschließend wird die Masteransicht geschlossen (In der Master-Symbolleiste oder über "Ansicht" > "Normal"), und für jeden Master eine leere Folie erstellt. Jede Folie mit rechts anklicken, "Foliendesign" wählen und den entsprechenden Master wählen. Die erste Folien bekommt den ersten Master, die zweite Folie den zweiten etc.

Achtung: Masterfolien können nicht umsortiert werden! Die spätere Verwendung innerhalb einer Präsentation ist zwar beliebig, aber eine vernünftige Reihenfolge bei der späteren Auswahl ist doch ganz nett - nicht dass der Titelmaster am Ende auftaucht!

Achtung: Die Folien können frei benannt werden, es dürfen jedoch keine Leerzeichen oder Underscores "_" verwendet werden! Alles, was dahinter folgt, wird nach Speicherung und erneutem Öffnen gelöscht, aus "Vorlage 1" und "Vorlage 2" ergibt sich für beide Master "Vorlage" - dadurch kann nur noch der erste ausgewählt werden. Auch bei der Umbenennung werden nur noch beide gleichzeitig umbenannt.

Achtung: Es muss für jeden Master eine Folie existieren! Andernfalls lassen sich die Vorlagen der entsprechenden Masterseiten nicht verändern, und zudem werden die nicht verwendeten Master beim Speichern und Schließen automatisch gelöscht!


3. Formatvorlagen anpassen

Formatvorlagen, genauer "Präsentationsobjektvorlagen", gelten immer für genau einen Master. Über "F11" oder "Format" > "Formatvorlagen" bekommt man das Formatvorlagenfenster.
Jeder Master wird ausgewählt, und dann werden alle relevanten Objektvorlagen angepasst. Verwendung finden eigentlich nur "Gliederung X", "Hintergrundobjekte" und "Titel". Wenn man bei einer Gliederungsvorlage im Reiter "Optionen"
die Ebene auf "1-9" auswählt, werden die Änderungen für alle 9 Gliederungsvorlagen gleichzeitig vorgenommen. Dies ist nützlich, um einheitliche Bullets oder Schriftart einzustellen.

Achtung: Weder im Master noch auf einer Folie darf zu diesem Zeitpunkt eine Änderung vorgenommen worden sein. Andernfalls kann oftmals ein Text nicht mehr umformatiert werden oder Änderungen an der Vorlage wirken sich nicht mehr aus!

Achtung: Wenn keine Folie für den ausgewählten Master existiert, verändert man in diesem Schritt die Objektvorlagen des letzten zuvor verwendeten Masters! Dies zeigt sich daran, dass Änderungen sich nicht auf den aktuellen Master auswirken.


4. Hintergrund anpassen

Für jeden Master kann jetzt der Hintergrund beliebig angepasst werden, etwa Kästchen und Linien ziehen, Bilder einfügen etc.
Die Bereiche für Titel, Datum etc. sind fest vorgegeben und lassen sich nicht löschen. Größenänderung und Position sind selbstverständlich möglich, Text- und Absatzformatierungen sollten im vorigen Schritt über die Vorlagen vorgenommen worden sein.

Besondere Formatierungen haben Fußzeilenbereich (Zentriert) und Foliennummernbereich (Rechtsbündig), dies lässt sich nur spezifisch einstellen. Ebenso die Textausrichtung in den Bereichen.
Dazu klickt man in den Bereich hinein, und markiert gegebenfalls den Text. Im Kontextmenü sollte nun "Text..." erscheinen. Im Reiter "Text" lässt sich dort die Textverankerung anpassen, gewünscht ist meist links oben.

Achtung: Ist eine Folie bei diesem Schritt nicht leer, so werden Formatierungsänderungen im Master nicht übernommen!



5. Feldbefehle anpassen

Feldbefehle sorgen für Datum, Nummerierung und Fußzeile. Welche dieser drei Bereiche angezeigt wird, lässt sich für jeden Master getrennt unter "Einfügen" > "Seitenzahl..." sowie "Einfügen" > "Datum und Uhrzeit..." einstellen. Beide Menüpunkte führen zum gleichen Dialog, der nicht etwa einfügt, sondern die Einstellungen ändert. Sollte also unter "Format" gehören.
Wie auch immer, im aufpoppenden Dialog "Kopf- und Fußzeile" kann man nun für den aktuellen Master einstellen, welche der drei Bereiche auf einer Folie auftauchen und mit welchem Wert. Das Format des Datums geht übrigens beim Speichern der Vorlage verloren. In jedem Fall müssen die Einstellungen mit "Übernehmen" gespeichert werden. Masterübergreifende Einstellungen können mit "Für alle übernehmen" gesetzt werden.



6. Folienlayout setzen

Nun kann die Masteransicht endgültig geschlossen werden. Jetzt kann für eine nette Vorbelegung der Folien gesorgt werden, gegebenenfalls können noch weitere eingefügt werden. Es muss aber darauf geachtet werden, dass jeder Master mindestens ein Mal Verwendung findet, da er sonst beim Speichern der Vorlage gelöscht wird! Jede Folie bekommt nun noch das passende Layout, der Titel etwa "Nur Titel".



7. Vorlage speichern

Jetzt ist die Vorlage fertig und kann als Präsentationsvorlage *.otp gespeichert werden. Wenn man sie gleich im eingestellten Vorlagenverzeichnis ablegt ("Extras" > "Optionen...", und dann unter "OpenOffice.org" > "Pfade" > "Dokumentvorlagen"), und zwar im Unterordner "Präsentationen", taucht diese Vorlage auch netterweise direkt im Präsentations-Assistenten auf.

Freitag, 25. Mai 2007

TECH_ Hardlinks auf Ordner unter Windows

Beim Entwickeln mit Tcl musste ich leider oft recht lange Pfad zu meinen Eigenen Dateien eintippern, sowas wie C:\Dokumente und Einstellungen\cypressor\Eigene Dateien\Projekte\P1\cvs\entwicklung\scripte\doSth.tcl.

Um das abzukürzen, wollte ich mir einfach unter C: einen Link auf das oft verwendete Verzeichnis machen, doch so einfach ist das gar nicht. Nach bisschen rumprobieren und lesen kam ich dahinter, dass dafür bei NTFS eine Technik namens "Reparse Points" existiert, die auch für das Mounten von Laufwerken in Verzeichnis verwendet wird. Darauf setzen dann "Junctions" auf, also symbolische Links auf ein Verzeichnis. Diese sind mit normalen Mitteln nicht von Standardordner zu unterscheiden, und mit den Boardmitteln von Windows 2000/XP auch nicht zu realisieren.

Von Sysinternals (jetzt Microsoft) gibt es aber das nette kleine Tool "Junctions", das genau dieses kann.

Siehe http://www.microsoft.com/technet/sysinternals/utilities/Junction.mspx

Donnerstag, 24. Mai 2007

TECH_ Retrieving OWB Object Properties using OWB Public Java API

As OMB*Plus has such a poor documentation, I had to find another way to look up the available properties for common OWB Metadata Objects like ORACLE_MODULES or TABLES. Some hours after starting to play with the OWB Public Java API (where "public" means "go and look for yourself to find a way to do your stuff and find out libraries"), I managed to receive some information.

Here is what I did:
RepositoryManager rman = RepositoryManager.getInstance();
rman.openConnection(
	"<user>",
	"<pass>"
	"<host>:<port><service>", 
	RepositoryManager.MULTIPLE_USER_MODE, 
	"<repository>");
		
ProjectManager pman = ProjectManager.getInstance();
pman.setWorkingProject("MY_PROJECT");
Project project = pman.getWorkingProject();
String[] keys = project.getPropertyKeys();
for (int i = 0; i < keys.length; i++) {
    System.out.println("project key " + i + ": " + keys[i]);
}
Using that keys within OMB*Plus in the following way, I could test which of these do actually work:
set props {
  <every property goes here, separated by spaces>
}
OMBCONNECT <user>/<pass>@<host>:<port>:<service>\
    USE REPOSITORY '<repository>'
foreach prop $props {
  if [catch {OMBRETRIEVE PROJECT 'MY_PROJECT' GET PROPERTIES($prop)} err] {
    puts "ERR $prop: $err"
  } else {
    puts "OK  $prop: $err"
  }
}
OMBDISCONNECT
The problem is that these properties can only be retrieved for objects, not classes. So you have to have at least one object of a class you want to check the attributes for.

I extracted some properties for basic objects and tested them. Green ones work, the red ones produced the error that I printed behind the property.

Oracle Module
ABAP_DIRECTORY                 abap\\
ABAP_EXTENSION                 .abap
ABAP_RUN_PARAMETER_FILE        _run.ini
ABAP_SPOOL_DIRECTORY           abap\\log\\
AGGREGATED_SIGNATURE           {2007-05-10 17:18:16.0}
APPLICATION_SHORT_NAME         WB
APPLY_FILTER                   false
ARCHIVE_DIRECTORY              archive\\
CAN_BE_HUB                     true
CAN_BE_SOURCE                  false
CAN_BE_WAREHOUSE               true
CLASS_NAME                     oracle.wh.repos.impl.application.CMPWBDataWarehouse
COMPLETED                      false
CREATED_BY                     owb_adm
CREATION_TIMESTAMP             {2007-05-10 17:18:15.0}
CUSTOMER_DELETABLE             true
CUSTOMER_EDITABLE              true
CUSTOMER_RENAMABLE             false
DATABASE_LINK                  {}
DB_LOCATION                    MY_ORACLE_TESTMODULE_LOCATION1
DDL_DIRECTORY                  ddl\\
DDL_EXTENSION                  .ddl
DDL_SPOOL_DIRECTORY            ddl\\log\\
DEFAULT_INDEX_TABLESPACE       {}
DEFAULT_OBJECT_TABLESPACE      {}
DEPLOYABLE                     true
DESCRIPTION                    {This is just a Testmodule,}
DISABLED                       false
EDITABLE                       true
ELEMENT_ID                     423318
END_OF_LINE                    {\r\n}
FROZEN                         false
GENERATED                      false
IMPORTED                       false
IMPORT_ADVANCED_QUEUE          false
IMPORT_EXTERNAL_TABLE          false
IMPORT_PL_SQL                  false
IMPORT_SEQUENCE                true
IMPORT_SYNONYM                 true
IMPORT_TABLE                   true
IMPORT_VIEW                    true
INPUT_DIRECTORY                input\\
INVALID_DIRECTORY              invalid\\
LIB_DIRECTORY                  lib\\
LIB_EXTENSION                  .lib
LIB_SPOOL_DIRECTORY            lib\\log\\
LOADER_DIRECTORY               ctl\\
LOADER_EXTENSION               .ctl
LOADER_RUN_PARAMETER_FILE      _run.ini
LOGICAL_NAME                   MY_ORACLE_TESTMODULE
LOG_DIRECTORY                  log\\
MAIN_APPLICATION_SHORT_NAME    ora
METADATA_DBLINK                {}
METADATA_IMPORTED              false
METADATA_SIGNATURE             1647406385ce407f27183d61ada225ab
NAME_FILTER                    {}
NOTE                           {}
NOTM                           4
PERSISTENT                     true
PHYSICAL_NAME                  MY_ORACLE_TESTMODULE
PLSQL_DIRECTORY                pls\\
PLSQL_EXTENSION                .pls
PLSQL_GENERATION_MODE          Oracle9i
PLSQL_RUN_PARAMETER_FILE       _run.ini
PLSQL_SPOOL_DIRECTORY          pls\\log\\
RECEIVE_DIRECTORY              receive\\
SCHEMA                         {}
SEEDED                         false
SORT_DIRECTORY                 sort\\
STATUS                         Development
STREAMS_ADMINISTRATOR_LOCATION {}
STRONG_TYPE_NAME               oracle.wh.repos.impl.application.CMPWBDataWarehouse
TCL_DIRECTORY                  tcl\\
TOP_DIRECTORY                  ..\\..\\codegen\\
TYPE_CODE                      DATABASE_DICTIONARY.
UOID                           1A70592A45B320F1E0440003BAF29218
UPDATED_BY                     owb_adm
UPDATE_TIMESTAMP               {2007-05-10 17:18:16.0}
VERSION                        {}
WORK_DIRECTORY                 work\\
ACLCONTAINER                   OMB01719: Non-primitive property ACLCONTAINER not supported.
CHANGE_LOGS                    OMB01719: Non-primitive property CHANGE_LOGS not supported.
CUBES                          OMB00001: Encountered CUBES at line: 1, column: 60. Was expecting one of: <UNQUOTED_STRING> ...    .
DAES                           OMB01719: Non-primitive property DAES not supported.
DATA_SOURCE_INFO               OMB01719: Non-primitive property DATA_SOURCE_INFO not supported.
DEPENDENCIES                   OMB01719: Non-primitive property DEPENDENCIES not supported.
DEPENDENTS                     OMB00001: Encountered DEPENDENTS at line: 1, column: 60. Was expecting one of: <UNQUOTED_STRING> ...    .
DERIVATION_SCHEMA              OMB01719: Non-primitive property DERIVATION_SCHEMA not supported.
DERIVATION_SETS                OMB01719: Non-primitive property DERIVATION_SETS not supported.
DERIVED_FCOS                   OMB01719: Non-primitive property DERIVED_FCOS not supported.
DIMENSIONS                     OMB00001: Encountered DIMENSIONS at line: 1, column: 60. Was expecting one of: <UNQUOTED_STRING> ...    .
FUNCTION_CATEGORIES            OMB01719: Non-primitive property FUNCTION_CATEGORIES not supported.
ICON_OBJECT                    OMB01719: Non-primitive property ICON_OBJECT not supported.
LOCATION_USAGES                OMB01719: Non-primitive property LOCATION_USAGES not supported.
LOGICAL                        OMB00001: Encountered LOGICAL at line: 1, column: 60. Was expectingone of: <UNQUOTED_STRING> ...    .
MAPS                           OMB01719: Non-primitive property MAPS not supported.
NAME                           OMB00001: Encountered NAME at line: 1, column: 60. Was expecting one of <UNQUOTED_STRING> ...    .
OWNED_CLUSTERS                 OMB01719: Non-primitive property OWNED_CLUSTERS not supported.
OWNED_COLLECTIONS              OMB01719: Non-primitive property OWNED_COLLECTIONS not supported.
OWNED_COMPONENTS               OMB01719: Non-primitive property OWNED_COMPONENTS not supported.
OWNED_CONFIGS                  OMB01719: Non-primitive property OWNED_CONFIGS not supported.
OWNED_WEAK_FIRST_CLASS_OBJECTS OMB01719: Non-primitive property OWNED_WEAK_FIRST_CLASS_OBJECTS not supported.
OWNED_WEAK_SECOND_CLASS_OBJECTSOMB01719: Non-primitive property OWNED_WEAK_SECOND_CLASS_OBJECTS not supported.
OWNING_FOLDER                  OMB01719: Non-primitive property OWNING_FOLDER not supported.
OWNING_PROJECT                 OMB01719: Non-primitive property OWNING_PROJECT not supported.
PROJECT                        OMB00001: Encountered PROJECT at line: 1, column: 60. Was expecting one of: <UNQUOTED_STRING> ...    .
PROPERTIES                     OMB00001: Encountered PROPERTIES at line: 1, column: 60. Was expecting one of: <UNQUOTED_STRING> ...    .
REFERENCING_SHORTCUTS          OMB01719: Non-primitive property REFERENCING_SHORTCUTS not supported.
SECOND_CLASS_OBJECTS           OMB00001: Encountered SECOND_CLASS_OBJECTS at line: 1,column: 60. Was expecting one of: <UNQUOTED_STRING> ...    .
SOFTWARE_MODULE_VERSION        OMB01719: Non-primitive property SOFTWARE_MODULE_VERSION not supported.
SOFTWARE_MOD_VERSION           OMB01719: Non-primitive property SOFTWARE_MOD_VERSION not supported.
TASK_FLOWS                     OMB01719: Non-primitive property TASK_FLOWS not supported.
TRANSLATION                    OMB01719: Non-primitive property TRANSLATION not supported.
TRIGGER_TASK_FLOW_SETS         OMB01719: Non-primitive property TRIGGER_TASK_FLOW_SETS not supported.
VALIDATION_RESULT              OMB00001: Encountered VALIDATION_RESULT at line: 1, column: 60. Was expecting one of: <UNQUOTED_STRING> ...    .
WEAK_ASSOCIATIONS              OMB01719: Non-primitive property WEAK_ASSOCIATIONS not supported.
As you can see, there seems to be some kind of "non-primitive" property that cannot be retrieved using OMB*Plus. Additionally , some properties are not implemented in the OMP*Plus command parser (the UNQUOTED_STRING expectation...)

Oracle Database Location
AGGREGATED_SIGNATURE         {2007-08-06 09:15:04.0}
CLASS_NAME                   oracle.wh.repos.impl.environment.CMPLogicalLocation
COMPLETED                    false
CONNECT_AS_USER              DBA
CREATED_BY                   owb_adm
CREATION_TIMESTAMP           {2007-08-06 09:15:00.0}
CUSTOMER_DELETABLE           false
CUSTOMER_EDITABLE            true
CUSTOMER_RENAMABLE           true
DATABASE_NAME                {}
DATA_SOURCE_FLAG             false
DATA_TARGET_FLAG             false
DESCRIPTION                  {Test-Datenbank-Locator}
DISABLED                     false
EDITABLE                     true
ELEMENT_ID                   742200
FROZEN                       false
FROZEN_FLAG                  false
GENERATED                    false
HOST                         192.168.1.100
IMPORTED                     false
LOC_DEFAULT_FLAG             false
LOC_TYPE                     {Oracle Database}
LOC_TYPE_VERSION             10.2
LOGICAL_NAME                 MY_ORACLE_TESTMODULE_LOCATION1
METADATA_SIGNATURE           b46992004dc293c2602f65bafe4c2b87
NAME                         MY_ORACLE_TESTMODULE_LOCATION1
NET_SERVICE_NAME             {}
NOTE                         {}
NOTM                         4
PASSWORD                     {}
PERSISTENT                   true
PHYSICAL_NAME                MY_ORACLE_TESTMODULE_LOCATION1
PORT                         1521
REGISTERED                   true
SCHEMA                       DBA
SEEDED                       false
SERVICE_NAME                 orahost
STRONG_TYPE_NAME             oracle.wh.repos.impl.environment.CMPOracleDatabaseLocation
UOID                         3703A24D3A86218FE0440003BAF29218
UPDATED_BY                   owb_adm
UPDATE_TIMESTAMP             {2007-08-23 16:50:41.0}
VERSION                      10.2
VERSION                      10.2
ACLCONTAINER                   Not a primitive property:ACLCONTAINER
DEFAULT_OWNING_USER            Not a primitive property:DEFAULT_OWNING_USER
DEPENDENCIES                   Not a primitive property:DEPENDENCIES
DEPENDENTS                     Not a primitive property:DEPENDENTS
EXTERNAL_TABLES                Not a primitive property:EXTERNAL_TABLES
ICON_OBJECT                    Not a primitive property:ICON_OBJECT
INTEGRATOR_MAP                 Not a primitive property:INTEGRATOR_MAP
LOCATION_USAGES                Not a primitive property:LOCATION_USAGES
OWNED_COMPONENTS               Not a primitive property:OWNED_COMPONENTS
OWNED_CONNECTORS               Not a primitive property:OWNED_CONNECTORS
OWNED_WEAK_FIRST_CLASS_OBJECTS Not a primitive property:OWNED_WEAK_FIRST_CLASS_OBJECTS
OWNED_WEAK_SECOND_CLASS_OBJECTSNot a primitive property:OWNED_WEAK_SECOND_CLASS_OBJECTS
OWNING_FOLDER                  Not a primitive property:OWNING_FOLDER
OWNING_PROJECT                 Not a primitive property:OWNING_PROJECT
PROPERTIES                     Not a primitive property:PROPERTIES
REFERENCING_CONNECTOR          Not a primitive property:REFERENCING_CONNECTOR
REFERENCING_SHORTCUTS          Not a primitive property:REFERENCING_SHORTCUTS
SECOND_CLASS_OBJECTS           Not a primitive property:SECOND_CLASS_OBJECTS
SOFTWARE_MOD_VERSION           Not a primitive property:SOFTWARE_MOD_VERSION
TRANSLATION                    Not a primitive property:TRANSLATION
TRIGGER_TASK_FLOW_SETS         Not a primitive property:TRIGGER_TASK_FLOW_SETS
VALIDATION_RESULT              Not a primitive property:VALIDATION_RESULT
WEAK_ASSOCIATIONS              Not a primitive property:WEAK_ASSOCIATIONS

Sonntag, 25. März 2007

HOWTO_ Swap Motherboard under Windows

Taken from http://episteme.arstechnica.com/groupee/forums/a/tpc/f/77909774/m/1400925745/p/1


I've seen a few of these recently. "Help me! How do I swap out a board and not have to reinstall Windows?"

So here's your illustrated (Screenshots taken in WindowsXP) answer.

The first thing to do is ensure Windows is in a state where it can work on the new system. In the case of 2000 and XP, this just means that it has to be able to access the hard drives.

To do this, replace the Bus Master drivers with standard generic drivers, as seen below. The drivers you need to be working on are found in Device Manager under "IDE ATA/ATAPI controllers". Ignore the Primary and Secondary, go for the other one. nForce users will only see one entry per controller.



If you're changing chipset (think in terms of drivers - Drivers for the VIA KT133 work fine with a KT400, but drivers for i815 won't work at all with an AMD760MPX), then you'll want to knock out the AGP drivers too to avoid video problems after the switch. Either uninstall them from the Control Panel, Add/Remove Programs or, in the case of VIA's 4in1, from the driver installation program. If you have neither (ie. SiS, ALi) or just can't be bothered, then observe the illustration below.



The standard PCI to PCI bridge disables everything AGP, but also makes sure that old AGP drivers aren't around to screw your system up.

You should be good to go now, but it's worth it to do some more cleaning up. Remove both USB controllers (don't do this if you have a USB keyboard/mouse, duh) and uninstall your display drivers. Also uninstall any other non-critical drivers from the Add/Remove Programs in the Control Panel, or any other option your driver installer has. They'll need to be reinstalled anyway, since Windows has to reinstall devices if they change INT# lines and they will.

Finished all that rebooting? You're half way there.

Do your build and power it up. Windows will boot up and complain about drivers. Don't install any of them, just cancel every time. It'll do some automatically, these are probably the ones you don't have any drivers for anyway and you're quite happy to let Windows use the internal drivers.

Open a command line (Start>Run>cmd.exe) and take a look below...



With the devmgr_show_nonpresent_devices set to 1, and "Show Hidden Devices" enabled, you can see the trash left from your previous machine. Notice also the BDA deframers and filters and, off the bottom of the window, some Microsoft filters. Don't get rid of the filters, just the actual hardware that used to be in your system (or still is, you're reinstalling all the drivers). Just kill anything that's ghosted and not something you shouldn't kill like the filters and deframers mentioned above. You may be surprised by how much crap you find. Don't touch anything under Non-PnP Drivers or anything you recognise as a USB device. USB devices are 'reinstalled' on a per-root basis, as their location has changed, so you may see many duplicates, which is normal.

Next, let's get going. Install your chipset drivers first. Then the display drivers. It sucks to work in 640x480x16, doesn't it? Now go nuts. Install the drivers for everything and we're done. Remember to reboot every time you're prompted. Nothing screws up a driver install worse than the drivers not knowing what they need to know about the system. We now have a clean system that doesn't even know you've changed the board.

I've done some really drastic changes like this. In one, I just tore the HD out of the machine (An old PPro200 and slapped it in a Duron).


FAQ

What happens if I don't do the IDE drivers step? One of two things. 1. The system will give INACCESSIBLE_BOOT_DEVICE and won't even boot up. 2. It'll work if you're upgrading between compatible chipsets (ie. i845 to i850 or KT133A to KT333)

What happens if I don't clean up in Device Manager? You end up with a whole heap of ghost devices. These can cause problems if you install compatible hardware later on. For example, if I didn't clean out those Crystal CX4624 drivers and I then installed a Santa Cruz (CX4630), I'd have hell trying to get Turtle Beach's drivers on there.

What about the other branded drivers in System (Device Manager)? You'd worry about these in 98, ASD would kick in probably. 2k and XP are smart enough to replace them with the right ones. The old ones are removed during the clean up phase of this procedure.

Do I need to change the PC Type (ie. ACPI Uniproc to Standard PC)? You can change freely between ACPI types, but not from ACPI to Standard or back again. So you can go from ACPI Uniproc to ACPI Multiproc (even on a uniproc system) and expect no problems.

Can I do something like this to move my HD from an onboard controller to a RAID or PCI controller, or vice versa? No. The onboard controller has a standard 'location' where standard drivers will always be able to work with it. PCI and RAID controllers have no such standard, you'll just get INACCESSIBLE_BOOT_DEVICE. You may also get this error if your boot drive is on a PCI controller and you change the slot it's in. This can be worked around on systems with APICs by changing the INT# mapping to match the old INT# to the new location. Other systems can't do this.

I just swapped as-is between incompatible chipsets and it all worked! Lucky you. You probably didn't have busmaster ATA drivers installed, or you were using a chipset that Windows has full drivers for.

What is the tech explanation behind all this? Windows enumerates all devices on boot. DriverGuru explained this on page two of the thread, so I won't repeat it. However, it doesn't remap where the boot drive is if it has changed location or changed controller hardware. If the driver it used last time won't work this time, you get a 0x7B. The standard driver will work every time, where every is as far as we're discussing the standard ATA controller. Those who boot from SATA or SCSI are on their own. In terms of AGP, different manufacturers' implementations vary. Some use helper services, which must be removed. Uninstalling the drivers sometimes removes them, but always deactivates them. Same with video cards, all major vendors use helper services which must be removed. Thankfully, NVIDIA and ATI have uninstallation programs (Add/Remove Programs) which do a thorough job.

What is a 'helper service'? It's something that works in tandem with a device driver. Sometimes they're session drivers (DScaler, Sandra and many other programs which need hardware access use session drivers) and other times they're just normal services running as LOCAL SYSTEM. ATI and NVIDIA use helper services for HYDRAVISION and nView, respectively.

I want to clean up my system, where do I find old services that old drivers may have installed? HKLM>SYSTEM>CurrentControlSet>Services Device drivers are just a special case of a system service under Windows. You can safely delete the entire key for services you no longer have the hardware for, and which aren't removed by the uninstallation of the associated driver. Common culprits are viaagp1 and nv4disp, though they're harmless anyway.

You're a moron! It didn't work! It should work on any 2k or XP system, regardless of hardware. First off, you probably made a mistake somewhere. If that's not the case (are you sure?), then a driver probably hasn't been uninstalled correctly.


H@

TECH_ Media Player Classic (MPC) als Default-Medienplayer

Leider gibt es keine Möglichkeit, den Media Player Classic richtig bequem als Standardplayer einzustellen, und den lahmen, nach Hause telefonierenden Windows Media Player auszuschalten.

Mit ein bisschen Registryarbeit kriegt man aber was hin. Bin mir aber nicht 100%ig sicher, dass es funktioniert, weil ich zuvor schon per Hand die ganzen Dateitypen von Videos umgebogen habe. Also es funktioniert in so fern, dass keine Fehlermeldung kommt, aber ob dann die Dateien wirklich geöffnet werden bzw auch die Symbole stimmen...

Seit Windows 2000 SP3 und Windows XP SP1 gibt es in der Systemsteuerung unter Software den Punkt Programmzugriff und -standards festlegen. In einem englischen Windows gibt's das als Set program access and defaults unter Control Panel/Add or Remove Programs.
Microsoft erklärt die notwendigen Registrykeys und Werte unter http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_adv/registeringapps.asp.

Wichtig (und notwendig) ist hier offenbar nur der Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\Media Player Classic\InstallInfo, wobei Media Player Classic frei zu wählen ist (sollte aber eindeutig sein):
ReinstallCommand="C:\Program Files\Media Player Classic\mplayerc.exe" /regvid /regaud
HideIconsCommand="C:\Program Files\Media Player Classic\mplayerc.exe"
ShowIconsCommand="C:\Program Files\Media Player Classic\mplayerc.exe"
IconsVisible=0

Für die Zuordnung wichtig ist hier nur der erste Wert ReinstallCommand, ein String, der praktisch das "Setup" neu durchführt, beim MPC also die Video- und Audioformate registriert. Diese müssen natürlich zuvor manuell im Programm eingestellt werden, dabei werden Schreibrechte auf die Datei mplayerc.ini im MPC-Verzeichnis benötigt.

Die beiden Strings ShowIconsCommand und HideIconsCommand sowie der DWORD IconsVisible sind für die sichtbaren Verknüpfungen in Startmenü, Schnellstartleiste und Desktop da. Sie haben nichts mit den Dateitypen zu tun! ShowIconsCommand soll die Applikation veranlassen, die Verknüpfungen zu erstellen, dementsprechend entfernt HideIconsCommand diese wieder; der aktuelle Status wird in IconsVisible gespeichert.

Jetzt noch ein bisschen Drumherum. Der Defaultkey unter HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\Media Player Classic speichert den Namen, der in der Systemsteuerung angezeigt wird. Das Standardsymbol HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\Media Player Classic\DefaultIcon sowie das Shellkommando HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\Media Player Classic\shell\open\command sind offenbar nur für Browser und Mailprogramme unter Windows XP gedacht und sorgen im nicht-klassischen Startmenü dafür, dass dort das eingestellte Standardprogramm für E-Mails und Web auftaucht. Für den Mediaplayer ist dies wohl irrelevant.

Hier noch mal die Struktur im Ganzen:
HKEY_LOCAL_MACHINE
    SOFTWARE
        Clients
            Media
                Media Player Classic
                    (Default)=Media Player Classic
                    DefaultIcon
                        (Default)=C:\Program Files\Media Player Classic\mplayerc.exe,0
                    InstallInfo
                        ReinstallCommand="C:\Program Files\Media Player Classic\mplayerc.exe" /regvid /regaud
                        HideIconsCommand="C:\Program Files\Media Player Classic\mplayerc.exe"
                        ShowIconsCommand="C:\Program Files\Media Player Classic\mplayerc.exe"
                        IconsVisible=0
                    shell
                        open
                            command
                                (Default)=C:\Program Files\Media Player Classic\mplayerc.exe
Diese Einstellungen als Registrydatei herunterladen: mpc_mediadefaults-reg (reg, 2 KB)

Freitag, 23. März 2007

TECH_ Windows Taschenrechner speichert Einstellungen nicht

Wenn man als normaler Benutzer arbeitet, speichert der Windows Taschenrechner (C:\WINDOWS\calc.exe) die Einstellungen nicht. Dazu gehört zB das Umstellen des Layouts auf "wissenschaftlich" oder die Gruppierung von Zahlen.

Der Grund: Die Einstellungen legt calc.exe global unter C:\WINDOWS\win.ini, worauf natürlich nur der Administrator Schreibrechte hat. Die Einstellungen landen im Bereich [SciCalc]. Auf wissenschaftliche Ansicht wird mit layout=0 umgestellt, UseSep=1 stellt die Zifferngruppierung an. Gesamt sieht das dann so aus:
[SciCalc]
layout=0
UseSep=1

Samstag, 17. März 2007

TECH_ Windows Explorer mit Arbeitsplatz angezeigt öffnen

Um den Windows Explorer über eine Verknüpfung zu öffnen, und den Arbeitsplatz anzuzeigen, muss man folgenden Befehl verwenden:
explorer.exe ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}, /e

Dies kann auch verwendet zu werden, um den Explorer mit anderen Rechten zu starten:
C:\WINDOWS\system32\runas.exe /user:Administrator "explorer.exe ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}, /e"

via Forum autohotkey

Mittwoch, 28. Februar 2007

TECH_ Making links clickable in SIM-IM under OS X

If you are running SIM-IM under Mac OS X, links are not clickable - or they are in fact hyperlinks, but they cannot be executed.

Go into Setup and choose the Plugin "Navigate". Enable it, and enter the command open /Applications/Camino.app into the "Browser" field. Of course you can use any other installed application than Camino, like Safari, Opera or Firefox.

Do likewise for the "Mailer", I use open /Applications/Thunderbird.app mailto:%s.

TECH_ Starting OS X Application bundles from Terminal

To start any Application bundle from Terminal, type
#> open /Applications/MyApp.app

Freitag, 12. Januar 2007

TECH_ World currency codes

Maybe someone does need them. Maybe I need them another time. Here is the list of the world currency codes according to ISO 4217.

This is a comma separated list including country, currency name and both alphabetic and numeric currency codes.

currencycodes (txt, 9 KB)

currency (xsd, 2 KB)
currencies (xml, 51 KB)

Reflog

Informationstechnische Howtos, Hinweise und Merkwürdiges

Batchlib v1.0 2008-03-29

Aktuelle Beiträge

HOWTO_ O2 DSL Surf &...
Der O2 DSL Surf & Phone-Router ist für die alleinige...
cypressor - 12. Feb, 19:57
Uptweak Windows XP Home...
There are a lot of annoying limitations in Windows...
cypressor - 9. Okt, 19:30
BATCHLIB_ Batchlib package...
Download Batchlib package v1.0 (5 KB zip file) What...
cypressor - 29. Mär, 19:10
BATCHLIB_ Batchlib library...
The batchlib library string.cmd is part of the batchlib...
cypressor - 29. Mär, 18:10

Homepage Ticker

Links

Status

Online seit 6583 Tagen
Zuletzt aktualisiert: 28. Jun, 11:32
RSS XML 1.0 Button-Get-Firefox

batch
batchlib
howto
tech
video
Profil
Abmelden
Weblog abonnieren