`

用VC给Oracle的即时客户端(InstanceClient)写个安装设置程序

阅读更多

Oracle 出了个即时客户端,设置三个环境变量就可以用了,也不大。

为了更加方便使用,我写了个程序,放在即时客户端目录里,运行一下就把三个环境变量设好了。很方便。

程序也不难,核心代码贴一下。

// OraSetup.cpp : 定义应用程序的类行为。

//



#include "stdafx.h"

#include "OraSetup.h"

#include "OraSetupDlg.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#endif





// COraSetupApp



BEGIN_MESSAGE_MAP(COraSetupApp, CWinApp)

	ON_COMMAND(ID_HELP, &CWinApp::OnHelp)

END_MESSAGE_MAP()





// COraSetupApp 构造



COraSetupApp::COraSetupApp()

{

	// TODO: 在此处添加构造代码,

	// 将所有重要的初始化放置在 InitInstance 中

}





// 唯一的一个 COraSetupApp 对象



COraSetupApp theApp;

CString COraSetupApp::GetMyPath()

{

	CString strPath;

	GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);

	strPath.ReleaseBuffer();

	return strPath;

}

BOOL COraSetupApp::SetEnv(CString key,CString value,BOOL bAppend)

{

	HKEY hRegKey;

	BOOL bResult=FALSE;

	CString str=_T("SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment");

	if(::RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS) 

		bResult=FALSE;

	else

	{

		if(bAppend){

			CString oldValue=_T("");

			DWORD size;

			::RegQueryValueEx(hRegKey,key,NULL,NULL,(BYTE *)oldValue.GetBuffer(1024),&size);

			oldValue.ReleaseBuffer();

			if(oldValue.Find(value)!=-1){

				//已经写过

				return TRUE;

			}

			value = value+_T(";")+oldValue;

		}

		bResult=(::RegSetValueEx( hRegKey,

			key,

			0,

			REG_SZ,

			(CONST BYTE *)value.GetBuffer(0),

			value.GetLength()*sizeof(TCHAR) ) != ERROR_SUCCESS);

	}		

	return bResult;

}



// COraSetupApp 初始化



BOOL COraSetupApp::InitInstance()

{

	// 如果一个运行在 Windows XP 上的应用程序清单指定要

	// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,

	//则需要 InitCommonControlsEx()。否则,将无法创建窗口。

	INITCOMMONCONTROLSEX InitCtrls;

	InitCtrls.dwSize = sizeof(InitCtrls);

	// 将它设置为包括所有要在应用程序中使用的

	// 公共控件类。

	InitCtrls.dwICC = ICC_WIN95_CLASSES;

	InitCommonControlsEx(&InitCtrls);



	CWinApp::InitInstance();



	// 标准初始化

	// 如果未使用这些功能并希望减小

	// 最终可执行文件的大小,则应移除下列

	// 不需要的特定初始化例程

	// 更改用于存储设置的注册表项

	// TODO: 应适当修改该字符串,

	// 例如修改为公司或组织名

	SetRegistryKey(_T("应用程序向导生成的本地应用程序"));



	CString path = GetMyPath();

	TCHAR driver[255],dir[255];



	_tsplitpath(path.GetBuffer(0),driver,dir,NULL,NULL);

	path.ReleaseBuffer();



	//去年最后的

	//我看人家的都不放



	path = driver;

	path += dir;

	path = path.TrimRight(_T("\\"));



	SetEnv(_T("TNS_ADMIN"), path);

	SetEnv(_T("Path"), path,TRUE);

	SetEnv(_T("NLS_LANG"), _T("SIMPLIFIED CHINESE_CHINA.ZHS16GBK"));



	return FALSE;

	/*

	COraSetupDlg dlg;

	m_pMainWnd = &dlg;

	INT_PTR nResponse = dlg.DoModal();

	if (nResponse == IDOK)

	{

	// TODO: 在此处放置处理何时用“确定”来关闭

	//  对话框的代码

	}

	else if (nResponse == IDCANCEL)

	{

	// TODO: 在此放置处理何时用“取消”来关闭

	//  对话框的代码

	}



	// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,

	//  而不是启动应用程序的消息泵。

	return FALSE;

	*/

}
下载请到我的网络硬盘。
分享到:
评论

相关推荐

    VC写的telnet客户端程序

    标题中的"VC写的telnet客户端程序"指的是使用Microsoft Visual C++这一集成开发环境(IDE)编写的基于Telnet协议的客户端应用程序。Telnet是一种网络协议,允许用户通过网络远程登录到另一台计算机,进行交互式的...

    VC 操作oracle数据的例子程序

    在这个场景中,我们有一个名为"VC 操作oracle数据的例子程序"的项目,它展示了如何使用Visual C++(VC)与Oracle数据库进行交互。Oracle数据库是一个功能强大的关系型数据库管理系统,广泛应用于企业级应用中,而VC...

    Oracle 数据库连接组件 不需要Oracle客户端

    我见过最好的Oracle数据库连接组件,性能和效率甚至比官方的高,最爽的是它不需要安装Oracle客户端即可连接数据库。赶快破解了献给大家,希望大家喜欢。使用方法:一、不用安装,直接使用破解文件夹中的组件,使用...

    文件传输程序vc-服务端和客户端

    文件传输程序vc-服务端和客户端 文件传输程序vc-服务端和客户端 文件传输程序vc-服务端和客户端 文件传输程序vc-服务端和客户端

    VC环境下OPC客户端程序设计

    在VC环境下设计OPC客户端程序,开发者需要遵循OPC数据访问规范,这涉及到一系列的步骤和接口实现。OPC客户端程序通常需要具备独立的设备连接界面,用于选择和配置连接到的OPC服务器,以及一个监控运行界面,用于实时...

    VC写的FTP客户端程序(可上传下载)

    VC写的FTP客户端程序(可上传下载)

    vc FTP 服务器和客户端程序

    2.目录ftp客户端是一个比较简单的ftp程序,但是程序提供了各种接口,能够让读者看法出各种复杂的ftp程序,程序中的各个程序模块均已经实现; 以上所有程序在VC6.0中调试通过 系统平台是:Windows XP Professional

    VC开发的WEBSERVICE客户端

    在本主题中,我们将深入探讨如何使用Visual C++(简称VC)来开发Web Service的客户端。 1. **Web Service基本概念** - **SOAP (Simple Object Access Protocol)**:是Web Service通信的核心,是一种轻量级的协议,...

    客户程序源码VC用VC写的OPC客户端

    标题中的“客户程序源码VC用VC写的OPC客户端”表明这是一个使用Microsoft Visual C++(简称VC)开发的OPC(OLE for Process Control)客户端应用程序的源代码。OPC是一种工业自动化领域的通信标准,它允许不同的软件...

    VC 几种连接ORACLE的方法

    在IT行业中,Visual C++(简称VC)是一种广泛使用的C++编程环境,它允许开发者创建高性能的应用程序。ORACLE则是一种强大的关系型数据库管理系统,被众多企业和组织用于存储和管理大量数据。当需要在VC应用中与...

    用VC写的Telnet客户端

    标题中的“用VC写的Telnet客户端”指的是使用Microsoft Visual C++ 6.0(简称VC++ 6.0)开发的一个应用程序,该程序允许用户通过TCP/IP协议与远程服务器进行交互,实现Telnet功能。Telnet是一种网络协议,用于提供...

    FTP客户端程序--VC

    自己写的一个网络课程设计-FTP客户端程序,实现本地文件浏览和服务器端文件浏览、上传和下载、用户FTP和匿名FTP登陆、ASCII和Binary传输模式、Port和Passive连接模式,包括源程序和设计报告,有详细代码解释

    VC++平台上实现以太网通讯,包括VC-TCP-Server服务器端的实现和VC-TCP-Client客户端的实现.zip

    本文将详细讨论在VC++平台上实现以太网通讯的方法,主要聚焦于VC-TCP-Server服务器端和VC-TCP-Client客户端的实现。 首先,我们要理解TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。...

    VC6访问Oracle数据库

    首先,确保你的系统已经安装了Oracle的客户端组件,包括Oracle ODBC驱动程序和OCI库。这些组件通常包含在Oracle Instant Client包中,可以从Oracle官方网站下载。 1. **设置ODBC数据源**: 使用ODBC数据源管理器...

    VC TCP实例,客户端连接,读写文件,编译通过

    接下来,我们将讨论如何在VC环境中创建TCP客户端程序。首先,包含必要的头文件如`winsock2.h`和`ws2tcpip.h`,并链接相应的库`libws2_32.lib`。然后,初始化Winsock库,调用`WSAStartup()`函数,并在程序结束时调用`...

    VC编制Socket客户端

    本文将深入探讨如何使用Microsoft Visual C++(简称VC)来编制一个Socket客户端。Socket,也被称为套接字,是网络上的两个进程间通信的一个端点,它允许数据在网络中传输。在Windows平台上,VC提供了一个强大的开发...

    即时聊天程序(VC客户端+Linux服务器)

    此外,考虑到“LittleIM”这个文件名,这可能是客户端程序的可执行文件或者项目名称。如果这是一个完整的项目,那么除了源代码外,可能还包括编译脚本、配置文件、资源文件等。在部署时,服务器端需要在Linux环境下...

    vc6.0 聊天 服务器 客户端

    本项目名为“vc6.0 聊天 服务器 客户端”,显然它是一个使用Visual C++ 6.0(简称VC6.0)编写的简单聊天应用示例。这个项目对于初学者来说是一个很好的起点,因为它涵盖了网络编程的基础概念,包括客户端-服务器架构...

    vc FTP 客户端小程序

    一个简单的ftp客户端小程序,最开始用evc写的,为方便展示,工程改为vc工程。实现了文件的上传下载基本功能

    VC写的FTP客户端

    在这个场景中,"VC写的FTP客户端"指的是使用Microsoft Visual C++(简称VC)编程语言开发的一个应用程序,它实现了FTP协议,允许用户与FTP服务器进行交互,执行文件的上传和下载操作。 FTP客户端的核心功能包括: ...

Global site tag (gtag.js) - Google Analytics