win 98 vs. XDP ATI; Registry???



  • Hi!
    Ich habe kein kleines Prog geschrieben, dass u.a. über API auf die Registry
    zugreift. Unter win98 funktioniert es auch so wie gewollt, nur unter XP kann
    es nicht auf die Registry zugreifen, es macht zumindest in Sachen Reg.
    nichts.
    Woran könnte das liegen?
    Was muss ich danders machen?

    Danke!

    Ciao



  • Grandmaster Jam schrieb:

    Ich habe kein kleines Prog geschrieben [...] Woran könnte das liegen?
    Was muss ich danders machen?

    Wie wäre es mit schreiben???



  • 😃

    Solltest du doch "ein kleines Prog" gemeint haben, bin ich trotzdem der Meinung, dass dieses Thema in WinAPI besser aufgehoben ist, da es hier IMHO mehr um WinAPI Funktionen geht als speziell um Asm.

    Du kriegs also noch eine Gelegenheit, dich zu aessern, dann wird das Thema verschoben, wenn du mir keinen guten Grund lieferst, es nicht zu tun. (dh. eine Asm-lastige Frage 😉 )



  • Jut, schieb!



  • Du hast wohl nicht die nötigen Rechte 🙄 - läuft es über den Admin-Account auch nicht?
    Zeig mal deinen Code - so ist das ein bissl schwierig 😉



  • Hi!
    Ich habe die nötigen RECHTE!
    Dies ist der Code, alles was included ist, und nicht unbedingt gebraucht wird ist zu vernachlässigen.

    .386
    .model flat, stdcall
    include c:\masm32\include\windows.inc
    include c:\masm32\include\kernel32.inc
    include c:\masm32\include\advapi32.inc
    includelib c:\masm32\lib\user32.lib
    includelib c:\masm32\lib\kernel32.lib
    includelib c:\masm32\lib\advapi32.lib
    
    MessageBoxA PROTO :DWord, :DWord, :DWord, :DWord
    ExitProcess PROTO :DWord
    
    .data
    
    KEY2 DB 'Software\Microsoft\Windows\CurrentVersion\Run',0
    key2 db "Testschen",0
    
    handle2 dd 0
    valuename2 db 'C:\test\test32.exe',0
    vSize2 dd ?
    
    .code
    start:
    
    invoke RegOpenKeyEx,HKEY_CURRENT_USER, addr KEY2,0,KEY_READ, addr handle2
    invoke RegSetValueEx, handle2, addr key2, 0, REG_SZ, addr valuename2,vSize2
    invoke RegCloseKey, handle2
    
    call ExitProcess
    
    end start
    


  • Für vSize2 musst du noch den richtigen Wert angeben:

    Size of the information pointed to by the lpData parameter, in bytes. If the data is of type REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ, cbData must include the size of the terminating null character or characters.



  • Hi!
    Der wäre dann hier?
    Warum klappt das unter 98 so aber nur unter XP nicht?

    Ciao GJ



  • invoke RegOpenKeyEx,HKEY_CURRENT_USER, addr KEY2,0,KEY_READ, addr handle2 
    invoke RegSetValueEx, handle2, addr key2, 0, REG_SZ, addr valuename2,vSize2 
    invoke RegCloseKey, handle2
    

    Du öffnest die Registry mit KEY_READ, willst aber drauf schreiben (RegSetValueEx).

    Das kann so nicht gehen....



  • *mit dem Kopf auf den Tisch schlag*

    Ja, du hast recht!!!

    Danke!

    Ciao GJ


Anmelden zum Antworten