Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
1

Разработка подключаемого модуля к файловому менеджеру FAR.

11.02.2010, 22:24. Показов 927. Ответов 3
Метки нет (Все метки)

Кто-нибудь писал модуль для подключения к файловому менеджеру FAR?
Подскажите пожалуйста хоть самый примитивный, просто я не сталкивался с этим никогда. Заранее благодарю за ответ.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2010, 22:24
Ответы с готовыми решениями:

Разработка библиотеки классов к простейшему файл менеджеру
Помогите с разработкой библиотеки классов к простейшему файл менеджеру. Не могу разобраться с...

Основной файл не видит содержимое подключаемого модуля
Всем привет! Нуждаюсь в помощи. Вопрос в заглавии темы. Второй день бьюсь. В sys.path добавлял...

БД Разработка модуля ИС
Помогите нужна готовая база в access (БД Разработка модуля ИС автомастерская). Может у кого есть?

Разработка модуля
При разработки модуля столкнулись с проблемой внесения изменений в шаблон формы регистрации...

3
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
12.02.2010, 19:50 2
На сайт у far есть документация как писать плагины к Far.
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
15.02.2010, 19:43  [ТС] 3
Попробовал скачать, но ничего не дало, не получилось подключит на поративный фар-менеджер,нужно понять смысл как происходит подключение длл к файловому менеджеру фар. Вот прочитал статью по этой ссылке:http://www.interface.ru/home.asp?artId=22198
Попробовал создать проект, но код не компилится. Плагин должен получать список открытых окон Windows.

Компилю на студии 2008. Проект создаю типа "Win32 Project dll.

Вот содержимое файла simplefp.cpp :
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
/*
* SimpleFP - простой plug-in к Far-у. (С) 2000 Phoenix, Moscow
*/
#include <stdio.h> // для вызова sprintf
#include <windows.h> // для функций Windows
#include "plugin.hpp" // для функций Far
#define PLUGIN_NAME "Open windows" // Название plug-in-а
#define WINDOW_HEAD "Open windows list" // Заголовок меню
 
//
// Описываем функции Far, которые с которыми мы работаем.
//
extern "C" {
void WINAPI _export SetStartupInfo(struct PluginStartupInfo *Info);
HANDLE WINAPI _export OpenPlugin(int OpenFrom,int Item);
void WINAPI _export GetPluginInfo(struct PluginInfo *Info);
};
 
static struct PluginStartupInfo Info; // Информация о нашем plug-in-е
//
// Информация о модуле определена нами в структуре Info
//
 
void WINAPI _export SetStartupInfo(struct PluginStartupInfo *Info) {
::Info=*Info;
}
 
// Эта функция вызывается для получения информации о plug-in.
// Мы должны заполнить поля структуры Info.
//
void WINAPI _export GetPluginInfo(struct PluginInfo *Info) {
Info->StructSize=sizeof(*Info); // Размер структуры Info
Info->Flags=0; // Это нам не нужно
Info->DiskMenuStringsNumber=0; // Это нам тоже не нужно
 
// Определяем строку с названием модуля
static char *PluginMenuStrings[1]; 
PluginMenuStrings[0]= PLUGIN_NAME;
// Определяем название plug-in модуля
 
Info->PluginMenuStrings=PluginMenuStrings;
Info->PluginMenuStringsNumber=sizeof(PluginMenuStrings)/
sizeof(PluginMenuStrings[0]);
Info->PluginConfigStringsNumber=0; // Это нам не нужно
}
 
// Эта функция вызывается при запуске plug-in модуля.
//
HANDLE WINAPI _export OpenPlugin(int OpenFrom,int Item) {
HWND hwnd; // Используем для получения handle
char p[128], o[128]; // Для создания строк меню
int i=0; // Счетчик
struct FarMenuItem MenuItems[64]; // Описание меню, которое
// создаст для нас Far
memset(MenuItems,0,sizeof(MenuItems)); // Инициализируем наше меню
MenuItems[0].Selected=TRUE;
hwnd = GetDesktopWindow(); // Получаем handle для desktop
hwnd = GetWindow(hwnd, GW_CHILD); // Получаем его handle
while (hwnd !=0) { // Пока оно не последнее
hwnd = GetWindow(hwnd, GW_HWNDNEXT); // получим handle окна
GetWindowText(hwnd,p,128); // и его заголовок
if (strlen(p)>0) { // если заголовок есть
sprintf(o,"%0.8xld %s", hwnd, p); // сделаем строчку
// скопируем эту строчку в массив MenuItems
strcpy(MenuItems[i++].Text, o); 
}
}
// вызываем созданное нами меню, получаем номер выбранного
// пункта - MenuCode
//
int MenuCode=Info.Menu(Info.ModuleNumber, 
-1,-1,0,
FMENU_AUTOHIGHLIGHT/FMENU_WRAPMODE,
WINDOW_HEAD,
NULL,
"Menu content",
NULL,
NULL,
MenuItems,
i);
return(INVALID_HANDLE_VALUE);
}
 
[/CODE][B]Файл simplefp.def[/B]
[CODE]
LIBRARY
EXPORTS
GetPluginInfo=_GetPluginInfo@4
OpenPlugin=_OpenPlugin@8
SetStartupInfo=_SetStartupInfo@4
При компиляции файла спп, останавливается на строке:

Код
Info->PluginMenuStrings=PluginMenuStrings;
Ошибка: c:\documents and settings\kasper\мои документы\visual studio 2008\projects\simplefp\simplefp\simplefp.cpp(41) : error C2440: '=' : cannot convert from 'char *[1]' to 'const wchar_t *const *'


Мой проект, как я делал, лежит по ссылке, вместе с портативным фаром, к котрому пытаюсь подключить: http://www.sharemania.ru/0293183

Добавлено через 21 час 14 минут
Кто-нибудь подскажет, что можно сделать?
0
241 / 9 / 7
Регистрация: 27.08.2009
Сообщений: 868
18.02.2010, 14:50  [ТС] 4
Кто-нибудь, живой? Подскажите, плиз!!!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2010, 14:50

Разработка программного модуля
Если содержимое ячейки внутреннего ОЗУ (DSEG) с адре-сом 40h больше #A0h, остановить таймер Т/С0,...

Разработка програмного модуля
Прошу помощи, товарищи. Дали задание, а я представления не имею с чего начать. Есть добрые люди?...

Разработка модуля. Новичок
Вопрос следующего характера: - Ребят разрабатывать модуль начал для ocStore, для изменения...

Разработка программного модуля
Разработка программного модуля «Лаборатория» , содержащий сведения о сотрудниках лаборатории (ФИО,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.