Текущий архив: 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.51 MB
Время: 0.012 c