Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 16:03   #1
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
Сообщение sendto и обработка принятия программой параметров

Проблема такого типа создал ссылку на программу в папке SendTo. Нажимаю отправить в свою программу
(код обработки)
Код:
if (ParamCount > 0) then
listbox1.Items.Add(ParamStr(1));
Но при каждом отправлении открывается новаю программа, а нужно чтобы все приходило первой открытой
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 17.02.2011, 16:06   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

код в студию
больше
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.02.2011, 16:16   #3
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

делай проверу - запущена ли она уже ... если да - передавай ей фокус и параметр\переменную, а если нет - запускай
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 17.02.2011, 16:59   #4
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Цитата:
Сообщение от ArtGrek Посмотреть сообщение
код в студию
больше
какой код? уже кинул
пустая форма, есть listbox и в обработчике формы (onCreate)
Код:
Код:
if (ParamCount > 0) then
listbox1.Items.Add(ParamStr(1));
и Ярлык в папке SendTo
Все..
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 17.02.2011, 17:22   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

напиши нормально что надо зделать и как делаеш ты
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 17.02.2011, 18:45   #6
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Распакуй на диске С, а ярлык на рабочий стол и переташи на ярлык любой файл несколько раз и увидишь что программа запустилась несколько раз и в каждой одна строчка с именем файла (мне нужно чтобы запустилась только одна программа и в ней были имена всех файлов)
Пример.rar
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 18.02.2011, 04:35   #7
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

вот немного доработал, если выделить несколько фаилов сразу, заносит все
и проверка на то, что программа запушена
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  hMutex: integer;
  mmm: boolean;
  h, sh: HWND;
begin
  mmm := false;
  hMutex := CreateMutex(nil, TRUE, 'AbraShvabra'); 
  if GetLastError <> 0 then
    mmm := true; 
  ReleaseMutex(hMutex);
  if mmm then  Application.Terminate;
  ShowMessage(IntToStr(ParamCount));
  if (ParamCount > 0) then
    for i := 1 to ParamCount do
      listbox1.Items.Add(ParamStr(i))
end;
VirusN13

Последний раз редактировалось ArtGrek; 18.02.2011 в 06:38.
ArtGrek вне форума Ответить с цитированием
Старый 18.02.2011, 10:36   #8
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

если скопом файлы идет конечно, но желательно чтобы по одному тоже записывались
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 19.02.2011, 03:45   #9
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Код:
program Project1;

uses
  Forms, Windows, Messages, SysUtils,  Unit1 in 'unit1.pas';

{$R *.res}

var
  wndClass, wndCaption: array[0..255] of char;
  mutex, wnd, i: dword;
  data: TCopyDataStruct;

begin
  mutex := CreateMutex(nil, true, '{2D20B3FE-07F2-4700-A307-BE9F1D0CDFF0}');
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);

  if WaitForSingleObject(mutex, 0) <> WAIT_OBJECT_0 then
  begin
    StrPCopy(wndClass, Form1.ClassName);
    StrPCopy(wndCaption, Form1.Caption);
    Form1.Free;
    wnd := FindWindow(wndClass, wndCaption);
    for i:=1 to ParamCount do
    begin
      data.dwData := 0;
      data.cbData := length(paramstr(i))+1;
      data.lpData := PChar(paramstr(i));
      SendMessage(wnd, WM_COPYDATA, 0, dword(@data));
    end;
    SendMessage(wnd, WM_POPUP, 0, 0);
    Application.Terminate;
  end;

  Application.Run;
  ReleaseMutex(mutex);
end.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

const WM_POPUP = WM_USER + 100;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
  private
    procedure onWM_COPYDATA(var msg: TWMCopyData); message WM_COPYDATA;
    procedure onWM_POPUP(var msg: TMessage); message WM_POPUP;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.onWM_POPUP(var msg: TMessage);
begin
  Application.Restore;
  FormStyle := fsStayOnTop;
  FormStyle := fsNormal;
end;

procedure TForm1.onWM_COPYDATA(var msg: TWMCopyData);
begin
  Memo1.Lines.Add(PChar(Msg.CopyDataStruct.lpData));
  msg.Result := 1;
end;

end.
пыщь
JTG вне форума Ответить с цитированием
Старый 19.02.2011, 04:25   #10
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

только при первом запуске с параметром ничего не происходит
а дальше все супер
VirusN13
ArtGrek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НАдоразобраться !!! процесс принятия сигнала на Атмега 128 sers88 Помощь студентам 1 10.12.2010 16:26
Как остановить SendTo (UDP протокол) Dasharnb777 Общие вопросы .NET 0 23.11.2010 23:41
Система принятия решения (Экспертная система) daranton Microsoft Office Excel 4 01.05.2010 17:55
Теория принятия решений Шушелла Помощь студентам 0 11.04.2010 13:47
"система поддержки принятия решений". Кто нибудь знает о ней? myshonok Свободное общение 31 21.12.2009 23:14