|
Можно ли через WinAPI прибить окошечко "Текущие/Накопленные вызовы"? | ☑ | ||
---|---|---|---|---|
0
Dmitry1c
25.03.16
✎
11:23
|
Можно ли через WinAPI прибить окошечко "Текущие/Накопленные вызовы"?
Наверное плохо пытался сделать, но через WinAPI у меня вообще не получалось делать что-либо с окнами 1С. Гуру, подскажите. Оно меня вымораживает. Окошки 1С через WinAPI вообще неподконтрольные. |
|||
1
Любопытная
25.03.16
✎
11:23
|
а просто отключить не судьба?
|
|||
2
Dmitry1c
25.03.16
✎
11:24
|
(1) ты видимо не во франче работаешь, либо на проекте.
|
|||
3
Dmitry1c
25.03.16
✎
11:25
|
Поидее мне надо получить Handler'ы всех окон и прибить нужные.
Кто-нибудь сталкивался с такой задачей? |
|||
4
regniws
25.03.16
✎
11:25
|
Настройки - Запуск 1С - Дополнительные - Отображать показатели
|
|||
5
Dmitry1c
25.03.16
✎
11:26
|
(4) и так для каждой 20й базы за день?
|
|||
6
Dmitry1c
25.03.16
✎
11:26
|
(4) эта галка не работает для новых баз.
|
|||
7
Dmitry1c
25.03.16
✎
11:27
|
(6) т.е. её нужно ставить для каждой базы отдельно
|
|||
8
regniws
25.03.16
✎
11:27
|
(7) Запускать не отладкой значит
|
|||
9
Dmitry1c
25.03.16
✎
11:27
|
Хм, может быть, где-то в реестре ключ хранится для этой настройки для каждой базы и можно править реестр, а не убивать через WinAPI
|
|||
10
Dmitry1c
25.03.16
✎
11:28
|
(8) отлаживать без отладчика - отличное решение.
|
|||
11
Любопытная
25.03.16
✎
11:29
|
Блин. Хотела уже обидеться, а потом поняла - я действительно уже ушла от того, чтобы по 20 новых баз в день открывать))
|
|||
12
regniws
25.03.16
✎
11:29
|
(10) не представляю работы 20 баз с отладчиком.
|
|||
13
Cyberhawk
25.03.16
✎
11:31
|
"где-то в реестре ключ хранится для этой настройки для каждой базы и можно править реестр, а не убивать через WinAPI" // Нет, это все хранится только в каталогах служебных файлов в разрезе каждой инфобазы
|
|||
14
Dmitry1c
25.03.16
✎
11:31
|
(13) так так, а поподробнее? в AppData?
|
|||
15
Карупян
25.03.16
✎
11:33
|
Раз в конфигуратор заходишь - значит можно зайти на на закладки настройки.
Без конфигуратора такое окошко не отображается |
|||
16
Dmitry1c
25.03.16
✎
11:34
|
Хм, а еще можно отHEXредакторить платформу, только найти то место, где хранится значение этого флажка для новых баз...
Ох, что же все так через... одно место. |
|||
17
Dmitry1c
25.03.16
✎
11:35
|
Кто-нибудь в практических целях использует эти счетчики производительности?
|
|||
18
Многолетний Апельсин
25.03.16
✎
11:36
|
Скомпилировать код к экзэшник, и положить в автозапуск например.
http://pastebin.com/0gvKf7d7 |
|||
19
Fish
25.03.16
✎
11:37
|
(16) Чтобы не через одно место, есть специальная галочка. Но есть любители всё делать через "одно место". :)
|
|||
20
Любопытная
25.03.16
✎
11:38
|
(17) Да, пару раз смотрела внимательно, когда надо было оптимизировать все, что можно и неможно)
|
|||
21
Dmitry1c
25.03.16
✎
11:45
|
(18) благодарю
|
|||
22
Dmitry1c
25.03.16
✎
11:46
|
(18) а ты проверял, у тебя работает? Я примерно тоже самое писал, но на шарпе.
|
|||
23
Cyberhawk
25.03.16
✎
11:50
|
||||
24
Serginio1
25.03.16
✎
11:51
|
(22) Там разные окна. Семерочные например так ищутся
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ПоискОкна { using System; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.InteropServices; using System.Text; public static class НайтиОкно { private const uint WM_GETTEXT = 0x000D; [DllImport("user32.dll", SetLastError = true)] private static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn, IntPtr lParam); private static IEnumerable<IntPtr> EnumerateProcessWindowHandles(Process process) { var handles = new List<IntPtr>(); foreach (ProcessThread thread in process.Threads) { EnumThreadWindows(thread.Id, (hWnd, lParam) => { handles.Add(hWnd); return true; }, IntPtr.Zero); } return handles; } [DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, StringBuilder lParam); [DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern int GetClassName( IntPtr hWnd, StringBuilder lpClassName, int nMaxCount ); [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern bool IsWindowVisible(IntPtr hWnd); public static void ПоказатьОкно(string НазваниеОкна) { string Заголовок="1С:Предприятие"; foreach (var processRunning in System.Diagnostics.Process.GetProcesses()) { if (processRunning.ProcessName.StartsWith("1cv7")) foreach (IntPtr handle in EnumerateProcessWindowHandles(processRunning)) { var wndCaption = new StringBuilder(1000); SendMessage(handle, WM_GETTEXT, wndCaption.Capacity, wndCaption); if (wndCaption.Length >= Заголовок.Length) if (wndCaption.ToString(0,Заголовок.Length)==Заголовок) if (!IsWindowVisible(handle)) ShowWindow(handle, 5); // var wndClass = new StringBuilder(255); // GetClassName(handle, wndClass, wndClass.Capacity); // Console.WriteLine("[{0:X8}] '{1}' '{2}'", handle, wndCaption, wndClass); } // Console.ReadLine(); } } #region Nested type: EnumThreadDelegate private delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam); #endregion } } |
|||
25
Broadbread
25.03.16
✎
11:54
|
||||
26
Dmitry1c
25.03.16
✎
11:54
|
(25) спасибо, пригодится
|
|||
27
Serginio1
25.03.16
✎
11:57
|
А вообще можешь через глобальный контекст получить главное окно и пройтись по окнам
http://rsdn.ru/forum/pda/2953653.flat http://catalog.mista.ru/public/457898/ |
|||
28
trad
25.03.16
✎
13:47
|
(0) 1000р, Снегопат и скрипт в одну строку
|
|||
29
orefkov
25.03.16
✎
13:51
|
+(28)
profileRoot.setValue("Launch/ShowServerCallCounter", false) |
|||
30
Карупян
25.03.16
✎
13:53
|
(29) Этот скрипт нужно вручную запускать на каждой базе?
|
|||
31
orefkov
25.03.16
✎
13:58
|
(30)
Зачем? Вписать эту строчку в файл с расширением js, прописать в автозагрузку снегопату, он сам будет запускаться при открытии базы. |
|||
32
ЧеловекДуши
25.03.16
✎
14:10
|
(0) Для 1С 8.ххх не уверен, что получится :)
|
|||
33
Dmitry1c
25.03.16
✎
14:12
|
мне кажется Orefkov договорился с 1С :)
|
|||
34
orefkov
25.03.16
✎
14:17
|
(32)
Только что с trad'ом проверили (29) - работает. (33) Чтобы "поймать" 1С, надо думать, как 1С :) |
|||
35
trdm
25.03.16
✎
14:32
|
(24) Пользуйся пастебином. Нафига такие портянки фигачить?
|
|||
36
Serginio1
25.03.16
✎
14:35
|
(35) Лениво
|
|||
37
trdm
25.03.16
✎
14:40
|
(36) Лечись от лени.
|
|||
38
Broadbread
25.03.16
✎
14:42
|
(36) Читаю ваши sql разборы на rsdn. Складывается мнение: о существовании параметризованных запросов и хранимых процедур там никто не в курсе.
|
|||
39
Serginio1
25.03.16
✎
14:48
|
(37) Спасибо (25)
(38) Спасибо за 25. Знают. Там проблема в том, что С++ ники против любого оверхедаи считают, что Linq to EF это ненужный продукт, из-за того что тратится время на на разбор дерева в рантайме, а не на этапе компиляции. На что я им привожу пример 1С. А на Linq кстати писать еще легче чем на 1С. Хранимых процедуры тоже мапятся на SQL http://metanit.com/sharp/entityframework/5.3.php http://metanit.com/sharp/entityframework/5.2.php |
|||
40
Serginio1
25.03.16
✎
14:49
|
(38) Кстати спасибо за наводку. Приведу как пример.
|
|||
41
Dmitry1c
25.03.16
✎
14:50
|
||||
42
Dmitry1c
25.03.16
✎
14:53
|
(38) дык хранимых процедур нету в 1С
|
|||
43
trdm
25.03.16
✎
14:56
|
(39) > Там проблема в том, что С++ ники против любого оверхеда.
Ну и правильно. Вы начните работать поинтенсивнее, тоже будете против оверхеда. Не люблю когда комп тормозит. И юзеры не любят.. А верхед этому очень способствует. |
|||
44
trdm
25.03.16
✎
14:57
|
(42) Есть возможность с ними работать. в клюшках это используется.
|
|||
45
Serginio1
25.03.16
✎
15:00
|
40+ кстати была тема про использование нестандартных функций в тапросе типа
https://msdn.microsoft.com/ru-ru/library/dd456857(v=vs.100).aspx |
|||
46
Serginio1
25.03.16
✎
15:04
|
(43) Ну а Linq to EF по сравнению с 1С оверхеда вообще нет.
Да и в большинстве то Linq применяется в Asp.Net. Так, что твой комп особенно то не тормозит. А на декстопе по сравнению с 1С ты их не заметишь. Зато скорость разработки в десятки выше чем на С++ |
|||
47
trdm
25.03.16
✎
15:07
|
(46) Net - уже сам по себе оверхед )))
|
|||
48
trdm
25.03.16
✎
15:08
|
(46) > Зато скорость разработки в десятки выше чем на С++
Ты уж поищи идиотов где-нибудь в другом месте для развеса такой лапши. |
|||
49
Serginio1
25.03.16
✎
15:11
|
(47) Угу.
(48) Угу. Поче му же 1С впереди планеты всей? 40+ http://stackoverflow.com/questions/29517627/entity-framework-6-code-first-custom-functions |
|||
50
Serginio1
25.03.16
✎
15:16
|
||||
51
trdm
25.03.16
✎
15:17
|
(49) > Поче му же 1С впереди планеты всей?
Потому что там кодинг такого уровня что с ним и средний школьник справится. |
|||
52
trdm
25.03.16
✎
15:18
|
var locations = context.Locations.Where(e => Functions.LatLongDistanceCalc(e.Lat, e.Long, lat, long) >= 10)
Разве от такого не должно тошнить? |
|||
53
Serginio1
25.03.16
✎
15:24
|
(52) А тебя от листинга на С++ не тошнит?
Нормальный код. Передается функция отбора. Чего тебя так коробит? Функциональный подход |
|||
54
Serginio1
25.03.16
✎
15:25
|
(51) И почему то особо нет криков на оверхед. А тут .Net уже тормоза.
|
|||
55
Serginio1
25.03.16
✎
15:30
|
(52) Есть другой синтаксис
var locations = from e in context.Locations where Functions.LatLongDistanceCalc(e.Lat, e.Long, lat, long) >= 10 select e Какой нравится, такой и выбирай. Бывает совмещение |
|||
56
Локи-13
25.03.16
✎
15:35
|
(5) 20 баз в день? зачем тебе 20 новых баз в день в отладчике?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |