Важная информация
Показано с 1 по 2 из 2

Тема: Работа с реестром и открытие базы данных msaccess 2007 указаным exe'шником msaccess 2007 или старше

  1. #1 Работа с реестром и открытие базы данных msaccess 2007 указаным exe'шником msaccess 2007 или старше 
    Новичок
    Регистрация
    19.04.2013
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Есть следующая задача: Необходимо запустить exe 2007-го access'a так чтобы он открыл необходимую базу данных (путь к файлу базы данных известен за ранее). А вот путь к exe'шнику access'a нужно выудить из данных системы, я нашёл в реестре в HKEY_LOACAL_MACHINE/SOFTWARE/Microsoft/Windows/CurentVersion/Uninstall два необходимых мне ключа: DisplayName и InstallLocation, но их надо как то нормально прочитать, потом записать это в строки и проанализировать проще простого, но встаёт так же вопрос как потом запустить exe из найденого пути с такими параметрами, чтобы запустилась ещё и база данных.
    Пока код примерно такой:
    #include <Windows.h>
    #include <stdio.h>
    #include <ShellAPI.h>
    void main()
    {
    DWORD dwIndexDisplay = 0;
    DWORD dwIndexInstall = 0;
    LONG ret;
    DWORD cbNameDisplay = 256;
    DWORD cbNameInstall = 256;
    TCHAR szSubKeyNameDisplay [256];
    TCHAR szSUBKeyNameInstall [256];
    char szDisplayName [256];
    char szInstallLocation [256];
    DWORD dwSizeName;
    DWORD dwSizeInstall;
    DWORD dwTypeDisplay;
    DWORD dwTypeInstall;
    HKEY hKey;
    LPCTSTR s = L"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall";
    LPCTSTR d = L"DisplayName";
    LPCTSTR i = L"InstallLocation";
    LPCTSTR e;
    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, s ,0,KEY_READ, &hKeyDisplay) != ERROR_SUCCESS) return;
    while ((ret = RegEnumKeyEx(hKeyDisplay, dwIndexDisplay, szSubKeyNameDisplay, &cbNameDisplay, NULL, NULL, NULL, NULL)) != ERROR_NO_MORE_ITEMS)
    {
    if (lRet != ERROR_SUCCESS)
    continue;
    HKEY hItem;
    if (RegOpenKeyEx(hKey, szSubKeyNameDisplay, 0, KEY_READ, &hItem) != ERROR_SUCCESS)
    continue;
    dwSizeName = sizeof(szDisplayName);
    dwSizeInstall = sizeof(szInstallLocation);

    if (RegQueryValueEx(hItem, d, NULL, &dwTypeDisplay, (LPBYTE)&szDisplayName, &dwSizeName) == ERROR_SUCCESS)
    if (szDisplayName == "Microsoft Office 2013")
    if (RegQueryValueEx(hItem, i, NULL, &dwTypeInstall, (LPBYTE)&szInstallLocation, &dwSizeInstall) == ERROR_SUCCESS);
    e = (LPCTSTR)szInstallLocation;
    }
    }
    Ответить с цитированием  
     

  2. #2 понял что как делал не катит, теперь буду псать через WinAPI и .NET 
    Новичок
    Регистрация
    19.04.2013
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Есть следующая задача: Необходимо запустить exe 2007-го access'a так чтобы он открыл необходимую базу данных (путь к файлу базы данных известен за ранее). А вот путь к exe'шнику access'a нужно выудить из данных системы, я нашёл в реестре в HKEY_LOACAL_MACHINE/SOFTWARE/Microsoft/Windows/CurentVersion/Uninstall два необходимых мне ключа: DisplayName и InstallLocation, но их надо как то нормально прочитать, потом записать это в строки и проанализировать проще простого, но встаёт так же вопрос как потом запустить exe из найденого пути с такими параметрами, чтобы запустилась ещё и база данных.
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. FBSound проблемы c типами данных
    от >Quiet Snow< в разделе FreeBasic
    Ответов: 8
    Последнее сообщение: 13.01.2013, 15:52
  2. Ответов: 0
    Последнее сообщение: 28.10.2012, 06:20
  3. База данных SQL FireBird
    от Dimon012 в разделе Флейм
    Ответов: 0
    Последнее сообщение: 10.07.2012, 02:55
  4. GPRS modem открытие порта
    от Alexei-73 в разделе Сети
    Ответов: 9
    Последнее сообщение: 14.06.2012, 10:27
  5. Ответов: 0
    Последнее сообщение: 23.04.2012, 02:54
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •