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

Вниз

путь к файлу по клику мыши   Найти похожие ветки 

 
ROBIN   (2014-09-10 21:33) [0]

как узнать путь к файлу по клику мыши в проводнике или на рабочем столе


 
Rouse_ ©   (2014-09-10 21:36) [1]

Давай начнем с начала:
Обработчик клика мыши где расположен?


 
ROBIN   (2014-09-10 21:40) [2]

я даже как -то растерялся? не думал, что кто -то будет отвечать. Извините.


 
ROBIN   (2014-09-10 21:42) [3]

Мне нужно что бы моя программа отследила клик мыши где угодно, и по чему угодно. И что бы тот объект по которому кликнули... в общем что бы я увидел путь этого объекта... Блин, надеюсь Вы поймёте :(


 
Rouse_ ©   (2014-09-10 21:53) [4]

Выглядит все достаотчно сумбурно.
Соберись и перефразируй вопрос.
Давай начнем от: "И что бы тот объект по которому кликнули... в общем что бы я увидел путь этого объекта..."

Обьектов не существует - есть окна. Пути у оконного элемента нет.
Что за путь ты хочешь получить?

(я конечно понимаю что именно тебе необходимо, но не понимаю как тебе это обьяснить - поэтому зайдем издалека).


 
ROBIN   (2014-09-10 22:35) [5]

Я написал программу которая должна запускать сторонние программы, или открывать документы, и т.д. Для создания списка всех этих запускаемых приложений нужны их адреса, т.е. пути. Интерфейс моей программы следующий - пользователь кликом мыши по любому файлу в проводнике или на рабочем столе показывает какой файл ему нужен, программа копирует этот путь себе в список в list box какоё- нибудь, й уже потом в случае надобности этот пользователь запускает нужный файл уже из моей программы, а не ищет его снова по компьютеру. Ну надеюсь теперь понятно?..


 
Rouse_ ©   (2014-09-10 22:44) [6]


> Ну надеюсь теперь понятно?..

Ясно, т.е. получается ты хочешь сделать что-то типа истории запуска файлов.
Судя по тому что ты сказал: "Я написал программу" - по сути программа у тебя уже реализована, запускать сторонние программы ты тоже умеешь и осталось (де юре) только заполнпть некий ListBox, я правильно понял?


 
ROBIN   (2014-09-10 22:53) [7]

Да, Вы всё поняли правильно. Вы теперь помочь можете?


 
Rouse_ ©   (2014-09-10 23:01) [8]

Олег Витальевичь, как бы сказать...
Технически, часть того что Вы заявили, можно сделать на уровне шела.
Но это буджет относится только к проводнику и оным вытекающим из самого шела.
Я изучил вашу биографию (извините) и вижу что Вы по сути никогда не имели отношения к программированию как к таковому, поэтому на данный момент, я конечно могу дать пару ссылок по перехвату, но боюсь они Вам не помогут.
Мой искренний совет (как земляку - мы по сути почти рядышком территориально) - наймите программиста и он Вам сделает все красиво.


 
ROBIN   (2014-09-10 23:12) [9]

Ваша помощь просто неоценима. Даже и не знаю как благодарить. Особенно мне помогло, что Вы навели обо мне справки. И совет о поиске программиста был, можно сказать, шедеврален. Однако, поскольку я ни о чём таком не просил, то всё же попытаюсь быть настойчивым, и попрошу ещё раз :
мне бы информацию о том как это можно реализовать. И Вы ведь должны понимать, что каким бы плохим программистом я не был, я искренне хочу стать лучше. поэтому и задаю подобного рода вопросы.
Надеюсь понятно объяснил...


 
Rouse_ ©   (2014-09-10 23:19) [10]

Ок, тогда сложный вариант:
Для начала учимся получать информацию с окна под курсором: http://rouse.drkb.ru/winapi.php#wndinfo
Потом учимся работать с шелом:
http://rouse.drkb.ru/winapi.php#fwoledragdrop
Потом вникаем в перехват:
http://rouse.drkb.ru/winapi.php#splice
http://rouse.drkb.ru/winapi.php#splice2

Читаем технические статьи:
http://alexander-bagel.blogspot.ru/2013/01/intercept.html
http://alexander-bagel.blogspot.ru/2013/05/intercept2.html

С уважением.

ЗЫ: ни в коем разе не хотел обидеть


 
Rouse_ ©   (2014-09-10 23:31) [11]

Уточню - все что вне рамок шела Вам придется анализировать ручками уже в обработчиках.


 
Юрий Зотов ©   (2014-09-10 23:56) [12]

А если программа запущена с клавиатуры, а не мышью? Тем более, командной строкой?


 
Юрий Зотов ©   (2014-09-11 00:13) [13]

> ROBIN   (10.09.14 23:12) [9]
> каким бы плохим программистом я не был, я искренне хочу стать лучше.

Это замечательно, но для обучения Вы выбрали совсем неподходящую задачу - слишком сложную. Ну не ставят начинающему прыгуну в высоту планку сразу на два метра. Розыч это и имел в виду, зря Вы на него обиделись.

Но если уж Вам так хочется, то зачем ловить клики? Мало ли, куда кликнул юзер, может и не по файлу вовсе. Да и с клавиатуры программу можно запустить, без всякой мыши.

Посмотрите в сторону перехвата функции CreateProcess. Это тоже не слишком просто, но все же проще (а главное, надежнее), чем выбранный Вами способ. И примеры в Сети есть.

А перехватив создание процесса, останется только получить его image file. Примеры в Сети тоже есть.


 
имя   (2014-09-11 01:33) [14]

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


 
Inovet ©   (2014-09-11 06:25) [15]

Не лучше ли воспользоваться стандартным drag-and-drop?


 
имя   (2014-09-11 07:37) [16]

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


 
sniknik ©   (2014-09-11 10:09) [17]

был у нас менеджер, тоже хотел странного, иногда невозможного (к примеру чтобы его по его локальному входу на ноуте в любом домене узнавали и права по нему же локальному давали, права админа)... бесился когда его "обламывали" и как-то сказал фразу "никто работать не хочет, простых вещей не понимают, да если бы я умел программировать давно бы сам сделал!"... на его беду сказал за неделю до дня рождения, на него ему естественно подарили книжку "PHP за 21 день" (или "PHP для чайников" что-то вроде в общем). еще через пару недель он уволился. и что характерно через 21 день назад в новом качестве не вернулся. :)

