Avatar billede ravencmp Novice
19. oktober 2001 - 07:35 Der er 9 kommentarer og
1 løsning

Reg 2 Exe - Kan det lade sig gøre ?

Jeg har ofte været ude for at man på nettet hist og her kan finde .exe filer som skriver direkte til ens registry

Og det jeg nu leder efter er et program eller en metode man kan konvertere en REG fil til en standalone selvinstallerende EXE fil


Er der nogen der kan hjælpe ?
Avatar billede tax Nybegynder
19. oktober 2001 - 07:54 #1
Du kan igennem windows API få adgang til at skrive i registry. Så kunne du lave et program (exe), der udfører din opgave.

Jeg kan ikke lige huske hvordan syntaks er osv, men jeg ved det kan lade sig gøre, da jeg og en studiekammerat anvendte det i et projekt sidste år.
Avatar billede tax Nybegynder
19. oktober 2001 - 07:55 #2
API=Application Programming Interface. (Et sæt programmeringsfunktioner windows stiller til rådighed)
Avatar billede ravencmp Novice
19. oktober 2001 - 10:21 #3
Well så langt så godyt men jeg er ingen haj til programmering er det noget jeg kan få dig til at læave og det der API hvor finder jeg det ?
Avatar billede maverick_quazary Nybegynder
19. oktober 2001 - 14:10 #4
Hvorfor vil du dog lave den til en standalone selvinstallerende .exe fil?? Du dobbeltklikker bare på .reg filen, så spørger den om du vil tilføje indholdet til systemregistreringsdatabasen, du klikker ja og så er den installeret.
Avatar billede ravencmp Novice
21. oktober 2001 - 08:36 #5
netop fordi jeg vil undgå de to boxe der popper op
fordi jeg gerne vil have noget jkeg kan lever til brugeren som jeg også er sikker på at han ikek \"ved et uheld\" går ind og retter i
Avatar billede ravencmp Novice
21. oktober 2001 - 08:36 #6
hvis bare du kunne fortælle mig hvor jeg henter det der API osv så kunne det være jeg kunne bruge DET....
Avatar billede tax Nybegynder
21. oktober 2001 - 11:19 #7
Her er noget source: Det er lang tid siden jeg arbejdede på projektet, og det var en af de dele jeg ikke \"drømte op\". Men her er det!

Håber du kan få noget ud af det, ihvertfald nogele af API kaldene.


/* --------------------------------- Reg Write start --------------------------------- */
                // Skriv data i Registry
               

                retCode=RegOpenKeyEx(hKey,szRegPath,0,samDesired,&hkeyResult);
               
               
                wsprintfA(szTempRegPath,\"Software\\\\%s\\\\%s\\\\%s\\\\%s%d\",szAppCompany,szAppName,szDllVersion,
                            szType[asChannels[iGlobIndex].iType],asChannels[iGlobIndex].iIndex);
               
                wsprintfA(szChannelName,\"%s%d\",szType[asChannels[iGlobIndex].iType],asChannels[iGlobIndex].iIndex);

                retCode=RegOpenKeyEx(hKey,szTempRegPath,0,samDesired,&hkeyResult);
                if(retCode!=ERROR_SUCCESS){
                    retCode=RegCreateKeyEx(hKey,szTempRegPath,0,szNULL, REG_OPTION_NON_VOLATILE,
                            KEY_ALL_ACCESS, NULL, &hkeyResult, &dwDisp);
                    if(retCode==ERROR_SUCCESS){
                        flagRegOK=1;
                    }
                    else{
                        MessageBox(NULL,szTempRegPath,TEXT(\"Unable to write to Reg Data Base\"),MB_OK);
//                                    flagRegOK=0;
                    }
                }
                else{
//                                MessageBox(NULL,szTempRegPath,TEXT(\"Found \"),MB_OK);
                    flagRegOK=1;
           
                }
               
                if(flagRegOK==1){
                    CHAR szColour[20];
                    CHAR szLineWidth[4];
                    CHAR szPenStyle[4];
                    BYTE *lpData,*lpLine,*lpPen;
                    unsigned long tmp=500;                // BufferSize
                    LPDWORD BufferSZ=&tmp;   

                   
                    lpData=&(unsigned char)asChannels[iGlobIndex].crColour;
                    lpLine=&(unsigned char)asChannels[iGlobIndex].iLineWidth;
                    lpPen=&(unsigned char)asChannels[iGlobIndex].iPenStyle;
                    itoa(asChannels[iGlobIndex].crColour,szColour,10);
                    itoa(asChannels[iGlobIndex].iLineWidth,szLineWidth,10);
                    itoa(asChannels[iGlobIndex].iPenStyle,szPenStyle,10);
                   
                    /*    Name    As string                */
                    retCode=RegSetValueEx( hkeyResult,TEXT(\"Name\"),0,REG_SZ,asChannels[iGlobIndex].szName,sizeof(asChannels[iGlobIndex].szName));
                        tmp=500;

                    /*            As numbers..              */
//                    LONG RegSetValueEx(  HKEY hKey,LPCTSTR lpValueName,  DWORD Reserved,  DWORD dwType,  CONST BYTE *lpData,  DWORD cbData );
                    retCode=RegSetValueEx( hkeyResult,\"Colour\",0,    REG_DWORD,lpData,sizeof(asChannels[iGlobIndex].crColour));
                    retCode=RegSetValueEx( hkeyResult,\"LineWidth\",0,REG_DWORD,lpLine,sizeof(asChannels[iGlobIndex].iLineWidth));
                    retCode=RegSetValueEx( hkeyResult,\"PenStyle\",0,REG_DWORD,lpPen,sizeof(asChannels[iGlobIndex].iPenStyle));
       
                    /*            As strings..              */
                    retCode=RegSetValueEx( hkeyResult,\"szColour\",0,REG_SZ,szColour,sizeof(szColour));
                    retCode=RegSetValueEx( hkeyResult,\"szLineWidth\",0,REG_SZ,szLineWidth,sizeof(szLineWidth));
                    retCode=RegSetValueEx( hkeyResult,\"szPenStyle\",0,REG_SZ,szPenStyle,sizeof(szPenStyle));

                }   
                retCode=RegCloseKey(hkeyResult);

    /* --------------------------------- Reg Write End --------------------------------- */               
           

Avatar billede tax Nybegynder
21. oktober 2001 - 11:20 #8
Jeg glemte at skrive at koden er lavet af Andreas Markussen primært. For en god ordens skyld.
Avatar billede ravencmp Novice
22. oktober 2001 - 19:13 #9
1000 tak men øhm lige et problmem...

Jeg er ikke den store programmør...

Hvor indsætter jeg den der kode og bruger den til at lave en givet .reg fil til en .exe ?
Avatar billede ravencmp Novice
02. august 2003 - 17:02 #10
Med henvisning til LRD's indlæg vedr. alle mine åbne spørgsmål (http://www.eksperten.dk/spm/382838) smider jeg nu denne og svarer selv på mit spørgsmål siden der åbenbart ikke er nogen andre der interesserer sig for at hjælpe mig.

Tusind tak for jeres kommentarer/afviste svar, ked af at de ik kunne hjælpe og at andre har ignoreret mig !!!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester