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

Вниз

лаги с paramcount   Найти похожие ветки 

 
vasja123   (2011-05-18 18:53) [0]

Привет мастерам!! помогите с лагом! пытаюсь открыть несколько файлов своей прогой.


procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin

for i:=1 to paramcount do
 begin
   ShowMessage(Paramstr(i));
   ...
 end;

end;


сколько я бы не открывал файлов своей прогой paramstr все равно возвращает 1. не подскажете ккакой нибудь способ чтобы можно было в цикле прогнать от 1 до кол-ва открытых файлов. заранее спасибо


 
Anatoly Podgoretsky ©   (2011-05-18 18:59) [1]

Что ты сделал? Только больше не говори, мол открывал.


 
vasja123   (2011-05-18 19:02) [2]

зарегил свой тип файлов. через проводник выделил несколько файлов и отикрываю их своей прогой.


 
Andy BitOff ©   (2011-05-18 19:20) [3]

> vasja123   (18.05.11 19:02) [2]
> через проводник выделил несколько
> файлов и отикрываю их своей прогой.

Если по правой кнопке мыши (открыть), то винда запустит по экземпляру твоей проги на каждый файл.


 
vasja123   (2011-05-18 19:37) [4]

Должен же быть какойто способ. чтобы и на Enter и на правую кнопку чтобы можно было в цикле прогнать эти имена файлов ну и их путь соответственно. хелп плиз. пишу медиаплеер и это очень удобная штука срочно нужна. спс!


 
Andy BitOff ©   (2011-05-18 19:41) [5]

> vasja123   (18.05.11 19:37) [4]
> Должен же быть какойто способ

http://tinyurl.com/3ml8n8h


 
Плохиш ©   (2011-05-18 19:45) [6]

Эксплореру пофигу на твои желания, он запускает, как и было сказано, по экземпляру программы на каждый файл.
Это задача программы, при запуске, найти уже запущенный её экземпляр и передать ему имя файла, а самой закрыться. Ну и соответственно программа должна уметь принимать имена файлов из вне.


 
vasja123   (2011-05-18 19:54) [7]

а это понятно. ну вот я запрещу своей проге запускаться повторно. от этого paramcount не изменится же.


 
vasja123   (2011-05-18 20:01) [8]

спс Плохиш. кое что стало ясно)) может стоит попробывать узнать какие файлы были выделены в той папке где открыт первый файл.


 
Плохиш ©   (2011-05-18 20:04) [9]


> vasja123   (18.05.11 20:01) [8]

Ничего-то ты не понял, да и ладно, мне-то пофигу...


 
vasja123   (2011-05-18 20:11) [10]