... куда автор делся? к нему со всей душой, объясняют, практически в виде исключения. а он ... ;(


 
icWasya ©   (2014-09-11 14:35) [18]

А если использовать Драг-энд-Дроп?
Схватить объект и перетащить на Вашу форму?


 
RWolf ©   (2014-09-11 15:22) [19]


> sniknik ©   (11.09.14 10:09) [17]

почему «на его беду»? человек, может, в пхпшники пошёл — можно сказать, вырос профессионально.


 
QAZ   (2014-09-11 16:10) [20]


> как узнать путь к файлу по клику мыши в проводнике или на рабочем столе

Shift+ПКМ+"копировать как путь"


 
DQ   (2014-09-11 19:13) [21]

"Объекты по которым кликают в проводнике или на рабочем столе" являются элементами ListView и в общем случае являются просто этакой таблицей с текстом. Оно не связано явно с файлами. Оно просто иллюстрирует.

"пользователь кликом мыши по любому файлу в проводнике или на рабочем столе показывает какой файл ему нужен" - извиняюсь, нафига? Добавьте как Notepad++ пункт в контекстное меню. Или как DownloadMaster из буфера обмена брать.

Кстати я как-то уже делал из буфера, и мою exe через 2 года сочли вирусом. Как с этим бороться кто-то подскажет?



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

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

Наверх





Память: 0.5 MB
Время: 0.002 c
6-1279699331
dm37
2010-07-21 12:02
2016.04.10
передача Recordset через tcp


15-1438097118
Rouse_
2015-07-28 18:25
2016.04.10
Проверьте свой счет на карте Сбера


2-1410889995
Alex_C
2014-09-16 21:53
2016.04.10
Читать TRegistry под Win7 без прав админа


15-1438101866
xayam from work
2015-07-28 19:44
2016.04.10
Как научиться запоминать сны?


15-1438586953
Pavelnk
2015-08-03 10:29
2016.04.10
Aero для Win10





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