С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
3 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 56

Нужно вывести на экран информацию про системную директорию и директорию windows

17.10.2011, 00:00. Показов 2428. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите плз!Нужно написать прогу которая выводит на екран такую инфу:Computer name,user name,system directory,windows directory.windows version.Написать нужно на АПИ.Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2011, 00:00
Ответы с готовыми решениями:

Как скопировать файл в системную директорию
Ребята подскажите пожалуйста, как скопировать файл в системную директорию независимо от буквы диска?

Перемещение программы при запуске в системную директорию
Здравствуйте программисты. Как сделать так что-бы при запуске программы exe файл (запущеной программы) переместился в системную директорию...

CB10 узнать системную директорию и создать в ней файл
Доброго времени! Вопрос собственно в заголовке. В CB6 проблем с этим не было, а здесь не получается.. Еще в WIN7/8/10 cкорее всего...

8
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
17.10.2011, 00:58
ну и в чем собственно проблема?
0
3 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 56
17.10.2011, 01:00  [ТС]
Да понятия не имею как ето зделать...оформить оформил,а вот функцыи...
0
Android Programmer
141 / 142 / 10
Регистрация: 08.12.2010
Сообщений: 421
17.10.2011, 01:10
ну так ознакомьтесь с функциями winapi.
получение имение GetUserName(), и т.д.
0
Исследователь
 Аватар для GrayWolf
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
17.10.2011, 08:33
Список необходимых функций: GetComputerName(), GetUserName(), GetSystemDirectory(), GetWindowsDirectory(), GetVersion(). Исполение кода зависит только от ваших требований/пожеланий.
1
3 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 56
17.10.2011, 19:37  [ТС]
Немного посидев зделал такую прогу
C++
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <tchar.h>
#include "resource.h"
#include <stdio.h>
#include <math.h>
 
#define INFO_BUFFER_SIZE 32767
TCHAR  infoBuf[INFO_BUFFER_SIZE];
DWORD  bufCharCount = INFO_BUFFER_SIZE;
 
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
typedef BOOL (WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD);
 
#define REZ_BUFFER_SIZE 50000
TCHAR  rezBuf[REZ_BUFFER_SIZE];
DWORD  rezbufCharCount = REZ_BUFFER_SIZE;
 
int statCh1=0, statCh2=0;
 
static TCHAR szWindowClass[] = _T("winClass");
static TCHAR szTitle[] = _T("Laba №4");
 
HINSTANCE hInst;
HWND hEdit;
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
BOOL CALLBACK DlgProc1(HWND hdWnd,UINT mes,WPARAM wParam,LPARAM lParam);
 
BOOL GetOSDisplayString(LPTSTR);
 
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    WNDCLASSEX wcex;
 
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName   = (LPCSTR) IDR_MENU1;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = LoadIcon(NULL, IDI_APPLICATION);
 
    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL,
            _T("Call to RegisterClassEx failed!"),
            _T("Win32 Guided Tour"),
            NULL);
 
        return 1;
    }
 
    hInst = hInstance; // Store instance handle in our global variable
 
    HWND hWnd = CreateWindow(
        szWindowClass,
        szTitle,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT,
        500, 100,
        NULL,
        NULL,
        hInstance,
        NULL
    );
 
    if (!hWnd)
    {
        MessageBox(NULL,
            _T("Call to CreateWindow failed!"),
            _T("Win32 Guided Tour"),
            NULL);
 
        return 1;
    }
 
  
    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);
 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    return (int) msg.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_COMMAND:
        
            switch(LOWORD(wParam))
            {
                case ID_MENU1:
                
                    DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,DlgProc1);
                    return 0;
                
            }
            break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
        break;
    }
    
    return 0;
}
 
 
 
