Форум: "WinAPI";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
ВнизЧто значит the default directory в параметрах функции? Найти похожие ветки
← →
Matolch (2002-12-12 13:06) [0]HINSTANCE FindExecutable(
LPCTSTR lpFile, // pointer to string for filename
LPCTSTR lpDirectory, // pointer to string for default directory
LPTSTR lpResult // pointer to buffer for string for executable file on return
);
lpDirectory
Pointer to a null-terminated string specifying the default directory.
← →
Игорь Шевченко (2002-12-12 13:38) [1]Надо понимать, тот каталог, откуда начинать поиск Executable...
← →
Matolch (2002-12-12 13:42) [2]Так я понимаю, э.. "C:\Program files\" ?
← →
Anatoly Podgoretsky (2002-12-12 13:47) [3]Можно, но может быть лучше "C:\" а то вдруг там, нет, а например в c:\Windows или вообще такой папки нет.
← →
Matolch (2002-12-12 13:49) [4]Пытаюсь сделать таким образом:
FName := PChar(FileName);
FDir := PChar("C:\Program Files\"); //как только не пробовал
FindExecutable(FName, FDir, ResPChar);
После чего вижу Access Violation .. .. in "Shell32". В чем здесь может быть проблема, не пойму никак.
← →
Matolch (2002-12-12 13:52) [5]Дак я и "C:\" пробовал, не здесь её закопали, наверное.
← →
app (2002-12-12 13:56) [6]FindExecutable(FName, "c:\,
← →
Matolch (2002-12-12 13:59) [7]
> app ©
Что это значит, по твоему?
← →
Matolch (2002-12-12 14:03) [8]Орешник: э.. "как "кликнуть" мышко?!" - это круто. Хочу свой вопрос там же.
← →
Matolch (2002-12-12 14:16) [9]А в ответ - тишина. Люди, скажите, чего я не так сделал?
← →
Игорь Шевченко (2002-12-12 14:16) [10]
> FName := PChar(FileName);
> FDir := PChar("C:\Program Files\"); //как только не пробовал
> FindExecutable(FName, FDir, ResPChar);
ResPChar как объявлен и какие действия с ним произведены до вызова функции ?
← →
Matolch (2002-12-12 14:19) [11]var
ResPChar: PChar;
begin
ResPChar := "";
и далее приведенный код
← →
Matolch (2002-12-12 14:24) [12]
> Игорь Шевченко ©
Все понял: array [0..255] of char;
Спасибо огромное.
← →
Anatoly Podgoretsky (2002-12-12 14:27) [13]Если ты понял про ResPChar, то надо ResPChar : array [0..MAX_PATH] of char;
← →
Matolch (2002-12-12 14:40) [14]Ясно, 260, но почему так?
← →
Anatoly Podgoretsky (2002-12-12 14:46) [15]Нет не 260, а именно MAX_PATH, оно меняется со временем
← →
Matolch (2002-12-12 14:52) [16]MAX_PATH. Это понятно, но почему меняется.
А есть еще такой вопрос: вот я вытащил иконку при помощи
ExtractIconEx(ResPChar, 0, HL, HS, 1);
Из IconInfo получаю два HBITMAP:
BColor.Handle := IconInfo.hbmColor;
BMask.Handle := IconInfo.hbmMask;
Как-то можно слить их в один, чтобы получить полноценный вид?
← →
Matolch (2002-12-12 14:52) [17]MAX_PATH.
А есть еще такой вопрос: вот я вытащил иконку при помощи
ExtractIconEx(ResPChar, 0, HL, HS, 1);
Из IconInfo получаю два HBITMAP:
BColor.Handle := IconInfo.hbmColor;
BMask.Handle := IconInfo.hbmMask;
Как-то можно слить их в один, чтобы получить полноценный вид?
← →
app (2002-12-12 15:00) [18]было 66, затем 144, затем 260, сейчас идет речь об 1024
Использование константы позволяет избежать проблем
А меняется потому, что меняется файловая система
← →
Matolch (2002-12-12 15:01) [19]А ещё, MAX_PATH объявлен как константа, есть ли повод утверждать, что приложение получит информацию о том, что для Windows эта константа уже не 260, а 275, или это действительно только для компилятора?
← →
Игорь Шевченко (2002-12-12 15:06) [20]Matolch © (12.12.02 15:01)
Только для компилятора. А приложение может узнать, сказав SizeOf.
Про икону - можно нарисовать оба этих битмапа в memory device context (BitBlt с соответствующими растровыми операциями) и получится полноценный вид иконы.
← →
Matolch (2002-12-12 15:13) [21]
> Игорь Шевченко © SizeOf.
Так я понял, его ещё надо заставить это сделать & SizeOf(чего?)
← →
Matolch (2002-12-12 15:13) [22]
> Игорь Шевченко © SizeOf.
Так я понял, его ещё надо заставить это сделать & SizeOf(чего?).
BitBlt будем пробовать.
← →
Игорь Шевченко (2002-12-12 16:44) [23]
var
A : array[0..MAX_PATH] of char;
...
I := sizeof(A); { Получишь значение константы MAX_PATH + 1 }
← →
Cobalt (2002-12-13 00:47) [24]Интересно, нет ли у Виндов такой недокументированной функции:
unsigned int GetMax_Path();
?
← →
Matolch (2002-12-13 09:13) [25]Интересно.
← →
Игорь Шевченко (2002-12-13 09:35) [26]Есть.
function YourEyes (const FileName, Value : String) : Integer;
begin
OpenFile(FileName);
Result := LookForDesiredValue(Value);
end;
Использование:
MaxPath := YourEyes("windows.pas", "MAX_PATH");
← →
Cobalt (2002-12-13 13:10) [27]2 Игорь Шевченко © (13.12.02 09:35)
Я ведь не о том. Вы (кажется, или может, кто-то другой) упоминали о том, что эта символическая константа может быть разной для разных ОСей.
Мда, Линукс в этом отношении рулит - можно откомпилить исходники с учетом текущего значения...
← →
Игорь Шевченко (2002-12-13 13:30) [28]Cobalt © (13.12.02 13:10)
????
А что, в заголовочных файлах объявлено не текущее значение ?
> Линукс в этом отношении рулит
Да нехай себе рулит...
← →
Access Violation (2002-12-14 06:52) [29]
> Игорь Шевченко © (13.12.02 09:35)
Круто я вас подловил!!!
OpenFile - недостаточно параметров
LookForDesiredValue - нет такой функции
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.013 c