дело в том что прога все равно запускается только 1 раз(((


 
Плохиш ©   (2011-05-18 20:17) [11]


> vasja123   (18.05.11 20:11) [10]
>
> дело в том что прога все равно запускается только 1 раз

Доказательства этого утверждения есть?


 
Andy BitOff ©   (2011-05-18 20:17) [12]

> vasja123   (18.05.11 20:11) [10]

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


 
Andy BitOff ©   (2011-05-18 20:19) [13]

> vasja123   (18.05.11 20:11) [10]
> дело в том что прога все равно запускается только 1 раз(((

Если приведенный код и есть вся программа, то это утверждение не может быть верным.


 
vasja123   (2011-05-18 20:35) [14]

доказательства такие: если прогу просто так запускать несколько раз то она будет открываться, а если выделить несколько файлов и открыть через эту прогу то она откроется только 1 раз


>Andy BitOff

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


это не удобно. представь чтобы в винампе такое было.


 
Andy BitOff ©   (2011-05-18 20:43) [15]

> vasja123   (18.05.11 20:35) [14]
> доказательства такие: если прогу просто так запускать несколько
> раз то она будет открываться, а если выделить несколько
> файлов и открыть через эту прогу то она откроется только
> 1 раз


Не верю, ибо у меня открывает как и положено по копии на каждый переданный файл.


> это не удобно. представь чтобы в винампе такое было.

А мне-то... Удобно, не удобно...


 
vasja123   (2011-05-18 20:47) [16]

а что если правда попробывать узнать какие файлы были выделены в той папке где открыт первый файл. но как это сделать. должна же быть функция. только вот я не могу ее нигде найти в гугле и тп

я кое что нашел может это поможет

if not(SendMessage(Хендел проводника, LVM_GETITEMSTATE, Индекс элемента в проводнике, LVIS_SELECTED) = 0) then
           //Элемент выделен


 
vasja123   (2011-05-18 20:49) [17]

только тут непонятно что писать вместо Хендел проводника и Индекс элемента в проводнике
подскажите плиз


 
Плохиш ©   (2011-05-18 20:50) [18]


> vasja123   (18.05.11 20:35) [14]
>
> доказательства такие: если прогу просто так запускать несколько
> раз то она будет открываться, а если выделить несколько
> файлов и открыть через эту прогу то она откроется только
> 1 раз
>

Ошибка в программе. Нотепад и графический редактор открываются положенное число раз.


 
Andy BitOff ©   (2011-05-18 20:52) [19]

Не надо заниматься глупостями
http://tinyurl.com/6zqyxa9


 
vasja123   (2011-05-18 20:58) [20]

странно у мя и блокнот 1 раз запускается


 
QAZ   (2011-05-18 21:38) [21]


> Эксплореру пофигу на твои желания, он запускает, как и было
> сказано, по экземпляру программы на каждый файл.
> Это задача программы, при запуске, найти уже запущенный
> её экземпляр и передать ему имя файла, а самой закрыться.
>  Ну и соответственно программа должна уметь принимать имена
> файлов из вне.

аяяй какую неправду глаголиш
данная фишка доступна наверно с win3.1


 
vasja123   (2011-05-18 21:46) [22]

QAZ можешь поподробнее


 
vasja123   (2011-05-18 21:46) [23]

QAZ можешь поподробнее


 
QAZ   (2011-05-19 10:58) [24]


> можешь поподробнее

это очень сильное кунг-фу и чтобы постичь его, ты должен сам пройти путь воина, я лишь могу указать путь...

истина в том ,что, например дельфи может открыть любое кол-во .pas файлов без создания доп. процессов и прочей туфты


 
DiamondShark ©   (2011-05-19 11:30) [25]


> vasja123   (18.05.11 21:46) [23]

Ты русская языка мама не училь?

Для нескольких выделенных файлов проводник и по "Ентеру" и по контекстному меню "Открыть" запускает по одной копии приложения, передавая по одному имени в командной строке.

Тебе надо, используя какой-либо приём определения запуска нескольких копий твоего приложения (см. гугл), определить факт запуска нескольких копий и найти копию процесса, запущенную первой, потом, используя какие-либо приёмы межпроцессного взаимодействия (см. гугл), передать параметры из повторно запущенных копий в первую запущенную копию.


 
QAZ   (2011-05-19 11:38) [26]


> DiamondShark ©   (19.05.11 11:30) [25]

аяяй какую неправду глаголиш
ты тоже не постиг дзена ;)


 
vasja123   (2011-05-22 02:54) [27]

кароче я сделаю так:

Как передать строку другому приложению?
получатель:


procedure ReceiveMessage (var Msg: TMessage); message WM_COPYDATA;
..
procedure TFormReceive.ReceiveMessage;
var
 pcd : PCopyDataStruct;
begin
 pcd := PCopyDataStruct(Msg.LParam);
 Caption := PChar(pcd.lpData);
end;

отправитель:

procedure TFormXXX.Button1Click(Sender: TObject);
var
cd : TCopyDataStruct;
begin
cd.cbData := Length(Edit1.Text)+1;
cd.lpData := PChar(Edit1.Text);
SendMessage ( FindWindow("TFormReceive", nil),
              WM_COPYDATA,
              0,
              LParam(@cd));
end;


только вот не понятно как получатель будет знать что ему будут передавать n отправителей((( QAZ твое кунг-фу наверно самое мощьное но я пока еще новичок


 
Германн ©   (2011-05-22 03:14) [28]


> кароче я сделаю так:
>

Троешеник - он всегда троешник.


 
Virgo_Style ©   (2011-05-22 10:28) [29]


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


А какая получателю разница?


 
Юрий Зотов ©   (2011-05-22 11:05) [30]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=904


 
vasja123   (2011-05-22 18:52) [31]


Virgo_Style ©   (22.05.11 10:28) [29]

точно))


> Юрий Зотов ©   (22.05.11 11:05) [30]

Полезная ссылка. Спасибо мастера очень помогли)))



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

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

Наверх





Память: 0.52 MB
Время: 0.003 c
2-1305722012
111222
2011-05-18 16:33
2011.09.04
вывести bold текст


4-1250240126
ViToTiV
2009-08-14 12:55
2011.09.04
Узнать имя пользователя, в active directory (не логин)


4-1250283837
Alexei
2009-08-15 01:03
2011.09.04
Как определить момент манипуляции устройством ввода?


2-1305792448
Артур
2011-05-19 12:07
2011.09.04
Сохранение наследника TPersistent


4-1248422295
Dmitriy
2009-07-24 11:58
2011.09.04
как определить соединение





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