Hollosi Information eXchange /HIX/
HIX CODER 2055
Copyright (C) HIX
2004-04-09
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 re: vc6 (mind)  81 sor     (cikkei)

+ - re: vc6 (mind) VÁLASZ  Feladó: (cikkei)

Elso kerdesre azt ajanlanam, hogy hasznald a
BOOL your_class::PreTranslateMessage(MSG* pMsg) fuggvenyt amiben szerintem
le lehet targyalni a pMsg->wParam == VK_... (VK_LCONTROL, VK_RCONTROL,
VK_DELETE, etc). Mindenesetre nezd vegig egy kicsit a
.../VC98/Include/WINUSER.H file-ot. En meg nem probaltam az altalad emlitett
billentyukombinaciot letargyalni de szerintem megoldhato.

A masodik kerdesre en pl. a kovetkezo kodot hasznalom. Pontositom, hogy nem
fogja barmilyen View-ban(MDI vagy SDI) megjeleniteni a html-t hanem az OP
altal definialt browser-t fogja beinditani az adott html oldallal. Ha
tenyleg az erdekel, hogy lehet ezt egy MDI applikacioban (pl. VC.NET
kornyezetben a help mint view) legkonnyebben megcsinalni akkor ezt is
elkuldom majd csak szolj.

void your_class::your_function()
{
 CString URL(_T("anything.htm"));

 HINSTANCE result = ::ShellExecute(NULL, _T("open"), URL, "valami",NULL,
SW_SHOW);

 if ((UINT)result <= HINSTANCE_ERROR)
 {
  TCHAR key[MAX_PATH + MAX_PATH] = {_T('\0')};
  TCHAR ext[_MAX_EXT] = {_T('\0')};

  _splitpath(URL,NULL,NULL,NULL,ext);

  if (GetRegKey(HKEY_CLASSES_ROOT, ext, key) == ERROR_SUCCESS)
  {
   lstrcat(key, _T("\\shell\\open\\command"));

   if (GetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS)
   {
    TCHAR *pos;
    pos = _tcsstr(key, _T("\"%1\""));
    if (pos == NULL)
    {
     pos = strstr(key, _T("%1"));
     if (pos == NULL)
      pos = key+lstrlen(key)-1;
     else
      *pos = '\0';
    }
    else
     *pos = '\0';

    lstrcat(pos, _T(" "));
    lstrcat(pos, URL);

    ::WinExec(key,SW_SHOW);
   }
  }
 }
}

ahol

namespace
{
 LONG GetRegKey(HKEY key, LPCTSTR subkey, LPTSTR retdata)
 {
  HKEY hkey;
  LONG retval = RegOpenKeyEx(key, subkey, 0, KEY_QUERY_VALUE, &hkey);

  if (retval == ERROR_SUCCESS)
  {
   long datasize = MAX_PATH;
   TCHAR data[MAX_PATH];
   RegQueryValue(hkey, NULL, data, &datasize);
   lstrcpy(retdata,data);
   RegCloseKey(hkey);
  }

  return retval;
 }
}

Remelem fog segiteni. Ha valami nem tiszta csak irj nyugottan.

Andras

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS