PLSQL8.0自動載入器原始碼
// PLSQLConsoleLoader.cpp : PLSQL8.0自動載入器
//主要功能:保持PLSQL的試用期為30天不變.
//
// Author: Michael 2009-10-14
////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include
#include
using namespace std;
DWORD DeleteTree(HKEY RootKey, const char *pSubKey)
{
HKEY hKey;
DWORD nRet;
DWORD NameCnt,NameMaxLen;
DWORD KeyCnt,KeyMaxLen,MaxDateLen;
static char sFormat[256] = "";
strcat(sFormat, "----");
static int dwDeep = -1;
dwDeep++;
nRet=RegOpenKeyEx(RootKey,pSubKey,0,KEY_ALL_ACCESS,&hKey);
if(nRet!=ERROR_SUCCESS)
{
cout< return 0;
}
nRet = RegQueryInfoKey(hKey,NULL,NULL,NULL,&KeyCnt,&KeyMaxLen,NULL,&NameCnt,
&NameMaxLen,&MaxDateLen,NULL,NULL);
if(nRet == ERROR_SUCCESS)
{
for(int dwIndex = KeyCnt - 1; dwIndex >= 0; dwIndex--) //列舉鍵值
{
char sKeyName[256] = "";
RegEnumKey(hKey, dwIndex, sKeyName, sizeof(sKeyName));
HKEY hKeySub;
DWORD KeyCntSub;
char pSubKeyTemp[256] = "";
strcpy(pSubKeyTemp, pSubKey);
strcat(pSubKeyTemp, "");
strcat(pSubKeyTemp, sKeyName);
nRet = RegOpenKeyEx(RootKey,pSubKeyTemp,0,KEY_ALL_ACCESS,&hKeySub);
if(nRet == ERROR_SUCCESS)
{
nRet = RegQueryInfoKey(hKeySub,NULL,NULL,NULL,&KeyCntSub,&KeyMaxLen,NULL,&NameCnt,
&NameMaxLen,&MaxDateLen,NULL,NULL);
if(nRet == ERROR_SUCCESS)
{
if (KeyCntSub != 0)
{
DeleteTree(RootKey, pSubKeyTemp);
}
RegCloseKey(hKeySub);
}
}
// cout << sFormat << sKeyName << endl;
RegDeleteKey(RootKey ,pSubKeyTemp);
}
RegCloseKey(hKey);
}
// sFormat[strlen(sFormat) - 4] = 0;
if (dwDeep == 0)
{
RegDeleteKey(RootKey ,pSubKey);
}
return 0;
}
int main(int argc, char* argv[])
{
DeleteTree(HKEY_CURRENT_USER, "SoftwareAllround Automations");
DeleteTree(HKEY_CURRENT_USER, "SoftwareMicrosoftSecurity");
char chPath[301];
::GetCurrentDirectory(300,(LPTSTR)chPath);//得到當前目錄
char path[200]= "plsqldev.exe";
strcat(chPath,path);
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &pi, sizeof(pi) );
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
// Start the child process
if(CreateProcess(chPath, "", NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
else
{
cout< HANDLE hProcess = GetCurrentProcess();//get current process
TerminateProcess(hProcess,0); //close process
}
system("pause");
return 0;
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8700374/viewspace-1027839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 再看 Composer 自動載入原始碼原始碼
- Composer 自動載入原始碼解析原始碼
- Laravel 原始碼筆記 Composer 自動載入Laravel原始碼筆記
- 簡讀composer自動載入原始碼(個人筆記向)原始碼筆記
- JVM類載入器-原始碼分析JVM原始碼
- 直播app原始碼,登入時自動輸入密碼/自動記住密碼APP原始碼密碼
- SpringBoot原始碼解析-Bean的載入與自動化配置Spring Boot原始碼Bean
- 自動載入
- Thinkphp核心自動下載原始碼系統PHP原始碼
- TP5.1 原始碼窺探之類的自動載入機制原始碼
- JVM類載入器ClassLoader原始碼剖析JVM原始碼
- Abp 中 模組 載入及型別自動注入 原始碼學習筆記型別原始碼筆記
- Composer 自動載入
- 線上直播系統原始碼,實現翻頁載入、下拉滾動載入原始碼
- ThinkPHP5.1.x 框架原始碼分析 (三) [框架的靈魂] - Composer 自動載入PHP框架原始碼
- php 自動類載入類 composer.json 實現自動載入PHPJSON
- 短影片app原始碼,Vue3滾動載入APP原始碼Vue
- composer自動載入配置
- (十三)自動載入新模組
- PHP自動載入機制PHP
- ThinkPHP5.1.x 框架原始碼分析 (一) [框架的靈魂] - 類的自動載入初始PHP框架原始碼
- 自動載入的iframe高度自適應
- 直播系統原始碼,ViewPager載入大圖 左右滑動原始碼Viewpager
- plsql自動生成java原始碼SQLJava原始碼
- 直播系統原始碼,自動登入及記住密碼實現原始碼密碼
- ThinkPHP6 的自動載入PHP
- SpringBoot--自動載入Spring Boot
- PHP 類自動載入機制PHP
- 用python做youtube自動化下載器 程式碼Python
- 直播網站原始碼,安卓防止輸入框自動彈出網站原始碼安卓
- Java類載入原始碼閱讀Java原始碼
- VasSonic原始碼之並行載入原始碼並行
- php基礎,php自動載入的實現程式碼示例PHP
- 再讀Spring原始碼-Spring的啟動和載入Spring原始碼
- 2.3 spring5原始碼系列---內建的後置處理器PostProcess載入原始碼Spring原始碼
- JS輸入框郵箱自動提示(帶有demo和原始碼)JS原始碼
- AIX啟動自動載入檔案系統AI
- 初學 PHP 類的自動載入PHP