Vraag : Sparen de Rekeningen van de Machine en van de Gebruiker in Vensters 2008 SBS

Wij deden oorspronkelijk een update van Vensters 2003 SBS met Vensters 2008 SBS.  Nu hebben wij dwars verbonden folders en een horde andere problemen wat van hen veroorzaakt door mensen die van een diverse verre technologiesteun toestemmingen enz. veranderen.  Wij gaan schoon doen installeren vandaag van 2008 SBS.  Ik heb huisarbeiders die zich bij het domein hebben aangesloten en ik benieuwd was of is er een manier om hun gebruiker en machinerekeningen te bewaren zodat kan ik hen later herladen wanneer nieuwe OS wordt geïnstalleerdr.   Ik zou ook hun Uitwisseling e-mail en verwante info willen herladen die zij hebben opgeslagen.  Kan dit worden gedaan?  Ook is de beste manier om ons SQL 2005 gegevensbestand om los te maken opnieuw te installeren het en maken hen het weer vast wanneer wij SQL 2008 geïnstalleerdr op verse SBS2008 installeren krijgen?
Thanks

Antwoord : Sparen de Rekeningen van de Machine en van de Gebruiker in Vensters 2008 SBS

Hello,

Ik had ook dit probleem… zo met sommige wijzigingen en gebruikend een andere manier om tot de Registratie die van Vensters toegang te hebben (geen Registry.pas gebruiken) ik heb zonder problemen… gedaan

De code is hieronder een litghtweightvervanging voor Registry.pas met wijzigingen aan het werk met Vlaggen KEY_WOW64_64KEY/KEY_WOW64_32KEY

Basis gebruik in uw geval

Vestiging uw programma als Shell
[code] WinRegSetString (HKEY_LOCAL_MACHINE, Vensters NT \ CurrentVersion \ Winlogon \ Shell“, „YourProgram.exe“ de „van de SOFTWARE \ Microsoft \, Waar); [/code]

als u een „Blackslash“ bij de sleutel zet als (de „Vensters NT \ CurrentVersion \ Winlogon \ Shell \ van de SOFTWARE \ Microsoft \“) het zal tot Nieuw „Zeer belangrijk“ geroepen Shell… zonder blackslash leiden het tot een Waarde genoemd Shell… het zelfde voor alle functies toegang zal hebben

Terugkeer naar de Vensters Shell
[code] WinRegSetString (HKEY_LOCAL_MACHINE, Vensters NT \ CurrentVersion \ Winlogon \ Shell“, „Explorer.exe“ de „van de SOFTWARE \ Microsoft \, Waar); [/code]

Het lezen van huidige shell
[code] var
 szBuff: Koord;
begin
 WinRegGetString (HKEY_LOCAL_MACHINE, de „Vensters NT \ CurrentVersion \ Winlogon \ Shell van de SOFTWARE \ Microsoft \“, szBuff, Waar);
  ShowMessage („„“ + szBuff + „„“); [/code]

De hoop het helpt u!
Achting,
Carlos

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
505:
506:
507:
508:
509:
510:
511:
512:
513:
eenheid UTILS_Reg;

interface