BOOL CALLBACK DlgProc1(HWND hdWnd,UINT mes,WPARAM wParam,LPARAM lParam)
{
    switch(mes)
   {
   case WM_INITDIALOG:
        SendDlgItemMessage(hdWnd,IDC_CHECK1,BM_SETCHECK,statCh1,0);
        hEdit=GetDlgItem(hdWnd,IDC_EDIT);
        return 0;
   
   case WM_COMMAND:
            switch(wParam)
            {
                case ID_OK:
                    statCh1=(int)SendDlgItemMessage (hdWnd, IDC_CHECK1,BM_GETCHECK,0,0);        
                    statCh2=(int)SendDlgItemMessage (hdWnd, IDC_CHECK2,BM_GETCHECK,0,0);
                    
                    strcpy(rezBuf,"");
                    
                    if (statCh1) 
                    {    
                         // Get and display the system directory. 
                        if( GetSystemDirectory( infoBuf, INFO_BUFFER_SIZE ) )
                            strcat(rezBuf, infoBuf); 
                         else   MessageBox(NULL,"Виникла помилка. Параметр System Directory не був знайдений. У виведеному результаті даний параметр відсутній. ","Помилка",MB_OK);
                         strcat(rezBuf, " ");
                    }
                    
                    if (statCh2) 
                    {    
                          // Get and display the Windows directory. 
                        if( GetWindowsDirectory( infoBuf, INFO_BUFFER_SIZE ) )
                            strcat(rezBuf, infoBuf); 
                         else   MessageBox(NULL,"Виникла помилка. Параметр Windows Directory не був знайдений. У виведеному результаті даний параметр відсутній. ","Помилка",MB_OK);
                         strcat(rezBuf, " ");
                    }
                                        
                    SetWindowText(hEdit, rezBuf);
                    return 1;
    
                case IDC_CHECK1:    // якщо при натисканні на цьому прапорці
                                        // треба змінити його статус
                    if (!SendDlgItemMessage(hdWnd,IDC_CHECK1,BM_GETCHECK,0,0))
                        SendDlgItemMessage (hdWnd, IDC_CHECK1,BM_SETCHECK,0,0);
                    else 
                        SendDlgItemMessage (hdWnd, IDC_CHECK1,BM_SETCHECK,1,0);
                    return 1; 
                
                case ID_CANCEL:
                    statCh1=0;
                    SendDlgItemMessage (hdWnd, IDC_CHECK1,BM_SETCHECK,0,0);
                    EndDialog(hdWnd,NULL);
                    return 1;
 
            }
                                                
            return 1;
       }
       return 0; 
}
Но надо не только windows directory и system directory а и их внутренность (лаба на тему привязка к системе),вот дальше что то меня клинит что,куда и как...
Если не сложно отредактируйте чтоб с внутренностью было...
0
Исследователь
 Аватар для GrayWolf
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
18.10.2011, 06:06
C++
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
/******************************************************************************
 * Описание: Рекурсивный поиск файлов в заданном каталоге и его подкаталогах
 * Параметры: Путь для поиска, маска поиска
 * Результат: нет
 * Комментарий: Маска поиска ВСЕГДА должна быть *.*. Требуется #include <tchar.h>
 ******************************************************************************/
void FindPlugins(TCHAR* pszPath, TCHAR* pszMask) {
    TCHAR szFileName[MAX_PATH];
    HANDLE hFind;
    WIN32_FIND_DATA fd;
 
    wsprintf(szFileName, _T("%s\\%s"), pszPath, pszMask);
 
    hFind = FindFirstFile(szFileName, &fd);
    if(!hFind) return;
    do {
        if(!lstrcmpi(fd.cFileName, TEXT(".")) || !lstrcmpi(fd.cFileName, TEXT(".."))) continue;
        if(FILE_ATTRIBUTE_DIRECTORY & fd.dwFileAttributes) {
            wsprintf(szFileName, TEXT("%s\\%s"), pszPath, fd.cFileName);
            FindPlugins(szFileName, TEXT("*.*"));
        } else {
            wsprintf(szFileName, TEXT("%s\\%s"), pszPath, fd.cFileName);
        }   // if(FILE_ATTRIBUTE_DIRECTORY & fd.dwFileAttributes)
    }while(FindNextFile(hFind, &fd));
 
    FindClose(hFind);
}
1
3 / 2 / 0
Регистрация: 20.12.2009
Сообщений: 56
18.10.2011, 17:12  [ТС]
Благодарствую,и куда етот фрагмент втулить?
0
Исследователь
 Аватар для GrayWolf
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
18.10.2011, 17:30
Зависит от того где вы хотите обрабатывать каталог: при создании окна, при нажатии на кнопку, еще при каком-то событии... Туда и вставляем вызов функции
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.10.2011, 17:30
Помогаю со студенческими работами здесь

Скрипт не распознаёт директорию как директорию
Здравствуйте уважаемые! Ещё одна проблемка вдогонку к предыдущему посту: Есть ajax.pl — Общается с вебмордой, отдаёт различные данные...

Создать программно директорию и 3 файла в ней: 2 текстовых и 1 командный. Имена запрашивать с клавиатуры. Вывести на экран имя командного файла
Прошу помочь сделать. Linux вижу впервые

Нужно прочитать директорию в функции
int main() { setlocale(0, &quot;&quot;); char *root = &quot;c\\*&quot;; scan(root); system(&quot;pause&quot;); } void scan(char derect) ...

Вывести текущую директорию
Вывести текущую директорию. Как?

Вывести директорию выбранного файла
Дело вот в чем. У меня есть некое подобие словаря который загружается с текстового файла. Я знаю как открыть файл с заранее установленной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru