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

Вниз

Как в 1С можно с Делфи запустить определенный пункт меню   Найти похожие ветки 

 
Раф   (2007-07-31 10:05) [0]

SendKey пробовал не получилось, может кто подскажет


 
Сергей М. ©   (2007-07-31 10:21) [1]

Какой конкретно пункт ?


 
Раф   (2007-07-31 10:28) [2]

В конфигураторе, Администрирование ---> Загрузить данные


 
Сергей М. ©   (2007-07-31 10:33) [3]

А что, разве у 1C:ПРедприятия как сервера автоматизации нет соответствующего метода ?


 
Раф   (2007-07-31 10:35) [4]

у 7.7. не нашел, а мне надо каждый вечер загружать данные, хочется автоматизации


 
Сергей М. ©   (2007-07-31 10:38) [5]


> у 7.7. не нашел


А в службе техподдержки продукта спрашивал на эту тему ?


 
Раф   (2007-07-31 10:44) [6]

Нету у меня такой возможности обратится в службу тех. поддержки


 
Сергей М. ©   (2007-07-31 10:45) [7]

Ну тогда вот тебе в помощь - http://v7backup.narod.ru/


 
Раф   (2007-07-31 10:52) [8]

Дак он делает бекап, а мне наоборот надо загрузить бекап


 
Раф   (2007-07-31 11:05) [9]

Что не так делаю, почему Хендл меню не ловится, приходит 0 и все

var
 Form1: TForm1;
 buffer: array [0..255] of Char;
 APchar:array[0..254] of char;
 s:Hwnd;
implementation

{$R *.dfm}
procedure FillMenuList(var h: HMenu; List: TStrings);
var
 i: Longint;
 wid: Longint;
 hs: Hmenu;
begin
 for i := 0 to GetMenuItemCount(h)-1 do
   begin
     wid := GetMenuItemId(h, i);
     if (wid <> -1) and
        (GetMenuString(h, i, buffer, SizeOf(Buffer), MF_BYPOSITION) > 0) then
       List.AddObject(Buffer, Pointer(wid));
     hs :=  GetSubMenu(h, i);
     if hs <> 0 then
       FillMenuList(hs, List);
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 h: HMenu;

begin
 h := GetMenu(s);
 FillMenuList(h, ListBox1.Items);
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
with Sender as TListBox do
   SendMessage( s,
                WM_COMMAND,
                MakeWParam(WParam(Items.Objects[ItemIndex]), 0),
                0);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  StrPCopy(APchar, ""c:\Program Files\1C7\BIN\1cv7.exe" CONFIG /DE:\Temp\1C7\ /NМихаил /P****");
   s:=WinExec(APchar,SW_RESTORE);
end;

end.


 
Сергей М. ©   (2007-07-31 11:15) [10]

http://www.sinor.ru/%7Efilez/hare/cfg_prm.html


 
Раф   (2007-07-31 14:02) [11]

http://www.sinor.ru/%7Efilez/hare/cfg_prm.html

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


 
Сергей М. ©   (2007-07-31 14:19) [12]


> Увы, 1С очень любит делать все наполовину


А это уже , сэр, Ваша личная половая драма, коль Вы таки сделали ставку на геморрой на ровном месте)


 
tesseract ©   (2007-07-31 14:24) [13]


> Увы, 1С очень любит делать все наполовину.. ;-(


А чего ещё не нравиться? 1с и есть платформа, а не законченное решение.


 
Раф   (2007-07-31 15:18) [14]

Я  все сделал, осталось тока нажать кнопку ОК, никак мне её не отловить

While HndDialog=0 do HndDialog:= FindWindow(nil, "Загрузка данных");
Sleep(1000);
h2 := FindWindowEx(HndDialog, 0, "Button", "ОК");
SendMessage(h2, BM_CLICK, 0, 0);

И не нажимает, что не так подскажите?


 
Раф   (2007-07-31 15:20) [15]

переменная h2 блина равна нулю, то есть он не ловит кнопку
Перепробовал все варианты, и на русском и на Латинском все равно не ловит


 
Сергей М. ©   (2007-07-31 15:21) [16]


> что не так подскажите?


С какого перепугу окно целевой кнопки обязано реагировать на какое-то там "BM_CLICK" ?


 
Раф   (2007-07-31 15:23) [17]

Ну а как мне нажать её, подскажите тогда?


 
Сергей М. ©   (2007-07-31 15:30) [18]

Мдя..

Лыкомочалоначинайсначала)


 
Раф   (2007-07-31 15:48) [19]

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


 
Раф   (2007-07-31 15:50) [20]

Попробовал так, реакции нет
While HndDialog=0 do HndDialog:= FindWindow(nil, "Загрузка данных");
Sleep(1000);
SendMessage(HndDialog,WM_Command,MakeWParam(1,$0f),HndControl);


 
tesseract ©   (2007-07-31 15:52) [21]


> Раф   (31.07.07 15:48) [19]


А чего тебе стандартного средства не хватает ? Всё же расписано.

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


А зачем ? Такого наворотить можно. Твои пользователи, что даже телефоном пользоваться не умеют ?

ЗЫ: Просто чемпионат какой-то начался.....


 
Раф   (2007-07-31 16:13) [22]

Ну если пишу, значит у меня есть на это свои причины пользователи тут совсем не причем, я делаю копию рабочей базы


 
tesseract ©   (2007-07-31 17:26) [23]


> Ну если пишу, значит у меня есть на это свои причины пользователи
> тут совсем не причем, я делаю копию рабочей базы


Ламер захотел стать хацкером и для начала сломал…мозг…себе.

Используй обычный архиватор.


 
Ricks ©   (2007-08-06 17:59) [24]


> h2 := FindWindowEx(HndDialog, 0, "Button", "ОК");
> SendMessage(h2, BM_CLICK, 0, 0);
>
> И не нажимает, что не так подскажите?


Во первых чтобы нажимало надо посылать WM_LBUTTONDOWN и WM_LBUTTONUP. Проверено.
А если окно не находит то попробуй запустить для твоего HndDialog EnumChildWindows и в нем уже отлавливай.

И не слушай некоторых "умных" людей, которые говорят "нахрена тебе это надо". Надо, значит делай!


 
Ricks ©   (2007-08-06 18:04) [25]

У меня только что получилось

var W, A : HWND;
begin
W:=FindWindow(nil, "Загрузка данных");
if W = 0 then exit;
A:=FindWindowEx( W, 0, "Button", "OK" );
if A = 0 then exit;
SendMessage(A, WM_LBUTTONDOWN, 0, MakeLParam(1, 1));
SendMessage(A, WM_LBUTTONUP, 0, MakeLParam(1, 1));


 
tesseract ©   (2007-08-07 10:14) [26]


> И не слушай некоторых "умных" людей, которые говорят "нахрена
> тебе это надо". Надо, значит делай!


Кул хацкеры в бой с мозгом! У меня 5-летний опыт работы с 1с и 7-летний с delphi - у меня можно поучиться всяким школьникам.


 
viman ©   (2007-08-10 09:11) [27]

tesseract, пока ничего дельного ты не сказал. И единственное, чему можно у тебя тут научиться, так это болтовне.


 
tesseract ©   (2007-08-10 10:58) [28]


> tesseract, пока ничего дельного ты не сказал. И единственное,
>  чему можно у тебя тут научиться, так это болтовне.


Я сказал "не страдать фигнёй".



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

Текущий архив: 2008.04.13;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.017 c
3-1195575987
ari_9
2007-11-20 19:26
2008.04.13
Длинные (несколько суток) читающие транзакции в FB. Как лучше ?


15-1204171796
MBo
2008-02-28 07:09
2008.04.13
Delphi Survey на русском


3-1195656537
umbra
2007-11-21 17:48
2008.04.13
одно ADOConnection для нескольких компонентов ADO


2-1205597380
Riply
2008-03-15 19:09
2008.04.13
Упреждающее чтение.


15-1204034204
Семеныч
2008-02-26 16:56
2008.04.13
Вопрос по Java