Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.024 c
2-1201812356
owa
2008-01-31 23:45
2008.02.24
последний элемент массива


2-1201537907
oleg_teacher
2008-01-28 19:31
2008.02.24
out of memory


2-1200477368
Washington
2008-01-16 12:56
2008.02.24
Панель задач - трей


2-1201778096
@!!ex
2008-01-31 14:14
2008.02.24
GetClassLongPtr что это?


9-1166547778
Kerk
2006-12-19 20:02
2008.02.24
Конкурс к годовщине Кладовки