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

Вниз

Как в 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 вся ветка

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

Наверх





Память: 0.51 MB
Время: 0.008 c
15-1204535379
Vemer
2008-03-03 12:09
2008.04.13
Ошибка с rtl60.bpl на новойм компьютере.


15-1202164568
Германн
2008-02-05 01:36
2008.04.13
Web-камера Genius Look 317


15-1204098805
Ega23
2008-02-27 10:53
2008.04.13
GUID - насколько уникален?


2-1205522854
fics
2008-03-14 22:27
2008.04.13
TreeView


4-1186810295
Кирилл_А
2007-08-11 09:31
2008.04.13
bsToolWindow для WinApi





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