Guest User

Untitled

a guest
Jan 21st, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. /*RatzRamDiskCleaner säubert mithilfe eines Hotkeys den Ordner, in den die Videoaufnahmen von Fraps
  2. * gespeichert werden, was vor allem bei RamDisks mit wenig Speicherplatz Sinn macht.
  3. * Der Pfad zu den Aufnahmen und der Hotkey werden in der Registry gespeichert und bei jedem Start von
  4. * dort ausgelesen um zu überprüfen ob Einstellungen vorhanden sind.
  5. * Mit den Standardeinstellungen kann mit F8 auf der Tastatur der Inhalt des Aufnahmenordners gelöscht werden.
  6. * Viel Spass damit und gute Frags wünscht der Ratzie :)
  7. */
  8.  
  9. #include <dirent.h>
  10. #include <stdio.h>
  11. #include <string.h>
  12. #include <stdlib.h>
  13. #include <windows.h>
  14.  
  15. #define KEY "SOFTWARE\\ratz\\RRDC\\"
  16. #define HOTKEY "VK_F8"
  17. #define HOTKEYSCHLUESSEL "Hotkey"
  18. #define PASSWORTSCHLUESSEL "Passwort"
  19. #define PFADSCHLUESSEL "Pfad"
  20. #define RED "SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED);"
  21. #define GREEN "SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_GREEN);"
  22. #define STANDARD "SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);"
  23.  
  24. unsigned char *ausgabe;
  25. DWORD size;
  26. HKEY hkey;
  27.  
  28. int ReadFromReg(char keyname[]){
  29. free(ausgabe);
  30. if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, KEY, 0, KEY_QUERY_VALUE, &hkey) != ERROR_SUCCESS)
  31. printf("Konnte RegistryKey nicht oeffnen !\n");
  32.  
  33. if(RegQueryValueEx(hkey, keyname, NULL, NULL, ausgabe, &size) != ERROR_SUCCESS){
  34. printf("Konnte Registrywert nicht auslesen\n");
  35. return 1;
  36. }
  37. else{
  38. ausgabe = (LPBYTE)malloc((size + 1));
  39. RegQueryValueEx(hkey, keyname, NULL, NULL, ausgabe, &size);
  40. return 0;
  41. }
  42.  
  43. if(RegCloseKey(hkey) != ERROR_SUCCESS)
  44. printf("Konnte RegistryKey nicht schliessen !\n");
  45. }
  46.  
  47. int WriteToReg(char wert[], int anzahl, char name[]){
  48. if(RegCreateKeyEx(HKEY_LOCAL_MACHINE, KEY, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, NULL) != ERROR_SUCCESS)
  49. printf("Konnte RegistryKey nicht erstellen !\n");
  50. if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, KEY, 0, KEY_SET_VALUE, &hkey) != ERROR_SUCCESS)
  51. printf("Konnte RegistryKey nicht öffnen !\n");
  52. if(RegSetValueEx(hkey, name, 0, REG_SZ, wert, anzahl) != ERROR_SUCCESS)
  53. printf("Konnte RegistryKey nicht schreiben !\n");
  54. }
  55.  
  56. int cleardisk(char verzeichnis[]){
  57. char *pfad;
  58. int i = 0;
  59. DIR *ramdisk;
  60. struct dirent *ramdiskzeiger;
  61.  
  62. pfad = malloc((256 + strlen(verzeichnis)) * sizeof(char));
  63.  
  64. if((ramdisk=opendir(verzeichnis)) == NULL)
  65. printf("Konnte das Verzeichnis \"%s\" nicht öffnen !\n", verzeichnis);
  66.  
  67. while((ramdiskzeiger=readdir(ramdisk)) != NULL){
  68. i++;
  69. if(i > 2){
  70. snprintf(pfad, (256 + strlen(verzeichnis)), "%s%s", verzeichnis, (*ramdiskzeiger).d_name);
  71. if(remove(pfad) == 0)
  72. printf("%s\t wurde erfolgreich geloescht !\n", pfad);
  73. else
  74. printf("%s\t konnte nicht geloescht werden !\n", pfad);
  75. }
  76. }
  77. closedir(ramdisk);
  78. free(pfad);
  79. }
  80.  
  81. int main (){
  82. unsigned char *verzeichnis;
  83. unsigned char *testhotkey;
  84. unsigned char *testpasswort;
  85.  
  86. if(ReadFromReg(PASSWORTSCHLUESSEL) == 1){
  87. char a[50];
  88. printf("\nPasswort eingeben um das Programm zu verwenden: ");
  89. scanf("%49s", a);
  90. WriteToReg(a, strlen(a + 1), "Passwort");
  91. }
  92. else{
  93. testpasswort = ausgabe;
  94. printf("Passwort lautet: %s\n", testpasswort);
  95. printf("Passwortlaenge: %d\n", size);
  96. }
  97.  
  98. if(ReadFromReg(PFADSCHLUESSEL) == 1){
  99. char a[50];
  100. printf("\nPfad zum Aufnahmeordner auf der Ramdisk (z.B.: H:\\ \b\\Aufnahmen\\ \b\\ ): ");
  101. scanf("%49s", a);
  102. printf("Pfad zu den Aufnahmen lautet nun \"%s\".\n", a);
  103. WriteToReg(a, strlen(a + 1), "Pfad");
  104. }
  105. else{
  106. verzeichnis = ausgabe;
  107. printf("Pfad lautet: %s\n", verzeichnis);
  108. printf("Pfadlaenge: %d\n", size);
  109. }
  110.  
  111. if(ReadFromReg(HOTKEYSCHLUESSEL) == 1){
  112. WriteToReg(HOTKEY, 6, "Hotkey");
  113. }
  114. else{
  115. testhotkey = ausgabe;
  116. printf("Hotkey lautet: %s\n", testhotkey);
  117. printf("Hotkeylaenge: %d\n", size);
  118. }
  119.  
  120. printf("Alles geht soweit");
  121. }
Add Comment
Please, Sign In to add comment