gebruik
  Vensters,
  SysUtils,
  Klassen;

  functie WinRegConnect (MachineName: Koord; RootKey: HKEY; var RemoteKey: HKEY): van Boole;
  functie WinRegDisconnect (RemoteKey: HKEY): van Boole;
  functie WinRegValueExists (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
  functie WinRegGetValueType (RootKey: HKEY; Naam: Koord; var Waarde: Hoofd; Wow64: Van Boole): van Boole;
  functie WinRegKeyExists (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
  functie WinRegDelValue (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
  functie WinRegDelKey (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
  functie WinRegEnum (hRootKey: HKEY; szKey: Koord; Buffer: TStringList; bKeys: Van Boole; Wow64: Van Boole): Van Boole;
  functie WinRegSetString (RootKey: HKEY; Naam: Koord; Waarde: Koord; Wow64: Van Boole): van Boole;
  functie WinRegSetMultiString (RootKey: HKEY; Naam: Koord; Waarde: Koord; Wow64: Van Boole): van Boole;
  functie WinRegSetExpandString (RootKey: HKEY; Naam: Koord; Waarde: Koord; Wow64: Van Boole): van Boole;
  functie WinRegSetDword (RootKey: HKEY; Naam: Koord; Waarde: Hoofd; Wow64: Van Boole): van Boole;
  functie WinRegSetBinary (RootKey: HKEY; Naam: Koord; Waarde: Serie van Byte; Wow64: Van Boole): van Boole;
  functie WinRegGetString (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
  functie WinRegGetMultiString (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
  functie WinRegGetExpandString (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
  functie WinRegGetDWORD (RootKey: HKEY; Naam: Koord; Var Waarde: Hoofd; Wow64: Van Boole): van Boole;
  functie WinRegGetBinary (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
  functie Binary2DateTime (RootKey: HKEY; Naam: Koord; var Waarde: TDateTime; Wow64: Van Boole): Van Boole;
  functie DateTime2Binary (RootKey: HKEY; Naam: Koord; var Waarde: TDateTime; Wow64: Van Boole): Van Boole;
  functie Binary2Integer (RootKey: HKEY; Naam: Koord; var Waarde: Geheel; Wow64: Van Boole): Van Boole;
  functie Integer2Binary (RootKey: HKEY; Naam: Koord; var Waarde: Geheel; Wow64: Van Boole): Van Boole;

implementatie

functie IsWow64: Van Boole;
type
  TIsWow64Process = functie (// Type van IsWow64Process API F-N
    Handvat: Windows.THandle; var Onderzoek: Windows.BOOL
  ): Windows.BOOL; stdcall;
var
  IsWow64Result: Windows.BOOL;      // Resultaat van IsWow64Process
  IsWow64Process: TIsWow64Process;  // IsWow64Process F-N verwijzing
begin
  // probeert om vereiste functie van kernel32 te laden
  IsWow64Process: = Windows.GetProcAddress (
    Windows.GetModuleHandle („kernel32.dll“), „IsWow64Process“
  );
  indien dan Toegewezen (IsWow64Process)
  begin
    // de Functie wordt uitgevoerd: vraag het
    als niet IsWow64Process (
      Windows.GetCurrentProcess, IsWow64Result
    ) toen
      hef SysUtils.Exception.Create op („IsWow64: slecht proceshandvat“);
    // het resultaat van de Terugkeer van functie
    Resultaat: = IsWow64Result;
  eind
  anders
    // uitgevoerde niet Functie: kan niet op Wow64 lopen
    Resultaat: = Vals;
eind;

functie Binary2DateTime (RootKey: HKEY; Naam: Koord; var Waarde: TDateTime; Wow64: Van Boole): Van Boole;
var
  dtBuff: TDateTime;
  dtBytes: serie [1..8] van absolute dtBuff van de Byte;
  szBin: koord;
  i: geheel;
begin
  Resultaat: = WinRegGetBinary (RootKey, Naam, szBin, Wow64);

  als Resultaat toen
  Resultaat: = Lengte (szBin) = 8;

  als Resultaat toen
  begin
    voor I: = 1 tot 8
    dtBytes [I]: = ord (szBin [I]);
    Waarde: = dtBuff;
  eind;
eind;

functie DateTime2Binary (RootKey: HKEY; Naam: Koord; var Waarde: TDateTime; Wow64: Van Boole): Van Boole;
var
  dtBuff: TDateTime;
  dtBytes: serie [1..8] van byte absolute dtBuff;
begin
  dtBuff: = Waarde;
  Resultaat: = WinRegSetBinary (RootKey, Naam, dtBytes, Wow64);
eind;

functie Binary2Integer (RootKey: HKEY; Naam: Koord; var Waarde: Geheel; Wow64: Van Boole): Van Boole;
var
  iBuff: Geheel;
  dtBytes: serie [1..4] van absolute iBuff van de Byte;
  szBin: koord;
  i: geheel;
begin
  Resultaat: = WinRegGetBinary (RootKey, Naam, szBin, Wow64);

  als Resultaat toen
  Resultaat: = Lengte (szBin) = 4;

  als Resultaat toen
  begin
    voor I: = 1 tot 4
    dtBytes [I]: = ord (szBin [I]);
    Waarde: = iBuff;
  eind;
eind;

functie Integer2Binary (RootKey: HKEY; Naam: Koord; var Waarde: Geheel; Wow64: Van Boole): Van Boole;
var
  iBuff: Geheel;
  dtBytes: serie [1..4] van absolute iBuff van de Byte;
begin
  iBuff: = Waarde;
  Resultaat: = WinRegSetBinary (RootKey, Naam, dtBytes, Wow64);
eind;

functie LastPos (Naald: Klusje; Hooiberg: Koord): geheel;
begin
  voor Resultaat: downto 1 = van de lengte (Hooiberg)
  als Hooiberg [Resultaat] = Naald toen
  Onderbreking;
eind;

functie WinRegConnect (MachineName: Koord; RootKey: HKEY; var RemoteKey: HKEY): van Boole;
begin
  Resultaat: = (RegConnectRegistry (PChar (MachineName), RootKey, RemoteKey) = ERROR_SUCCESS);
eind;

functie WinRegDisconnect (RemoteKey: HKEY): van Boole;
begin
  Resultaat: = (RegCloseKey (RemoteKey) = ERROR_SUCCESS);
eind;

functie RegSetValue (RootKey: HKEY; Naam: Koord; ValType: Hoofd; PVal: Wijzer; ValSize: Hoofd; Wow64: Van Boole): van Boole;
var
  SubKey: Koord;
  n: geheel;
  dispo: DWORD;
  hTemp: HKEY;
  bSuccess: Van Boole;
  _hKey: Hoofd;
begin
  Resultaat: = Vals;
  
  n: = LastPos („\“, Naam);
  als n > 0 toen
  begin
    SubKey: = Exemplaar (Naam, 1, n - 1);

    als Wow64 en IsWow64 toen
    _hKey: = KEY_WRITE of KEY_WOW64_64KEY anders
    als IsWow64 en niet Wow64 toen
    _hKey: = KEY_WRITE of KEY_WOW64_32KEY anders
    _hKey: = KEY_WRITE;

    bSuccess: = RegCreateKeyEx (RootKey, PChar (SubKey), 0, nul, REG_OPTION_NON_VOLATILE, _hKey, nul, hTemp, @dispo) = ERROR_SUCCESS;

    als bSuccess toen
    begin
      SubKey: = Exemplaar (Naam, n + 1, Lengte (Naam) - n);
      Resultaat: = (RegSetValueEx (hTemp, PChar (SubKey), 0, ValType, PVal, ValSize) = ERROR_SUCCESS);
      RegCloseKey (hTemp);
    eind;
  eind;
eind;

functie RegGetValue (RootKey: HKEY; Naam: Koord; ValType: Hoofd; var PVal: Wijzer;
  var ValSize: Hoofd; Wow64: Van Boole): van Boole;
var
  SubKey: Koord;
  n: geheel;
  MyValType: DWORD;
  hTemp: HKEY;
  Buf: Wijzer;
  BufSize: Hoofd;
  _hKey: Hoofd;
begin
  Resultaat: = Vals;
  n: = LastPos („\“, Naam);
  als n > 0 toen
  begin
    SubKey: = Exemplaar (Naam, 1, n - 1);

    als Wow64 en IsWow64 toen
    _hKey: = KEY_READ of KEY_WOW64_64KEY anders
    als IsWow64 en niet Wow64 toen
    _hKey: = KEY_READ of KEY_WOW64_32KEY anders
    _hKey: = KEY_READ;

    als RegOpenKeyEx (RootKey, PChar (SubKey), 0, _hKey, hTemp) = ERROR_SUCCESS toen
    begin
      SubKey: = Exemplaar (Naam, n + 1, Lengte (Naam) - n);
      als RegQueryValueEx (hTemp, @BufSize PChar (SubKey), nul, @MyValType, nul,) = ERROR_SUCCESS toen
      begin
        GetMem (Buf, BufSize);
        als RegQueryValueEx (hTemp, @BufSize PChar (SubKey), nul, @MyValType, Buf,) = ERROR_SUCCESS toen
        begin
          als ValType = MyValType toen
          begin
            PVal: = Buf;
            ValSize: = BufSize;
            Resultaat: = Waar;
          eind
          anders
          FreeMem (Buf);
        eind
        anders
        FreeMem (Buf);
      eind;
      RegCloseKey (hTemp);
    eind;
  eind;
eind;

functie WinRegValueExists (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
var
  SubKey: Koord;
  n: geheel;
  hTemp: HKEY;
  _hKey: T-hendel;
begin
  Resultaat: = Vals;
  n: = LastPos („\“, Naam);
  als n > 0 toen
  begin
    SubKey: = Exemplaar (Naam, 1, n - 1);

    als Wow64 en IsWow64 toen
    _hKey: = KEY_READ of KEY_WOW64_64KEY anders
    als IsWow64 en niet Wow64 toen
    _hKey: = KEY_READ of KEY_WOW64_32KEY anders
    _hKey: = KEY_READ;

    als RegOpenKeyEx (RootKey, PChar (SubKey), 0, _hKey, hTemp) = ERROR_SUCCESS toen
    begin
      SubKey: = Exemplaar (Naam, n + 1, Lengte (Naam) - n);
      Resultaat: = (RegQueryValueEx (hTemp, PChar (SubKey), nul, nul, nul, nul) = ERROR_SUCCESS);
      RegCloseKey (hTemp);
    eind;
  eind;
eind;

functie WinRegGetValueType (RootKey: HKEY; Naam: Koord; var Waarde: Hoofd; Wow64: Van Boole): van Boole;
var
  SubKey: Koord;
  n: geheel;
  hTemp: HKEY;
  ValType: Hoofd;
  _hKey: Hoofd;
begin
  Resultaat: = Vals;
  Waarde: = REG_NONE;
  n: = LastPos („\“, Naam);
  als n > 0 toen
  begin
    SubKey: = Exemplaar (Naam, 1, n - 1);

    als Wow64 en IsWow64 toen
    _hKey: = KEY_READ of KEY_WOW64_64KEY anders
    als IsWow64 en niet Wow64 toen
    _hKey: = KEY_READ of KEY_WOW64_32KEY anders
    _hKey: = KEY_READ;

    als (RegOpenKeyEx (RootKey, PChar (SubKey), 0, _hKey, hTemp) = ERROR_SUCCESS) toen
    begin
      SubKey: = Exemplaar (Naam, n + 1, Lengte (Naam) - n);
      Resultaat: = (RegQueryValueEx (hTemp, PChar (SubKey), nul, @ValType, nul, nul) = ERROR_SUCCESS);
      als Resultaat toen
      Waarde: = ValType;
      RegCloseKey (hTemp);
    eind;
  eind;
eind;

functie WinRegKeyExists (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
var
  SubKey: Koord;
  n: geheel;
  hTemp: HKEY;
  _hKey: Hoofd;
begin
  Resultaat: = Vals;
  n: = LastPos („\“, Naam);
  als n > 0 toen
  begin
    SubKey: = Exemplaar (Naam, 1, n - 1);

    als Wow64 en IsWow64 toen
    _hKey: = KEY_READ of KEY_WOW64_64KEY anders
    als IsWow64 en niet Wow64 toen
    _hKey: = KEY_READ of KEY_WOW64_32KEY anders
    _hKey: = KEY_READ;

    als RegOpenKeyEx (RootKey, PChar (SubKey), 0, _hKey, hTemp) = ERROR_SUCCESS toen
    begin
      Resultaat: = Waar;
      RegCloseKey (hTemp);
    eind;
  eind;
eind;

functie WinRegDelValue (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
var
  SubKey: Koord;
  n: geheel;
  hTemp: HKEY;
  _hKey: Hoofd;
begin
  Resultaat: = Vals;
  n: = LastPos („\“, Naam);
  als n > 0 toen
  begin
    SubKey: = Exemplaar (Naam, 1, n - 1);

    als Wow64 en IsWow64 toen
    _hKey: = KEY_WRITE of KEY_WOW64_64KEY anders
    als IsWow64 en niet Wow64 toen
    _hKey: = KEY_WRITE of KEY_WOW64_32KEY anders
    _hKey: = KEY_WRITE;

    als RegOpenKeyEx (RootKey, PChar (SubKey), 0, _hKey, hTemp) = ERROR_SUCCESS toen
    begin
      SubKey: = Exemplaar (Naam, n + 1, Lengte (Naam) - n);
      Resultaat: = (RegDeleteValue (hTemp, PChar (SubKey)) = ERROR_SUCCESS);
      RegCloseKey (hTemp);
    eind;
  eind;
eind;

functie WinRegDelKey (RootKey: HKEY; Naam: Koord; Wow64: Van Boole): van Boole;
var
  SubKey: Koord;
  n: geheel;
  hTemp: HKEY;
  _hKey: Hoofd;
begin
  Resultaat: = Vals;
  n: = LastPos („\“, Naam);
  als n > 0 toen
  begin
    SubKey: = Exemplaar (Naam, 1, n - 1);

    als Wow64 en IsWow64 toen
    _hKey: = KEY_WRITE of KEY_WOW64_64KEY anders
    als IsWow64 en niet Wow64 toen
    _hKey: = KEY_WRITE of KEY_WOW64_32KEY anders
    _hKey: = KEY_WRITE;

    als RegOpenKeyEx (RootKey, PChar (SubKey), 0, _hKey, hTemp) = ERROR_SUCCESS toen
    begin
      SubKey: = Exemplaar (Naam, n + 1, Lengte (Naam) - n);
      Resultaat: = (RegDeleteKey (hTemp, PChar (SubKey)) = ERROR_SUCCESS);
      RegCloseKey (hTemp);
    eind;
  eind;
eind;

functie WinRegEnum (hRootKey: HKEY; szKey: Koord; Buffer: TStringList; bKeys: Van Boole; Wow64: Van Boole): Van Boole;
var
  i: geheel;
  iRes: geheel;
  s: Koord;
  hTemp: HKEY;
  Buf: Wijzer;
  BufSize: Hoofd;
  _hKey: Hoofd;
begin
  Resultaat: = Vals;
  Buffer.Clear;

  als Wow64 en IsWow64 toen
  _hKey: = KEY_READ of KEY_WOW64_64KEY anders
  als IsWow64 en niet Wow64 toen
  _hKey: = KEY_READ of KEY_WOW64_32KEY anders
  _hKey: = KEY_READ;

  als RegOpenKeyEx (hRootKey, PChar (szKey), 0, _hKey, hTemp) = ERROR_SUCCESS toen
  begin
    Resultaat: = Waar;
    BufSize: = 1024;
    GetMem (buf, BufSize);
    i: = 0;
    iRes: = ERROR_SUCCESS;
    terwijl iRes = ERROR_SUCCESS 
    begin
      BufSize: = 1024;
      als bKeys toen
        iRes: = RegEnumKeyEx (hTemp, I, buf, BufSize, nul, nul, nul, nul)
      anders
        iRes: = RegEnumValue (hTemp, I, buf, BufSize, nul, nul, nul, nul);
      als iRes = ERROR_SUCCESS toen
      begin
        SetLength (s, BufSize);
        CopyMemory (@s [1], buf, BufSize);
        Buffer.Add;
        n.v. (I);
      eind;
    eind;
    FreeMem (buf);
    RegCloseKey (hTemp);
  eind;
eind;

functie WinRegSetString (RootKey: HKEY; Naam: Koord; Waarde: Koord; Wow64: Van Boole): van Boole;
begin
  Resultaat: = RegSetValue (RootKey, Naam, REG_SZ, PChar (Waarde + #0), Lengte (Waarde) + 1, Wow64);
eind;

functie WinRegSetMultiString (RootKey: HKEY; Naam: Koord; Waarde: Koord; Wow64: Van Boole): van Boole;
begin
  Resultaat: = RegSetValue (RootKey, Naam, REG_MULTI_SZ, PChar (Waarde + #0#0), Lengte (Waarde) + 2, Wow64);
eind;

functie WinRegSetExpandString (RootKey: HKEY; Naam: Koord; Waarde: Koord; Wow64: Van Boole): van Boole;
begin
  Resultaat: = RegSetValue (RootKey, Naam, REG_EXPAND_SZ, PChar (Waarde + #0), Lengte (Waarde) + 1, Wow64);
eind;

functie WinRegSetDword (RootKey: HKEY; Naam: Koord; Waarde: Hoofd; Wow64: Van Boole): van Boole;
begin
  Resultaat: = RegSetValue (RootKey, Naam, REG_DWORD, @Value, SizeOf (Hoofd), Wow64);
eind;

functie WinRegSetBinary (RootKey: HKEY; Naam: Koord; Waarde: Serie van Byte; Wow64: Van Boole): van Boole;
begin
  Resultaat: = RegSetValue (RootKey, Naam, REG_BINARY, @Value, SizeOf (Waarde), Wow64);
eind;

functie WinRegGetString (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
var
  Buf: Wijzer;
  BufSize: Hoofd;
begin
  Resultaat: = Vals;
  als RegGetValue (RootKey, Naam, REG_SZ, Buf, BufSize, Wow64) toen
  begin
    Dec (BufSize);
    SetLength (Waarde, BufSize);
    als BufSize > 0 toen
      CopyMemory (@Value [1], Buf, BufSize);
    FreeMem (Buf);
    Resultaat: = Waar;
  eind;
eind;

functie WinRegGetMultiString (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
var
  Buf: Wijzer;
  BufSize: Hoofd;
begin
  Resultaat: = Vals;
  als RegGetValue (RootKey, Naam, REG_MULTI_SZ, Buf, BufSize, Wow64) toen
  begin
    Dec (BufSize);
    SetLength (Waarde, BufSize);
    als BufSize > 0 toen
      CopyMemory (@Value [1], Buf, BufSize);
    FreeMem (Buf);
    Resultaat: = Waar;
  eind;
eind;

functie WinRegGetExpandString (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
var
  Buf: Wijzer;
  BufSize: Hoofd;
begin
  Resultaat: = Vals;
  als RegGetValue (RootKey, Naam, REG_EXPAND_SZ, Buf, BufSize, Wow64) toen
  begin
    Dec (BufSize);
    SetLength (Waarde, BufSize);
    als BufSize > 0 toen
      CopyMemory (@Value [1], Buf, BufSize);
    FreeMem (Buf);
    Resultaat: = Waar;
  eind;
eind;

functie WinRegGetDWORD (RootKey: HKEY; Naam: Koord; Var Waarde: Hoofd; Wow64: Van Boole): van Boole;
var
  Buf: Wijzer;
  BufSize: Hoofd;
begin
  Resultaat: = Vals;
  als RegGetValue (RootKey, Naam, REG_DWORD, Buf, BufSize, Wow64) toen
  begin
    CopyMemory (@Value, Buf, BufSize);
    FreeMem (Buf);
    Resultaat: = Waar;
  eind;
eind;

functie WinRegGetBinary (RootKey: HKEY; Naam: Koord; Var Waarde: Koord; Wow64: Van Boole): van Boole;
var
  Buf: Wijzer;
  BufSize: Hoofd;
begin
  Resultaat: = Vals;
  als RegGetValue (RootKey, Naam, REG_BINARY, Buf, BufSize, Wow64) toen
  begin
    SetLength (Waarde, BufSize);
    CopyMemory (@Value [1], Buf, BufSize);
    FreeMem (Buf);
    Resultaat: = Waar;
  eind;
eind;

eind.
Andere oplossingen  
 
programming4us programming4us