Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем !
 
 Так как не нашел отдельной темы по проблемам с WinAPI, то решил открыть  
   таковую.
 
 А теперь к самим вопросам:
 1. Кто-нить знает как получить информацию о нынешней дате ?
 2. Можно ли создать диалог выбора директории("Choose Directory") без
     прохождения по всему диску и создания вручную дерева катадогов ?
     Что-то похожее можно создать с помощью функции DlgDirList(), но мне
     нужен не список а дерево каталогов.
 
               Заранее спасибо за помощь !

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 08:13 05-11-2002 | Исправлено: ShIvADeSt, 10:20 24-07-2018
f_serg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
react

Цитата:
как получить информацию о нынешней дате ?

GetLocalTime(), GetSystemTime().

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 08:30 05-11-2002
OldGopher



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
react
Касательно каталогов.
 
Никто никогда (в здравом уме) не проходит все дерево каталогов на всех дисках иначе как это действительно необходимо (при построении мгновенной картины дерева (например вариант Tree в FARе).
 
По мере надобности каждый (под)каталог раскрывается дальше. Так работают и FAR и просто выбор каталога в большинстве программ. Иначе просто будет глупость (местами) - дерево каталогов в некоторых системных зонах Win2000/XP переменно, и зависит от работы системного и интернетного кэша и т.п.
 
Есть ActiveX специально для выбора каталога...

Всего записей: 3802 | Зарегистр. 25-10-2001 | Отправлено: 08:43 05-11-2002
Vid0



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
react
Ha MFC:
 
1.
CTime theTime = CTime::GetCurrentTime();
::AfxMessageBox(theTime.Format(_T("%H:%M:%S")), MB_OK);
 
2.
UINT BrowseDialog::DoModal()
{
    UINT uReturn = IDCANCEL;
    LPMALLOC pMalloc = NULL;
 
    // Retrieve a pointer to the shell’s IMalloc interface.
    if(::SHGetMalloc(&pMalloc) == NOERROR)
    {
LPITEMIDLIST pItemIDList = NULL;
 
// Display the browse dialog box that enables the user to  
// select a shell folder.
if((pItemIDList = ::SHBrowseForFolder(this)) != NULL)
{
   // Converts an item identifier list to a file system path,
   // this will be the path that the user has just selected.
   if(::SHGetPathFromIDList(pItemIDList, m_szSelPath))
   uReturn = IDOK;
 
   pMalloc->Free(pItemIDList);
}
pMalloc->Release();
    }
 
    return uReturn;
}
А вооще - читай MSDN !!!

Всего записей: 95 | Зарегистр. 29-05-2002 | Отправлено: 22:31 07-11-2002
Guest

BANNED
Редактировать | Цитировать | Сообщить модератору
OldGopher

Цитата:
Есть ActiveX специально для выбора каталога...  

 Если можешь напиши поподробнее или дай ссылу где почитать...
Vid0

Цитата:
Ha MFC: ...

 А на WinAPI
 
 Неужели нет в WinAPI Tree-View диалога для просмотра дерева
  директорий ??? Если кто может - подскажите как реализовать
  дерево каталогов с помощью доступных функций WinAPI.
 
             Заранее благодарен.
 

Отправлено: 02:38 08-11-2002
Vid0



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно WinAPI - посмотри в соурсах MFC.
А ::SHBrowseForFolder() - это што ? ЛинухAPI ?
Самому почитать описание лень ? MSDN неимеем ? Читать неумеем ?

Всего записей: 95 | Зарегистр. 29-05-2002 | Отправлено: 16:47 08-11-2002 | Исправлено: Vid0, 16:53 08-11-2002
react



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vid0

Цитата:
Самому почитать описание лень ? MSDN неимеем ? Читать неумеем ?

 Вообще-то я искал в MSDN только ничего похожего на Directories  
   Tree-View я не нашел, а нашел только Directories List-View и  
   Directories Combobox-View... Так что ниче мне не лень - проблема  
   в том что я не могу найти где хоть что-то почитать по моему  
   вопросу...

Всего записей: 773 | Зарегистр. 08-02-2002 | Отправлено: 07:21 09-11-2002
tunik



Тихий омут
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто знает как отправлять и получать сообщения? Хочу написать прогу типа "Net send"

Всего записей: 318 | Зарегистр. 11-12-2001 | Отправлено: 11:00 12-11-2002
Fishbone



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вообще-то есть стандартная функция
 

Цитата:
 
Var
 aDir : string;
begin
  if edtSSHHome.Text <> ’’ then aDir := edtSSHHome.Text
                           else aDir := ’C:\’;
  if SelectDirectory(aDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then edtSSHHome.Text := aDir;
 
end;
 

Всего записей: 179 | Зарегистр. 10-11-2002 | Отправлено: 11:29 12-11-2002
OldGopher



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Щас вот сижу и как чайник пялюсь в MSDN, а надо срочно!
 
Как блин в код на API (не MFC) втянуть ActiveX?
 
Как сделать все то, что в MFC делалось CWnd::CreateControl...
Вот блин влетел...

Всего записей: 3802 | Зарегистр. 25-10-2001 | Отправлено: 14:08 18-11-2002
f_serg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OldGopher
Посмотри на FirstSteps.
Там девятая глава - создание ActiveX без MFC (с ATL).

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 16:25 18-11-2002
OldGopher



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
f_serg
Создать ActiveX - это мы проходили.
 
Как блин втянуть его в обычную API аппликацию...  
 
Впрочем, спасибо. Пора возвращаться к FirstSteps. Давно там не был...
 
Нашел все, что нужно. Пьяный был...  
 
Спасибо f_serg

Всего записей: 3802 | Зарегистр. 25-10-2001 | Отправлено: 21:49 18-11-2002 | Исправлено: OldGopher, 21:53 18-11-2002
NSentinel



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
react
По поводу выбора каталогов Vid0 правильно рассказал  
Если нужен чистый апи - то смотри описание SHBrowseForFolder, эта функция относится к Shell Functions
 
Вот пример для открытия выбора каталогов, начиная с текущего
 

Код:
 
#define STRICT
#include <windows.h>
#include <shlobj.h>
INT CALLBACK BrowseCallbackProc(HWND hwnd,  
                                UINT uMsg,
                                LPARAM lp,  
                                LPARAM pData)  
{
   TCHAR szDir[MAX_PATH];   switch(uMsg)  
   {
   case BFFM_INITIALIZED:  
      if (GetCurrentDirectory(sizeof(szDir)/sizeof(TCHAR), szDir))
      {
         // WParam is TRUE since you are passing a path.
         // It would be FALSE if you were passing a pidl.
         SendMessage(hwnd, BFFM_SETSELECTION, TRUE, (LPARAM)szDir);
      }
      break;   case BFFM_SELCHANGED:  
      // Set the status window to the currently selected path.
      if (SHGetPathFromIDList((LPITEMIDLIST) lp ,szDir))
      {
         SendMessage(hwnd,BFFM_SETSTATUSTEXT,0,(LPARAM)szDir);
      }
      break;
   }
   return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszCmdLine,
                     int nCmdShow)
{
   BROWSEINFO bi;
   TCHAR szDir[MAX_PATH];
   LPITEMIDLIST pidl;
   LPMALLOC pMalloc;   if (SUCCEEDED(SHGetMalloc(&pMalloc)))
   {
      ZeroMemory(&bi,sizeof(bi));
      bi.hwndOwner = NULL;
      bi.pszDisplayName = 0;
      bi.pidlRoot = 0;
      bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;
      bi.lpfn = BrowseCallbackProc;      pidl = SHBrowseForFolder(&bi);
      if (pidl)
      {
         if (SHGetPathFromIDList(pidl,szDir))
         {
            MessageBox(NULL,szDir,"Picked",MB_OK);
         }         // In C++: pMalloc->Free(pidl); pMalloc->Release();
         pMalloc->lpVtbl->Free(pMalloc,pidl);
         pMalloc->lpVtbl->Release(pMalloc);
      }
   }
   return 0;
}  
 

 
Если это еще нужно
 
Добавлено
tunik
Проясни ситуацию Что тебе нужно конкретно Тебе просто надо отправить сообщение или так чтобы на той стороне оно появилось как если бы ты отправил его по Net Send?
 
Во втором случае смотри на http://www.codeguru.com/network/alert.shtml

Всего записей: 138 | Зарегистр. 27-08-2002 | Отправлено: 16:55 19-11-2002 | Исправлено: NSentinel, 17:12 19-11-2002
Signa



Звездный Ветер
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос: как функциями API получить список запущенных приложений\процессов? Как это делает "диспетчер задач"...

Всего записей: 357 | Зарегистр. 02-07-2002 | Отправлено: 07:54 20-11-2002
Wowik



The Warlock
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Signa
BOOL WINAPI Process32First(
  HANDLE hSnapshot,      
  LPPROCESSENTRY32 lppe  
);
BOOL WINAPI Process32Next(
  HANDLE hSnapshot,      
  LPPROCESSENTRY32 lppe  
);

Всего записей: 1192 | Зарегистр. 27-08-2001 | Отправлено: 13:53 20-11-2002
NSentinel



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Signa
Если подробнее про то, что рассказал Wowik то смотри MSDN
 
Там как раз описан ответ на твой вопрос
 

Всего записей: 138 | Зарегистр. 27-08-2002 | Отправлено: 16:39 20-11-2002 | Исправлено: NSentinel, 20:32 20-11-2002
rbt



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
tunik

Цитата:
 
Кто знает как отправлять и получать сообщения? Хочу написать прогу типа "Net send"

http://comp-u.wp-club.net/writers.php?in=1&fname=wsoc1.tx
 

Всего записей: 177 | Зарегистр. 26-08-2002 | Отправлено: 11:35 21-11-2002
SergejKa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ничего похожего на Directories
пора привыкать к исконно русскому слову FOLDER

Всего записей: 469 | Зарегистр. 04-03-2002 | Отправлено: 03:27 23-11-2002
SergejKa

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А вот вопрос знатокам NT платформы:
 
Как сделать ExitWindowsEx(1, 0), только ПОД ИНТЯМИ?  
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long  
работает как по маслу в 95, 98, 98SE, а в ХРени не работает

Всего записей: 469 | Зарегистр. 04-03-2002 | Отправлено: 03:11 25-11-2002
NSentinel



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergejKa
Вот родной примерчик:
 

Код:
 
HANDLE hToken;  
TOKEN_PRIVILEGES tkp;  
 
// Get a token for this process.  
 
if (!OpenProcessToken(GetCurrentProcess(),  
        TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))  
    error("OpenProcessToken");  
 
// Get the LUID for the shutdown privilege.  
 
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,  
        &tkp.Privileges[0].Luid);  
 
tkp.PrivilegeCount = 1;  // one privilege to set    
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;  
 
// Get the shutdown privilege for this process.  
 
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,  
        (PTOKEN_PRIVILEGES)NULL, 0);  
 
// Cannot test the return value of AdjustTokenPrivileges.  
 
if (GetLastError() != ERROR_SUCCESS)  
    error("AdjustTokenPrivileges");  
 
// Shut down the system and force all applications to close.  
 
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))  
    error("ExitWindowsEx");  
 
 

 
Успехов

Всего записей: 138 | Зарегистр. 27-08-2002 | Отправлено: 04:03 25-11-2002
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru