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用VC写的OPC客户端,写的还不错
我见过最好的Oracle数据库连接组件,性能和效率甚至比官方的高,最爽的是它不需要安装Oracle客户端即可连接数据库。赶快破解了献给大家,希望大家喜欢。使用方法:一、不用安装,直接使用破解文件夹中的组件,使用...
文件传输程序vc-服务端和客户端 文件传输程序vc-服务端和客户端 文件传输程序vc-服务端和客户端 文件传输程序vc-服务端和客户端
VC写的FTP客户端程序(可上传下载)
Visual C++写的telnet客户端程序
2.目录ftp客户端是一个比较简单的ftp程序,但是程序提供了各种接口,能够让读者看法出各种复杂的ftp程序,程序中的各个程序模块均已经实现; 以上所有程序在VC6.0中调试通过 系统平台是:Windows XP Professional
VC开发的WEBSERVICE客户端 VC开发的WEBSERVICE客户端 VC开发的WEBSERVICE客户端
OPC客户端程序在设计时需要遵守OPC数据访问规范,实现规范所规定的全部必需接口。同时,客户端模块需要有独立的设备连接界面和监控运行界面,并...下面详细介绍VC环境下的OPC客户端程序开发步骤,并给出关键源代码:
自己写的一个网络课程设计-FTP客户端程序,实现本地文件浏览和服务器端文件浏览、上传和下载、用户FTP和匿名FTP登陆、ASCII和Binary传输模式、Port和Passive连接模式,包括源程序和设计报告,有详细代码解释
自己写的VC操作oracle数据库的例子程序,用VC写程序操作oracle数据库的朋友可以参考。
VC TCP实例,客户端连接,读写文件,编译通过
一个简单的ftp客户端小程序,最开始用evc写的,为方便展示,工程改为vc工程。实现了文件的上传下载基本功能
VC6.0编程Socket(服务器+客户端)。非常简单的程序,对初次接触Socket编程的兄弟帮助很大,绝对可以直接使用。
用VC++ 6.0写的Telnet客户端
运用VC开发的OPC客户端
//声明CSNTPClient客户端类 client.RequestServer("210.72.145.44"); //调用类接口连接国家授时中心服务器210.72.145.44获取时间 //在XPSP2中VC6.0en版本中测试通过 //把RtlCopyMemory(&addrServer,hp->h_addr_...
与大家分享一个完整的VC FTP客户端程序源码,一个熟悉的FTP界面,窗口同样采用分栏框架式,可同时显示本地视图和远程视图,可显示上传与下载的进程。在设置好FTP远程服务器地址、帐号及登录信息后,即可连接远程FTP...
vc连接oracle数据库,使用Oracle提供的occi 代码中将连接类封装到了dll中
VC++平台上实现以太网通讯,包括VC_TCP_Server服务器端的实现和VC_TCP_Client客户端的实现,可供学习设计参考。
VC写的FTP客户端,支持上传和下载,供参考