windows registry öffnen und auf Einträge überprüfen!?
    
Thomas
    
    
      
    
  - perl
 
Hi,
also ich hab schon jede menge verucht, aber leider bin ich halt noch ein Perl Newbie.
Was ich versuch zu schreiben ist folgendes:
Perl liest aus eine data.txt windows registry Einträge aus(
zB: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OutlookExpress\UninstallString)
und soll diese nun in der registry von windows überprüfen ob diese vorhanden sind.
Je nach dem ob sie da sind oder nicht soll er in eine results.txt reinschreiben
"Eintrag HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\OutlookExpress\UninstallString is vorhanden."
...
Hoffe es kann mir jemand helfen!
Danke schon mal im Voraus.
Hi,
also ich hab schon jede menge verucht, aber leider bin ich halt noch ein Perl Newbie.
wenn Du ein komplexes Problem lösen willst, solltest Du zuerst bei http://www.cpan.org/ nachsehen, ob es dafür ein geeignetes Modul gibt. Falls es bei Dir noch nicht vorhanden ist, installiere es. Die Dokumentation erhälst Du dann z.B. durch Aufruf von
perldoc Win32API::Registry
Cheatah
Hi,
also ich hab schon jede menge verucht, aber leider bin ich halt noch ein Perl Newbie.
wenn Du ein komplexes Problem lösen willst, solltest Du zuerst bei http://www.cpan.org/ nachsehen, ob es dafür ein geeignetes Modul gibt. Falls es bei Dir noch nicht vorhanden ist, installiere es. Die Dokumentation erhälst Du dann z.B. durch Aufruf von
perldoc Win32API::Registry
Cheatah
Danke für den Tipp war mir noch nicht bekannt!DANKE!
Gruß Thomas
Hallo,
perldoc Win32API::Registry
Danke für den Tipp war mir noch nicht bekannt!DANKE!
und dann gleich noch:
perldoc Win32::Registry (eigentlich obsolet)
perldoc Win32::TieRegistry
Alle angegebenene Module sind bereits auf Deiner Festplatte, wenn Du den Perlport von Activestate installiert hast.
Grüße
  Klaus
Hallo,
perldoc Win32API::Registry
Danke für den Tipp war mir noch nicht bekannt!DANKE!
und dann gleich noch:
perldoc Win32::Registry (eigentlich obsolet)
perldoc Win32::TieRegistry
Alle angegebenene Module sind bereits auf Deiner Festplatte, wenn Du den Perlport von Activestate installiert hast.
Grüße
Klaus
Also irgendwie schnall ich das ganze nicht so richtig...ohne die Module geht das also nicht oder!?
Muss das ganz aber ohne irgendwas zu installieren zum laufen bringen...
Hi,
Also irgendwie schnall ich das ganze nicht so richtig...ohne die Module geht das also nicht oder!?
doch, natürlich. Du musst nur das nachprogrammieren, was die Programmierer dieser Module bereits geschaffen haben. Der Vorteil, statt dessen gleich das Modul zu verwenden, dürfte auf der Hand liegen - zumal Du auch mit einer geringeren Menge an Bugs zu rechnen hast.
Muss das ganz aber ohne irgendwas zu installieren zum laufen bringen...
Das ist falsch.
Cheatah
ok das leuchtet mir ein! Nur find ich nicht das richtige Modul...denke am einfachsten ist es wenn ich die Registry einfach in ne TXT datei exportier und dann kann ich ja eigentlich ganz einfach diie textdatei aulesen...?!
Hi,
Nur find ich nicht das richtige Modul...
Dir wurden drei zur Auswahl gegeben. Welche Probleme hast Du, davon das richtige zu finden?
denke am einfachsten ist es wenn ich die Registry einfach in ne TXT datei exportier und dann kann ich ja eigentlich ganz einfach diie textdatei aulesen...?!
Meinst Du wirklich, _das_ ist am einfachsten? Dazu musst Du ja auch entsprechend auf die Registry zugreifen, um den Export durchzuführen. Die Modulautoren haben herausgefunden, wie das geht, und Dir die Arbeit abgenommen.
Oder meinst Du, Du möchtest den Export _manuell_ durchführen? Computerprogramme sind i.a. dazu da, einem die manuelle Arbeit abzunehmen... :-)
Nicht aufgeben!
Cheatah
puhhh man Perl schafft mich *g*, aber ich denke bin jetzt schon nah dran ;-)!
puhhh man Perl schafft mich *g*, aber ich denke bin jetzt schon nah dran ;-)!
Hi. Buchtipp: http://www.amazon.de/exec/obidos/ASIN/3897211068/qid=1018642087/sr=8-3/ref=sr_aps_prod_3_1/302-7006492-3444823
Das Geckobuch (aka "Einführung in Perl für Win32-Systeme") ist, wenn man Perl-Anfänger ist, besser als jedes Onlinetutorial und seine 30 Kröten wohl wert.
Mahlzeit Thomas,
ok das leuchtet mir ein! Nur find ich nicht das richtige Modul...
Wenn du den ActiveState Port von Perl hast, dann *hast* Du das Modul.
Durchsuche doch mal Deine Festplatte ab dem Installationsverzeichnis von Perl (weiß nicht wo bei Dir - c:\Perl z.B.) nach index.html => das ist die Doku und TieRegistry.html ist die Doku zu Win32::TieRegistry; dieses Modul ist übrigens *der* Weg, um die Registry auszulesen und zu manipulieren.
Grüße
   K@rl
