Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.009 c
14-97029
cc43294
2003-01-13 17:35
2003.01.30
CЕтка


3-96616
Kurt_
2003-01-12 17:08
2003.01.30
Люди есть какое-нибудь событие возникающее при какой-либо ошибке


3-96563
_Barex_
2003-01-11 22:07
2003.01.30
Ошибка Unable to Load libmysqlclient.so уже изрядно утомила.


14-96988
Wizard
2003-01-11 13:28
2003.01.30
Мастер


7-97064
avenger..
2002-11-14 22:50
2003.01.30
скрытие процесса в winNT и winXP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский