So this my contribution, and what i think to be the best way to get the oracle client version programaticalyaly..
Note: No error checking done here..
c#:
//Load oracle
lp_oci_dll = LoadLibraryExA("oci.dll", IntPtr.Zero, 8);
//Gets the path of oci.dll
System.Text.StringBuilder ls_buffer = new System.Text.StringBuilder(1024);
GetModuleFileNameA(lp_oci_dll, ls_buffer, 1024);
//Get oracle version
FileVersionInfo l_file_info = FileVersionInfo.GetVersionInfo(ls_buffer.ToString());
ls_ret = l_file_info.FileVersion;