PS:
C:\WINDOWS>perl -v
This is perl, v5.6.1 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2001, Larry Wall
Binary build 631 provided by ActiveState Tool Corp. http://www.ActiveState.com
Built 17:16:22 Jan  2 2002
==> wenn Du so etwas änliches ließt, dann ist es der ActiveState Port
Hallo,
perldoc Win32API::Registry
Danke für den Tipp war mir noch nicht bekannt!DANKE!
und dann gleich noch:
perldoc Win32::Registry (eigentlich obsolet)
perldoc Win32::TieRegistry
Alle angegebenene Module sind bereits auf Deiner Festplatte, wenn Du den Perlport von Activestate installiert hast.
Grüße
Klaus
Also irgendwie schnall ich das ganze nicht so richtig...ohne die Module geht das also nicht oder!?
Muss das ganz aber ohne irgendwas zu installieren zum laufen bringen...
Hier mein momentanes Script:
open (DATEI, "<data.txt");
@datei = <DATEI>;
close (DATEI);
open (DATEINEU, ">results.txt");
foreach (@datei)
{
 (@p1) = ($_);
         $pfadname = join (@p1);
        print "Pfadname $pfadname
        chomp ($_);
        use Win32::Registry;
        if (-e $_)
        {
                print DATEINEU "Verzeichnis: $_ \t\t/ \tgefunden.\n";
        }
        else
        {
                print DATEINEU "Verzeichnis: $_ \t\t/ \tnicht gefunden.\n";
          }
}
close (DATEINEU);
Hi,
perldoc Win32::Registry (eigentlich obsolet)
darum habe/finde ich dazu vermutlich keine Doku.
Hier mein momentanes Script:
Und wo ist die Fehlerbeschreibung?
print "Pfadname $pfadname
Syntax Error.
use Win32::Registry;
Module bindet man (mindestens der Übersicht halber) am Anfang des Scripts ein - sie werden, sofern man nicht "trickst", ohnehin zu Beginn geladen, egal wo im Code sie eingebunden werden.
Die Bedeutung des Wortes "obsolet" ist Dir hoffentlich bekannt. Dennoch solltest Du, wenn Du Dich für den Einsatz des Modul entscheidest, die Doku dazu lesen, denn...
if (-e $_)
{
print DATEINEU "Verzeichnis: $_ \t\t/ \tgefunden.\n";
}
else
{
print DATEINEU "Verzeichnis: $_ \t\t/ \tnicht gefunden.\n";
}
}
...Du benutzt es nirgendwo.
close (DATEINEU);
Nebenbei: Lies bitte auch
perldoc perlstyle
insbesondere die Position der runden Klammern bei Funktionsaufrufen und die der geschweiften Klammern betreffend. Dein Code könnte dadurch übersichtlicher und damit leichter lesbar werden - besonders für Leute, die sich nach perlstyle richten (und genau zu dem Zweck wurde es geschrieben).
Cheatah