30. oktober 2003 - 00:33
Der er
34 kommentarer og 1 løsning
Hiv information ud af Windows registreringsdatabase
Jeg ville gerne vide om man kunne lave en automatiseret program der automatisk hiver bestemte grene eller værdier ud af regedit. dvs. uden at man skal ind i regedit og finde frem til den rigtige gren for derefter at trykke på exporter. der må være en måde man kan lave en automatiseret exportering. enten med et batch program eller noget andet?
Annonceindlæg tema
Cloud & AI
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
30. oktober 2003 - 00:36
#1
Ja. BAT duer ikke til det C++ kan bruges Delphi kan bruges formentligt også VB
30. oktober 2003 - 00:42
#2
okay arne igen det er efterhånden kun dig der besvarer mine spørgsmål hehe kunne du give et lille hint til hvordan jeg laver dette i c++?
30. oktober 2003 - 00:45
#3
30. oktober 2003 - 00:45
#4
Det kan godt være lidt tricky nogen gange at få det til at virke. Men det er lavet utallige gange og formentlig kan du finde noget eksempel kode.
30. oktober 2003 - 01:01
#6
Det er C++ (faktisk er det C men det virker jo også i C++)
30. oktober 2003 - 01:10
#7
#include <conio.h> #include <stdio.h> void main(void){ LONG RegSaveKey( HKEY [HKEY_CURRENT_USER], LPCTSTR blah.txt, LPSECURITY_ATTRIBUTES null ); } --- hmm
30. oktober 2003 - 01:11
#8
jeg får kun fejl når jeg prøver at compile dette
30. oktober 2003 - 07:45
#10
Det er kun en funktions prototype. Jeg kan godt prøve at lave et eksempel. I aften.
30. oktober 2003 - 09:52
#11
Jeg har et eksempel liggende, der hiver listen af installeret software ud: #include <windows.h> #include <stdio.h> void getInstalledSoftware(char *info) { HKEY hKey_root; long hKey_root_result; hKey_root_result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", 0, KEY_ENUMERATE_SUB_KEYS, &hKey_root); if(hKey_root_result == ERROR_SUCCESS) { int counter = 0; char buffer[1024] = ""; while(RegEnumKey(hKey_root, counter, buffer, sizeof(buffer)) == ERROR_SUCCESS) { HKEY hKey_query; long hKey_query_result; char hKey_query_buffer[1024]; DWORD hKey_query_buffer_size = sizeof(hKey_query_buffer); hKey_query_result = RegOpenKeyEx(hKey_root, buffer, 0, KEY_QUERY_VALUE, &hKey_query); if(hKey_query_result == ERROR_SUCCESS) { long DisplayName_result; long UninstallString_result; DisplayName_result = RegQueryValueEx(hKey_query, "DisplayName", 0, 0, (LPBYTE)&hKey_query_buffer, &hKey_query_buffer_size); UninstallString_result = RegQueryValueEx(hKey_query, "UninstallString", 0, 0, 0, 0); if((DisplayName_result == ERROR_SUCCESS) && (UninstallString_result == ERROR_SUCCESS)) { strcat(info, "\r\n<name>"); strcat(info, hKey_query_buffer); strcat(info, "</name>"); } } counter++; RegCloseKey(hKey_query); } } RegCloseKey(hKey_root); } int main(int argc, char **argv) { char buffer[12345]; getInstalledSoftware(buffer); printf("%s\n", buffer); return 0; } Output (uddrag fra min liste): <name>Mozilla (1.5)</name> <name>NVIDIA Display Driver</name> <name>Outlook Express Update Q330994</name> <name>Windows XP Hotfix (SP2) Q322011</name> <name>Windows Media Player Hotfix [See wm828026 for more information]</name> <name>Easy Access Keyboard</name> <name>Politikens Engelsk-Dansk Dansk-Engelsk Ordbog</name> <name>Java 2 SDK, SE v1.4.2_01</name> <name>Sound Blaster Live! Web 2K/XP</name> <name>Java 2 Runtime Environment, SE v1.4.2_01</name> <name>Nero - Burning Rom</name> <name>Politikens Nudansk Ordbog med etymologi</name> <name>Adobe Reader 6.0</name> <name>Tweakui Powertoy for Windows XP</name>
30. oktober 2003 - 19:19
#12
Er Sørens eksempel nok - eller skal jeg lave et andet ?
30. oktober 2003 - 19:40
#13
Jeg kan ikke rigtig compile den jeg får en masse fejl
30. oktober 2003 - 19:43
#14
Hvilke fejl og hvilken compiler ?
30. oktober 2003 - 19:44
#15
hvilken compiler bruger du søren?
30. oktober 2003 - 19:47
#16
Jeg bruger mingw (den som følger med dev-cpp) gcc version 3.2.3 (mingw special 20030504-1)
30. oktober 2003 - 19:47
#17
Jeg bruger Turbo C++ version 3.0
30. oktober 2003 - 19:51
#18
Øhhh, den fra Borland ? Det er da vist en DOS only compiler !
30. oktober 2003 - 19:52
#19
DOS og Win16
30. oktober 2003 - 19:53
#20
Så du skulle nok downloade mingw.
30. oktober 2003 - 19:53
#21
30. oktober 2003 - 21:01
#22
Nu har jeg kastet din kode ind i en .cpp fil og mit store problem er nu at få den compilet med MinGW. MinGW er jo commandline styret, hvor turbo c++ er mere notepad agtigt med en menu linje. hvordan compiler jeg min .cpp fil med MinGW?
30. oktober 2003 - 21:04
#23
C: gcc foobar.c -o foobar.exe C++: g++ foobar.cpp -o foobar.exe
30. oktober 2003 - 21:10
#24
**************************************************** C:\MinGW\bin>g++ regedit.CPP -o regedit.exe regedit.CPP:50:2: warning: no newline at end of file C:\MinGW\bin>gcc regedit.c -o regedit.exe regedit.c:50:2: warning: no newline at end of file C:\MinGW\bin> **************************************************** virker den hos dig?
30. oktober 2003 - 21:14
#25
Det er kun en warning d.v.s. EXE filen er OK.
30. oktober 2003 - 21:15
#26
Hvis du vil af med den går du ned i bunden af filen efter sidste } og laver et ekstra linie-skift.
30. oktober 2003 - 21:20
#27
ja det er rigtig det er bare mig der ikke lige kikkede efter om den havde lavet en exe fil, men det har dem. og den virker, men det er bare ikke lige sådan en jeg skal bruge. Den jeg skal bruge skal også kunne sætte det ind i en fil. (.txt .reg .bak whatever) Den exporterer jo ikke noget. Den viser bare hvad værdierne er i bestemte grene. og når du lukker vinduet glemmer den det igen. eller den lukker vinduet med det sammen man åbner den hvis ikke man gør det fra commando prompten.
30. oktober 2003 - 21:23
#28
Så skal programmet bare ændres til at skrive til en fil. Eller du kan bruge: program > output.fil
30. oktober 2003 - 21:38
#29
Næ den sidste virker vist ikke. C:\MinGW\bin>regedit.exe test.txt denne udskriver ikke noget i test.txt vil du hjælpe mig med at lave en der udskriver til en fil? for så opretter jeg lige et nyt spm med flere points i :)
30. oktober 2003 - 21:39
#30
Hov ">" er vist vigtig at huske
30. oktober 2003 - 21:41
#31
Hvis du fortælle rhvordan output skal se ud, så skal jeg gerne customize output (det vil Søren sikkert også gerne).
30. oktober 2003 - 22:00
#32
Jo tak. Den skal kunne exportere en Streng det er lige meget hvordan output ser ud. bare den har den data der er i strengen. et eksempel ville være: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion] og så de strenge der er herinde skulle den kunne exportere f.eks. CommonFilesDir = c:\programmer\blabla WallPaperDir = c:\billeder
30. oktober 2003 - 22:09
#33
Den Søren har lavet kan kun se undermapperne. Den kan ikke se selve strengene.
30. oktober 2003 - 22:16
#34
Jeg prøver lige at bixe noget.
30. oktober 2003 - 22:17
#35
Computerworld tilbyder specialiserede kurser i database-management