Главная страница
    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.51 MB
Время: 0.006 c
4-1185861953
Раф
2007-07-31 10:05
2008.04.13
Как в 1С можно с Делфи запустить определенный пункт меню


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


2-1205773230
Dima
2008-03-17 20:00
2008.04.13
Не могу разобраться с кодом.Помогите ПОЖАЛУЙСТА!!!


2-1206008011
Sedd
2008-03-20 13:13
2008.04.13
Нужен совет


2-1205958322
ply
2008-03-19 23:25
2008.04.13
floattostr





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