Главная страница
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.021 c
2-1201680662
Venkin
2008-01-30 11:11
2008.02.24
URL выделенной картинки в TWebbrowser


15-1201094235
Dennis I. Komarov
2008-01-23 16:17
2008.02.24
Mail Server


4-1183840029
Денис178
2007-07-08 00:27
2008.02.24
Разморозить диалоговое окно


15-1201160055
*.dpr
2008-01-24 10:34
2008.02.24
Как бороться с {$IFDEF} в *.dpr?


2-1201783078
smartleds
2008-01-31 15:37
2008.02.24
Коллеги , подскажите компоненту вроде TrackBar но покрасивше