Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Вниз

WinApi   Найти похожие ветки 

 
Res   (2008-01-31 20:38) [0]

Подскажите winapi функцию, которая показывает путь к программа


 
Семеныч   (2008-01-31 20:51) [1]

Зачем из пушки по воробьям?

ExtractFileDir(ParamStr[0])


 
Res   (2008-01-31 20:55) [2]

Вы не правильно поняли. Вот допустим запустилась моя прога она находилась в c:\prog.exe, но программа ведь это незнает ))) так вот нужно чтобы она вывела, где она находится.


 
NeiL   (2008-01-31 21:08) [3]

Edit.Text := ExtractFilePath(Application.ExeName);


 
Res   (2008-01-31 21:13) [4]

Neil в том то и дело, что нужна WinApi функция, у меня нету формы ваще


 
Джо ©   (2008-01-31 21:16) [5]

> [4] Res   (31.01.08 21:13)
> Neil в том то и дело, что нужна WinApi функция, у меня нету
> формы ваще

Ну так слушай Семеныча и не привередничай. Не нужна тебе «Winapi функция».


 
Res   (2008-01-31 21:20) [6]

А я говорю нужна, у меня в uses кроме winSock и Windows ниче нет!


 
Res   (2008-01-31 21:20) [7]

нету у меня Application.ExeName


 
Riply ©   (2008-01-31 21:27) [8]

> [6] Res   (31.01.08 21:20)
> А я говорю нужна

Чем тебя ответ [1] Семеныч не устроил ?

Впрочем, хозяин - барин. Может, тогда эта GetModuleFileNameW сгодиться ?


 
Johnmen ©   (2008-01-31 21:35) [9]


> Подскажите winapi функцию, которая показывает путь к программа

Такой ф-ии не существует.
А посты [6] и [7] вообще звучат, как слова ламера.


 
palva ©   (2008-01-31 21:49) [10]


> Впрочем, хозяин - барин. Может, тогда эта GetModuleFileNameW
> сгодиться ?

Сгодится, только сначала надо
GetCurrentProcessId - получить идентификатор текущего процесса
OpenProcess - потом получить к нему доступ
EnumProcessModules - потом получить хэндлы модулей в массив
GetModuleFileName - применять к каждому хэндлу
Возможно среди них и будет находиться путь к exe-файлу, а может быть будет несколько dll с расширениями exe. Так что автор и не отличит.
CloseHandle - это для порядка.

Вообще пусть автор сам подумает, разве не бывает процессов у которых нет exe-файла. И что он после этого хочет?


 
Игорь Шевченко ©   (2008-01-31 22:21) [11]


> Подскажите winapi функцию, которая показывает путь к программа


[1]


 
Riply ©   (2008-01-31 22:23) [12]

>  [10] palva ©   (31.01.08 21:49)
> Сгодится, только сначала надо ....

Ну это уже его проблеммы.
Он просил - ему дали, какие могут быть притензии ?
:)

P.S.
Правда не знаю, относится ли она к WinApi или нет, но это уже дело десятое :)


 
Riply ©   (2008-01-31 22:25) [13]

>   [12] Riply ©   (31.01.08 22:23)

Sorry: "претензии"


 
Игорь Шевченко ©   (2008-01-31 22:31) [14]


> Сгодится, только сначала надо
> GetCurrentProcessId - получить идентификатор текущего процесса
> OpenProcess - потом получить к нему доступ
> EnumProcessModules - потом получить хэндлы модулей в массив
> GetModuleFileName - применять к каждому хэндлу


Не надо


 
@!!ex ©   (2008-01-31 23:27) [15]

ParamStr(0) Не зависит ни от каких модулей, и не требует наличия форм.


 
Johnmen ©   (2008-02-01 09:31) [16]


> @!!ex ©   (31.01.08 23:27) [15]

Да ты шо???!!! Может она ещё и показывает? Путь...


 
Slym ©   (2008-02-01 09:40) [17]

Johnmen ©   (01.02.08 9:31) [16]
Может она ещё и показывает?

writeln(ParamStr(0)); :)


 
han_malign ©   (2008-02-01 10:05) [18]


> writeln(ParamStr(0)); :)

MessageBox(0, PChar(ParamStr(0)), "светлый путь", MB_OK or MB_TASKMODAL); :)


 
oxffff ©   (2008-02-01 10:25) [19]


> han_malign ©   (01.02.08 10:05) [18]


Это не всегда корректно.


 
oxffff ©   (2008-02-01 10:25) [20]

Удалено модератором


 
oxffff ©   (2008-02-01 10:25) [21]

Удалено модератором


 
Johnmen ©   (2008-02-01 10:32) [22]


> Slym ©   (01.02.08 09:40) [17]
> Johnmen ©   (01.02.08 9:31) [16]
> Может она ещё и показывает?
> writeln(ParamStr(0)); :)

И что?


 
oxffff ©   (2008-02-01 10:34) [23]


> oxffff ©   (01.02.08 10:25) [21]


Sorry, не внимателен.


 
oxffff ©   (2008-02-01 10:34) [24]

Удалено модератором


 
oxffff ©   (2008-02-01 10:34) [25]

Удалено модератором


 
oxffff ©   (2008-02-01 10:34) [26]

Удалено модератором


 
@!!ex ©   (2008-02-01 10:44) [27]

> Да ты шо???!!! Может она ещё и показывает? Путь...

program Project2;

begin
 ParamStr(0);
end.

это компилится... прикинь как круто?


 
Семеныч   (2008-02-01 11:32) [28]

Обсуждение замечательное. Сложная тема. Разные мнения. Много нового, интересного, неочевидного. Я в восторге.

> Res

1. ParamStr не требует никаких форм и никаких модулей вообще. Если ExtractFileDir Вас не устраивает (хотя она тоже не требует никаких форм), то не проблема отсечь путь самому. Для этого нужно всего лишь написать пару простейших строчек, которые тоже не потребуют никаких форм и никаких модулей.

2. Прежде, чем спорить, стоило бы внимательно почитать ответы, подумать над ними, посмотреть справку по ним, подумать еще раз. Если что-то осталось непонятным -  переспросить, уточнить. И еще подумать.

Знаете, зачем? По двум причинам:
а). чтобы получить реально работающее решение
б). и при этом не позориться (как Вы зачем-то сделали).

С пожеланиями дальнейших творческих успехов,
Семеныч.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.093 c
15-1200730915
Sergey Masloff
2008-01-19 11:21
2008.02.24
Субботняя :( задача


9-1167498464
DE`Bugger
2006-12-30 20:07
2008.02.24
Mission Imposible или сделать нормальный проект на GLScene


15-1200707661
Trial
2008-01-19 04:54
2008.02.24
Как сделать, чтобы много функций работало параллельно?


2-1201861064
mrFreeman2007
2008-02-01 13:17
2008.02.24
Завершение работы


2-1201522928
BBCHa
2008-01-28 15:22
2008.02.24
Иконка и сервис





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский