精华内容
下载资源
问答
  • 读写多字符的注册表项(REG_MULTI_SZ类型)例程.rar 读写多字符的注册表项(REG_MULTI_SZ类型)例程.rar 读写多字符的注册表项(REG_MULTI_SZ类型)例程.rar 读写多字符的注册表项(REG_MULTI_SZ类型)例程.rar ...
  • 完整版读写多字符的注册表项(REG_MULTI_SZ类型)例程.e.rar
  • REG_SZREG_EXPAND_SZ都是字符串。  但是  REG_SZ类型的值中使用%%引用的变量不会被解析。  REG_EXPAND_SZ类型的值中使用%%引用的变量会被解析。  使用C#来操作时。 SetValue(name, strValue, ...

    在WINDOWS下开发ORACLE程序,需要安装ORACLE的CLIENT.

    这个东东比较大.几百M.好在到10后 ORACLE推出了一个INSTANT CLIENT

    几十M搞定.这下方便了..可以直接打包.不过,要注册三个变量. TNS_ADMIN NLS_LANG PATH

     

    这中间,遇到两上问题..搞了一晚上.也真是WINDOWS下开发没经验..活该郁闷...

     

     

    1.注册表操作

    为了自动设置这三个变量...写了一小段程序.如下

     

    复制代码

     

    1 int get_app_path(char *path)
    2 {
    3 char buff[MAX_PATH];
    4
    5 memset(buff, 0, sizeof(buff));
    6 if (GetModuleFileName(NULL, buff, MAX_PATH) == 0)
    7 {
    8 return -1;
    9 }
    10 memcpy(path, buff, strlen(buff));
    11
    12 return 0;
    13 }
    14
    15  int reg_ora_client(const char *path)
    16 {
    17 HKEY hreg;
    18 char dir[MAX_PATH];
    19 char paths[4096];
    20 unsigned long size, len;
    21
    22 if (path == NULL || (len = strlen(path)) < 2)
    23 {
    24 return -1;
    25 }
    26
    27 len --;
    28 memset(dir, 0, sizeof(dir));
    29 strcpy(dir, path);
    30
    31 while (dir[len] == '\\')
    32 {
    33 dir[len --] = 0;
    34 }
    35
    36 if(RegOpenKey(HKEY_LOCAL_MACHINE, \
    37 "SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment", \
    38 &hreg) != ERROR_SUCCESS)
    39 {
    40 fprintf(stderr, "设置ORACLE环境 --- 无法打开键!\n");
    41 return -1;
    42 }
    43
    44 if (RegSetValueEx(hreg, "TNS_ADMIN", 0, REG_SZ, \
    45 (const unsigned char *)dir, strlen(dir)) != ERROR_SUCCESS)
    46 {
    47 fprintf(stderr, "设置ORACLE环境 --- 无法设置TNS_ADMIN!\n");
    48 RegCloseKey(hreg);
    49 return -1;
    50 }
    51
    52 size = 4096;
    53 memset(paths, 0, sizeof(paths));
    54
    55 if (RegQueryValueEx(hreg, "PATH", NULL, NULL, (unsigned char *)paths, &size) != ERROR_SUCCESS)
    56 {
    57 RegCloseKey(hreg);
    58 return -1;
    59 }
    60
    61 if (stristr(paths, dir) == NULL)
    62 {
    63 len = strlen(paths);
    64
    65 if (paths[-- len] != ';')
    66 {
    67 strcat(paths, ";");
    68 }
    69
    70 strcat(paths, dir);
    71
    72 if (RegSetValueEx(hreg, "PATH", 0, REG_EXPAND_SZ, \
    73 (const unsigned char *)paths, strlen(paths)) != ERROR_SUCCESS)
    74 {
    75 fprintf(stderr, "设置ORACLE环境 --- 无法设置PATH!\n");
    76 RegCloseKey(hreg);
    77 return -1;
    78 }
    79 }
    80
    81 if (RegSetValueEx(hreg, "NLS_LANG", 0, REG_SZ, \
    82 (const unsigned char *)"SIMPLIFIED CHINESE_CHINA.ZHS16GBK", 33) != ERROR_SUCCESS)
    83 {
    84 fprintf(stderr, "设置ORACLE环境 --- 无法设置NLS_LANG!\n");
    85 RegCloseKey(hreg);
    86 return -1;
    87 }
    88
    89 RegCloseKey(hreg);
    90 return 0;
    91 }
    92
    93
    94  int rdb_init()
    95 {
    96 char dir[MAX_PATH];
    97 char *p;
    98
    99 memset(dir, 0, sizeof(dir));
    100
    101 if (get_app_path(dir) == -1)
    102 {
    103 return -1;
    104 }
    105
    106 if ((p = strrchr(dir, '\\')) == NULL)
    107 {
    108 return -1;
    109 }
    110
    111 memset(p, 0, sizeof(dir) - (p - dir));
    112
    113 if (reg_ora_client(dir) == -1)
    114 {
    115 return -1;
    116 }
    117
    118 return 0;
    119 }

    复制代码

     

     

    这里面有一个宏为REG_EXPAND_SZ

    开始,我用的是REG_SZ...结果运行一次之后,VS2005不能编译了..报什么  生成 "cmd.exe"失败

    我晕倒...然后以为是VS2005出问题了...开始拿着报的错在网上狂找.

    于是不停的重启,重置环境变量,重写程序,放前面,放后面.放中间................

    过了很久. 我在CMD里奇怪的发现  PATH指令后输出的东西没有替换

    正常的为:

    PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\CodeBlocks-10.05\MinGW\bin

     

    而运行程序后变成了:

    PATH=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;D:\CodeBlocks-10.05\MinGW\bin

     

    于是觉得问题不是出在VS2005上..应该跟我动过注册表有关.

    最后还是从CSDN论坛上搜到一个答案..

    值类型为REG_EXPAND_SZ时,表明这是一个扩展字符串,可被替换..否则 不能被替换...

    把程序里改为REG_EXPAND_SZ.....一切正常..

    被这个操蛋的问题折磨了两天,还是外国人屌一点。 
    一下子就搞明白了。 
    REG_SZ和REG_EXPAND_SZ都是字符串。 
    但是 
    REG_SZ类型的值中使用%%引用的变量不会被解析。 
    REG_EXPAND_SZ类型的值中使用%%引用的变量会被解析。 
    使用C#来操作时。

    SetValue(name, strValue, RegistryValueKind.ExpandString);1

    ExpandString指的就是REG_EXPAND_SZ的意思
    --------------------- 
    作者:Biegral 
    来源:CSDN 
    原文:https://blog.csdn.net/biegral/article/details/46044317 
    版权声明:本文为博主原创文章,转载请附上博文链接!

     

    2. 所用INSTANT CLIENT版本为   instantclient-basic-win32-10.2.0.4.zip

    看了下,有个更小的..说什么,提供最基本的运行时...一时高兴下之(我不用SQLPLUS)instantclient-basiclite-win32-10.2.0.4.zip

     

    两个包,里面主要差别在一个DLL上.当然了,大的包括的肯定多一些,小的少一些.

    我不用其它功能,当然是用小的了...从没有想过,ORACLE提供的东西,也可能不对..........................

    开始不停的报错..找了好久..涉及前面注册表那个问题...乱在了一起...

    等注册表搞定后..换了几个DLL...发现..大的好用..一换成小的..就报什么VS2005的运行时错..

     

    猜可能的原因.. 1ORACLE提供的DLL是用其它版本的VS出来的.  2需要更多的环境变量来描述它.  3还是自己菜 

     

    不管怎么样..大就大点吧...能过就行...呵呵

    展开全文
  • 一个简单的demo,针对注册表reg_multi_sz类型的数据进行读写
  • 读写多字符的注册表项(REG_MULTI_SZ类型)例程.e.rar 读写多字符的注册表项(REG_MULTI_SZ类型)例程.e.rar 读写多字符的注册表项(REG_MULTI_SZ类型)例程.e.rar 读写多字符的注册表项(REG_MULTI_SZ类型)例程...
  • 读取REG_SZ类型的注册表键值 1 // 读取 REG_SZ 类型键值的代码 2 3 HKEY hKey = NULL; 4 DWORD dwSize = 0; 5 DWORD dwDataType = 0; 6 LPBYTE lpValue = NULL; 7 LPCTSTR const lpValueName = _...
    1. 读取REG_SZ 类型的注册表键值

       1 // 读取 REG_SZ 类型键值的代码
       2 
       3 HKEY  hKey       = NULL;
       4 DWORD dwSize     = 0;
       5 DWORD dwDataType = 0;
       6 LPBYTE lpValue   = NULL;
       7 LPCTSTR const lpValueName = _T("TcpPort");
       8 
       9 LONG lRet = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
      10    _T("SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer\\SuperSocketNetLib\\Tcp"),
      11    0,
      12    KEY_QUERY_VALUE,
      13    &hKey);
      14 if(ERROR_SUCCESS != lRet)
      15 {
      16    // Error handling (see this FAQ)
      17    // return;
      18 }
      19 // Call once RegQueryValueEx to retrieve the necessary buffer size
      20 ::RegQueryValueEx(hKey, 
      21    lpValueName,
      22    0,
      23    &dwDataType,
      24    lpValue,  // NULL
      25    &dwSize); // will contain the data size
      26 
      27 // Alloc the buffer
      28 lpValue = (LPBYTE)malloc(dwSize);
      29 
      30 // Call twice RegQueryValueEx to get the value
      31 lRet = ::RegQueryValueEx(hKey, 
      32    lpValueName,
      33    0,
      34    &dwDataType,
      35    lpValue,
      36    &dwSize);
      37 ::RegCloseKey(hKey);
      38 if(ERROR_SUCCESS != lRet)
      39 {
      40    // Error handling
      41    // return;
      42 }
      43 // Enjoy of lpValue...
      44 cout << "port ----------------------- " << lpValue << endl;
      45 
      46 // free the buffer when no more necessary
      47 free(lpValue);
      48 
      49 // 此段代码来源:http://forums.codeguru.com/showthread.php?247020-Windows-SDK-Registry-How-can-I-read-data-from-the-registry&s=
      View Code

       

    2. 读取REG_DWORD 类型的注册表键值

       1 // 读取 REG_DWORD 类型的注册表键值代码
       2 
       3 long lRet;
       4 HKEY hKey;
       5 DWORD port;
       6 DWORD dwType = REG_DWORD;
       7 DWORD dwValue;
       8 lRet = RegOpenKeyEx(
       9            HKEY_LOCAL_MACHINE,
      10            "SOFTWARE\\Microsoft\\MSSQLServer\\Client\\SuperSocketNetLib\\Tcp",
      11            0,
      12            KEY_QUERY_VALUE,
      13            &hKey
      14        );    //打开注册表
      15 if(lRet == ERROR_SUCCESS)//读操作成功
      16 {
      17     lRet = RegQueryValueEx(
      18                hKey,
      19                "DefaultPort",
      20                0,
      21                &dwType,
      22                (LPBYTE)&port,
      23                &dwValue
      24            );    //如果打开成功,则读
      25     if(lRet == ERROR_SUCCESS)
      26     {
      27         printf("\n打开成功,则读:");
      28         cout << "DefaultPort: " << port << endl;
      29         //mcfile << "DefaultPort: " << port << endl;
      30         mcfile << "<port>" << port << "</port>" << endl;
      31     }
      32     //以下是读取失败
      33     else
      34     {
      35         printf("\n读取失败:");
      36     }
      37 
      38 }
      39 //以下是打开失败
      40 else
      41 {
      42     printf("\n打开失败:");
      43 }
      44 RegCloseKey(hKey);//记住,一定要关闭
      View Code

       

    3. 读取REG_MULTI_SZ 类型的注册表键值

        1 #include "windows.h"
        2 #include "tchar.h"
        3 #include "conio.h"
        4 #include "stdio.h"
        5 
        6 #define MY_KEY _T("PathToMyRegistryKey\\MyRegistryKey") // Registry key
        7 #define MY_VALUES _T("NameOfTheREG_MULTI_SZListOfValues") // Registry values
        8 #define NEW_VALUE _T("MyNewValue") // New value
        9 #define FIND_VALUE _T("AnExistingValue") // We will insert the new value after this one
       10 
       11 int _tmain(int argc, _TCHAR* argv[])
       12 {
       13     LONG lResult = 0;
       14     HKEY hKey = NULL;
       15     LPTSTR lpValues = NULL;
       16     LPTSTR lpValue = NULL;
       17     LPTSTR lpNewValues = NULL;
       18     LPTSTR lpNewValue = NULL;
       19     DWORD cbValues = 0;
       20     DWORD cbNewValues = 0;
       21     DWORD cbNewValue = 0;
       22     BOOL bFound = FALSE;
       23 
       24     __try 
       25     {
       26         // OPEN THE REGISTRY KEY
       27         //
       28         _tprintf(_T("RegOpenKeyEx..."));
       29         lResult = RegOpenKeyEx(
       30             HKEY_LOCAL_MACHINE, 
       31             MY_KEY, 
       32             0,
       33             KEY_ALL_ACCESS,
       34             &hKey
       35         );
       36         if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; } 
       37         _tprintf(_T("SUCCESS\n"));
       38 
       39         // READ THE REG_MULTI_SZ VALUES
       40         //
       41         // Get size of the buffer for the values
       42         _tprintf(_T("RegQueryValueEx..."));
       43         lResult = RegQueryValueEx(
       44             hKey,
       45             MY_VALUES,
       46             NULL,
       47             NULL,
       48             NULL,
       49             &cbValues
       50         );
       51         if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; } 
       52         _tprintf(_T("SUCCESS\n"));
       53 
       54         // Allocate the buffer
       55         _tprintf(_T("malloc..."));
       56         lpValues = (LPTSTR)malloc(cbValues);
       57         if (NULL == lpValues) { _tprintf(_T("ERROR 0x%x\n"), GetLastError()); return 1; } 
       58         _tprintf(_T("SUCCESS\n"));
       59 
       60         // Get the values
       61         _tprintf(_T("RegQueryValueEx..."));
       62         lResult = RegQueryValueEx(
       63             hKey,
       64             MY_VALUES, 
       65             NULL,
       66             NULL,
       67             (LPBYTE)lpValues,
       68             &cbValues
       69         );
       70         if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; } 
       71         _tprintf(_T("SUCCESS\n"));
       72 
       73         // SHOW THE VALUES
       74         //
       75         _tprintf(_T("\n**************************\n"));
       76         _tprintf(_T("OLD VALUES\n"));
       77         _tprintf(_T("**************************\n\n"));
       78         lpValue = lpValues;
       79         for (; '\0' != *lpValue; lpValue += _tcslen(lpValue) + 1)
       80         {
       81             // Show one value
       82             _tprintf(_T("%s\n"), lpValue);
       83         }
       84         _tprintf(_T("\n**************************\n\n"));
       85 
       86         // INSERT A NEW VALUE AFTER A SPECIFIC VALUE IN THE LIST OF VALUES
       87         //
       88         // Allocate a new buffer for the old values plus the new one
       89         _tprintf(_T("malloc..."));
       90         cbNewValue = (_tcslen(NEW_VALUE) + 1) * sizeof(TCHAR);
       91         cbNewValues = cbValues + cbNewValue;
       92         lpNewValues = (LPTSTR)malloc(cbNewValues);
       93         if (NULL == lpNewValues) { _tprintf(_T("ERROR 0x%x\n"), GetLastError()); return 1; } 
       94         _tprintf(_T("SUCCESS\n"));        
       95 
       96         // Find the value after which we will insert the new one
       97         lpValue = lpValues;
       98         lpNewValue = lpNewValues;
       99         bFound = FALSE;
      100         for (; '\0' != *lpValue; lpValue += _tcslen(lpValue) + 1)
      101         {
      102             // Copy the current value to the target buffer
      103             memcpy(lpNewValue, lpValue, (_tcslen(lpValue) + 1) * sizeof(TCHAR));
      104 
      105             if (0 == _tcscmp(lpValue, FIND_VALUE))
      106             {
      107                 // The current value is the one we wanted to find
      108                 bFound = TRUE;
      109 
      110                 // Copy the new value to the target buffer
      111                 lpNewValue += _tcslen(lpValue) + 1;
      112                 memcpy(lpNewValue, NEW_VALUE, (_tcslen(NEW_VALUE) + 1) * sizeof(TCHAR));
      113                 lpNewValue += _tcslen(NEW_VALUE) + 1;
      114             }
      115             else
      116             {
      117                 // This is not the value we want, continue to the next one
      118                 lpNewValue += _tcslen(lpValue) + 1;
      119             }
      120         }
      121         if (!bFound) 
      122         { 
      123             // We didn't find the value we wanted. Insert the new value at the end
      124             memcpy(lpNewValue, NEW_VALUE, (_tcslen(NEW_VALUE) + 1) * sizeof(TCHAR));
      125             lpNewValue += _tcslen(NEW_VALUE) + 1;
      126         }
      127         *lpNewValue = *lpValue;
      128 
      129         // SHOW THE NEW VALUES
      130         //
      131         _tprintf(_T("\n**************************\n"));
      132         _tprintf(_T("NEW VALUES\n"));
      133         _tprintf(_T("**************************\n\n"));
      134         lpNewValue = lpNewValues;
      135         for (; '\0' != *lpNewValue; lpNewValue += _tcslen(lpNewValue) + 1)
      136         {
      137             // Show one value
      138             _tprintf(_T("%s\n"), lpNewValue);
      139         }
      140         _tprintf(_T("\n**************************\n\n"));
      141 
      142         // WRITE THE NEW VALUES BACK TO THE KEY
      143         //
      144         _tprintf(_T("RegSetValueEx..."));
      145         lResult = RegSetValueEx(
      146             hKey,
      147             MY_VALUES, 
      148             NULL,
      149             REG_MULTI_SZ,
      150             (LPBYTE)lpNewValues,
      151             cbNewValues
      152         );
      153         if (ERROR_SUCCESS != lResult) { _tprintf(_T("ERROR 0x%x\n"), lResult); return 1; } 
      154         _tprintf(_T("SUCCESS\n"));
      155     }
      156     __finally
      157     {
      158         // Clean up    
      159         //
      160         if (NULL != lpValues) { free(lpValues); }
      161         if (NULL != lpNewValues) { free(lpNewValues); }
      162         if (NULL != hKey) { RegCloseKey(hKey); }
      163 
      164         //_tprintf(_T("\n<<PRESS ANY KEY>>\n"));
      165         //_getch();
      166     }
      167 
      168     return 0;
      169 }
      170 
      171 // 此模板来自http://blogs.msdn.com/b/alejacma/archive/2009/11/12/how-to-manipulate-reg-multi-sz-values-from-the-registry-c.aspx
      View Code

       

     

     

     

     

     

    转载于:https://www.cnblogs.com/duanguyuan/p/4320604.html

    展开全文
  • REG_SZ类型的键值中存在的可扩展占位符%xxx%不会被系统解释; REG_EXPAND_SZ类型的键值中存在的%xxx%的部分会被系统解释。
    REG_SZ类型的键值中存在的可扩展占位符%xxx%不会被系统解释;
    REG_EXPAND_SZ类型的键值中存在的%xxx%的部分会被系统解释。
    展开全文
  • 如下图所示,注册表的HKEY_CURRENT_USER主键下Software\\AB子键中有名称为CD,类型为REG_SZ,值为“123”的字符串 一开始我是通过下面的程序来获取名称为CD的字符串的值 #include <stdio.h> #include...

    如下图所示,注册表的HKEY_CURRENT_USER主键下Software\\AB子键中有名称为CD,类型为REG_SZ,值为“123”的字符串

     

    一开始我是通过下面的程序来获取名称为CD的字符串的值

    #include <stdio.h>
    #include <windows.h>
    #include <windef.h>
    #include <winreg.h>
    #include <algorithm>
    #include <string>
    
    using namespace std;
    
    
    int main()
    {
    	HKEY hKey;
    	LPCTSTR lpSubKey = TEXT("Software\\AB");
    	char wText[100] = { 0 };
    	DWORD dwSize = sizeof(wText);
    	DWORD dwType = REG_SZ;
    
    	RegOpenKeyEx(HKEY_CURRENT_USER, lpSubKey, NULL, KEY_READ, &hKey);
    	RegQueryValueEx(hKey, TEXT("CD"), NULL, &dwType, (LPBYTE)&wText, &dwSize);
    	RegCloseKey(hKey);
    
    	printf("%s\n", wText);
    	getchar();
    
    	return 0;
    }

     

    本来预期程序会打印CD的值“123”,结果程序输出如下,只打印了最前面的一个字符出来

     

    导致该问题的原因是wText得为WCHAR类型,不能为char类型。把程序更改为如下所示:

    #include <stdio.h>
    #include <windows.h>
    #include <windef.h>
    #include <winreg.h>
    #include <algorithm>
    #include <string>
    
    using namespace std;
    
    
    int main()
    {
    	HKEY hKey;
    	LPCTSTR lpSubKey = TEXT("Software\\AB");
    	TCHAR wText[100] = { 0 };
    	DWORD dwSize = sizeof(wText);
    	DWORD dwType = REG_SZ;
    
    	RegOpenKeyEx(HKEY_CURRENT_USER, lpSubKey, NULL, KEY_READ, &hKey);
    	RegQueryValueEx(hKey, TEXT("CD"), NULL, &dwType, (LPBYTE)&wText, &dwSize);
    	RegCloseKey(hKey);
    
    	printf("%ls\n", wText);
    	getchar();
    
    	return 0;
    }

     

    重新编译,运行,可以看到获取到注册表中正确的值了:

    展开全文
  • 操作注册表REG_SZREG_EXPAND_SZ的区别

    千次阅读 2015-05-27 11:22:47
    REG_SZREG_EXPAND_SZ都是字符串。 但是 REG_SZ类型的值中使用%%引用的变量不会被解析。 REG_EXPAND_SZ类型的值中使用%%引用的变量会被解析。 使用C#来操作时。SetValue(name, strValue, RegistryValueKind....
  • 1.注册表REG_MULTI_SZ类型值的读取; 2.共享文件的读取; 3.共享文件的取消; 4.共享标志的更新(共享取消以后).
  • if (RegOpenKeyEx(HKEY_CURRENT_USER, szSubKey, REG_OPTION_OPEN_LINK, KEY_ALL_ACCESS, &hk) != ERROR_SUCCESS) { AfxMessageBox(_T("打开注册表失败")); return; } CString szItemName = _T(...
  • 分别用RegRead()和wmi两种方法来读取注册表中REG_MULTI_SZ类型数值并显示的演示代码
  • Error := RegSetValueExA (CurrentKey, PAnsiChar(valueName), 0, REG_MULTI_SZ, @aBytes[0], aTotalCount); if Error <> ERROR_SUCCESS then Windows.OutputDebugString(PChar(Format('WriteStringsA.error=%d, %...
  • REG_SZ REG_SZ 在注册表中,REG_SZ,是一种字符串类型,代表一个简单的文本字符串,是最常见的一种数据类型。 其中“SZ”是“String Zero”的缩写,匈牙利命名法,表示null结尾的字符串变量。  注:REG_SZ型...
  • #include #include #include #pragma comment(lib,"shlwapi.lib") using namespace std; ...inline BYTE CharToBin(TCHAR ch) ... RegWrite(HKEY_LOCAL_MACHINE,"SOFTWARE//aaaa//","d",REG_SZ,"asdfgh",0); }
  • 完整版读写多字符的注册表项(REG_MULTI_SZ类型)例程.rar
  • REG_MULTI_SZ ) 12 { 13 vector< char > temp(size); 14 15 if ( RegQueryValueExA( 16 your_key, // HKEY 17 TEXT( " ValueName " ), 18 NULL, 19 NULL, 20 reinterpret_cast(&temp...
  • 原文:http://hi.baidu.com/pwcrab/blog/item/8fce6003ef4396e808fa9394.html我们的程序运行时需要设置... 调查发现原因如下:注册表中有两种类型的键: REG_SZ REG_EXPAND_SZ如果上面一种键的值中存在可扩展占位符%xx
  • Use urllib to login in to the Netgear router import urllib user = 'admin' pwd = 'LlQ54951' host = '192.168.1.1' ... passman = urllib.request.HTTPPasswordMgrWithDefaultRealm() passman.add_password(None...
  • procedure WriteREG_MULTI_SZ(const Name, Value: string; const Registry: TRegistry); var p, buffer: PChar; i: Integer; Size: DWORD; aStrings: TStringList; begin Size := 0; ...
  • regedit 注册表里面的reg_sz     1. 可以判断出是unicode编码1 2. 有下面分割ucs2 大头小偷编码1 3. 使用小偷编码测试1 4. 注册表里面的reg_dword读取2   1. 可以判断出是unicode编码   byte[]...
  • 在官方论坛找到了这个插件,传上来共享,这个插件不错,支持很多类型的键值的读取和写入,真的非常不错,对于经常跟注册表打交道的汉化软件安装... 引用来自 Untitled01,2006-5-13 2:36:24OutFile "REG_MULTI_SZ_writer
  •  数据读取出来后后边有很多乱码.RegSetValueEx(hKey, _T("Open"), 0, REG_SZ, (BYTE *)szValue, _tcslen(szValue) * sizeof(TCHAR) );原来是注册表中存字符串数据也得带着那个0;所以正确做法应该这样:RegSetValueE
  • 支持转换类型:#REG_SZ,#REG_EXPAND_SZ,#REG_DWORD,#REG_MULTI_SZ,#REG_BINARY,#REG_QWORD支持删除类型:注册项,注册键 调用精易"注册表操作Ex"类,兼容X64的路径,写入不会错位. 满足大多数需求,还有特殊的没有写,也...
  • windows内网

    2021-09-14 21:06:08
    /v Pentestlab /t REG_SZ /d "C:\Users\pentestlab\pentestlab.exe" reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices" /v Pentestlab /t REG_SZ /d "C:\Users\pentestlab\...
  • BAT批处理文件 reg命令详解

    千次阅读 2019-04-24 09:02:35
    我们在cmd键入 “REG /?” 了解用法信息。 REG Operation [Parameter List] Operation [ QUERY | ADD | DELETE | COPY |SAVE | LOAD | UNLOAD | RESTORE |COMPARE | EXPORT | IMPORT | FLAGS ] 返回代码: (除了 REG ...
  • windows权限维持的方法

    千次阅读 2022-01-04 09:59:59
    /VE /T REG_SZ /D "C:\test.dll" /FREG ADD "HKEY_CURRENT_USER\Software\Classes\CLSID\{11111111-1234-1234-1234-111111111111}\InProcServer32" /V ThreadingModel /T REG_SZ /D Apartment /F 配置全局环境变量,...
  • 注册表添加 reg add 操作说明

    千次阅读 2017-08-23 09:11:00
    [ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ | REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ] 如果忽略,则采用 REG_SZ。  /s 指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符 如果忽略,则将 "\0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,253
精华内容 8,901
关键字:

reg_sz