- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
function FindTask(run:boolean=false):boolean;
var
TaskService: ITaskService;
Folder: ITaskFolder;
Tasks: IRegisteredTaskCollection;
Task: IRegisteredTask;
RTask:IRunningTask;
Action:IAction;
i: Integer;
Path:string;
begin
Result:=false;
OleCheck(CoInitialize(nil));
try
OleCheck(CoCreateInstance(CLSID_TaskScheduler, nil, CLSCTX_INPROC_SERVER, IID_ITaskService, TaskService));
OleCheck(TaskService.Connect(Null, Null, Null, Null));
OleCheck(TaskService.GetFolder('\', Folder));
OleCheck(Folder.GetTasks(0, Tasks));
if Tasks.Count > 0 then
begin
for I:=1 to Tasks.Count do
begin
Task:=Tasks.Item[i];
if Task <> nil then
begin
if WideSameText(Task.Name, AppTaskName) then
begin
if task.Definition.Actions.Count >0 then
begin
Action:=task.Definition.Actions.Item[1];
Path:=IExecAction(Action).Path;
Path:=StringReplace(Path,'"','',[rfReplaceAll]);
if not WideSameText(Path, ParamStr(0)) then
Break;
end
else
Exit;
if Run then
//begin
OleCheck(Task.Run(Null, RTask));
// try
// Sleep(3000);
// Rtask.Refresh;
// Result:=(rTask.State=TASK_STATE_RUNNING);
// except
// end;
// Exit;
//end
//else
//begin
Result:=true;
Break;
//end;
end;
Task:=nil;
end;
end;
end;
TaskService:=nil;
finally
TaskService:=nil;
Action:=nil;
Folder:=nil;
Tasks:=nil;
Task:=nil;
RTask:=nil;
CoUninitialize();
end;
end;
Олеблядство. Код на строке 45 кидает исключение "Ни один экземпляр задачи не запущен", ибо метод Run асинхронен.
Костыль на строке 43 призван предотвратить исключение.
Кто знает, как сделать правильно (дождаться запуска приложения)?
rotretS 31.12.2016 23:45 # −2
guestinho 01.01.2017 00:05 # −3
barop 01.01.2017 00:59 # −4
barop 01.01.2017 00:33 # −4
Стертор осваивает коооом
Dr_Stertor 01.01.2017 15:32 # −3
Так что - мимо.
3_14dar 01.01.2017 21:34 # −106
3_14dar 02.01.2017 02:28 # −2
Dr_Stertor 02.01.2017 10:17 # 0
Я начинал с азов, о дотнете ничего не знал, да и если бы знал, не разобрался бы.
Программистом знать не стремился, о VB узнал случайно.
barop 02.01.2017 12:41 # 0
Dr_Stertor 02.01.2017 13:03 # 0
3_14dar 02.01.2017 19:34 # 0
inkanus-gray 02.01.2017 14:04 # 0
3_14dar 02.01.2017 19:36 # +2
efg 02.01.2017 13:29 # −2
В итоге я тогда выбрал с++, и посмотри, какая между нами разница теперь. Я профессиональный программист с профильным образованием и работой по специальности, а ты анскил с дельфи. Я очень благодарен случаю, что тогда выбрал с++, а не бейсик. Такие мелочи могут круто влиять на нашу жизнь.
bormand 02.01.2017 13:30 # +2
inkanus-gray 02.01.2017 14:02 # +3
efg 02.01.2017 14:17 # 0
1024-- 02.01.2017 22:26 # +2
Если б не этот один иф в неделю, я б вообще про программирование не знал и полировал бы багры. Программирование в школе - это отличный старт.
dxd 02.01.2017 14:48 # 0
Dr_Stertor 02.01.2017 15:29 # 0
@Программистом знать не стремился, о VB узнал случайно.
В нашей школе не преподавали ни паскаля ни бейсика, да и компа у меня тогда не было. Интерес к кодингу разгорелся много лет спустя.
3_14dar 02.01.2017 19:35 # 0
barop 01.01.2017 23:24 # 0
Хотя в любом случае ты прав: COM/ActiveX единственный вменяемый API к винде из этих ЯПов.
Советую еще изучить FoxPro и Lotus Notes, кстати
bakagaijin 02.01.2017 01:26 # +2
Хотя если идти делать карьеру в госорганах, лотус может помочь.
Dr_Stertor 02.01.2017 10:20 # +1
Если даже в нашей глубинке-дыре-трущобе их юзают, то что говорить о крупных организациях?
bakagaijin 02.01.2017 11:20 # 0
Dr_Stertor 02.01.2017 21:48 # 0
Месить дерьмо и переливать из пустого в порожнее с успехом можно можно и на других форумах. Интересных тем давно нет, как и стимула заходить.
bakagaijin 02.01.2017 21:54 # +1
Это интернеты, добро пожаловать.
Dr_Stertor 02.01.2017 22:34 # +1
bakagaijin 02.01.2017 23:13 # +1
inkanus-gray 02.01.2017 23:27 # +1
http://www.ietf.org/rfc/rfc1855
Много буков, не осилил.
bakagaijin 02.01.2017 23:31 # +1
Какая-то хуита, кто в здравом уме будет всё это соблюдать?
FLAME OFF
:-)
inkanus-gray 02.01.2017 23:34 # +1
http://www.ietf.org/rfc/rfc3092
bakagaijin 02.01.2017 23:40 # +2
inkanus-gray 03.01.2017 01:48 # 0
dxd 03.01.2017 10:42 # +3
inkanus-gray 03.01.2017 10:44 # +1
CHayT 03.01.2017 10:46 # +1
bormand 03.01.2017 07:46 # +3
3_14dar 02.01.2017 22:30 # 0
Dr_Stertor 02.01.2017 22:31 # 0
3_14dar 02.01.2017 23:24 # 0
bakagaijin 02.01.2017 23:49 # 0
efg 03.01.2017 00:00 # 0
Проигрываю с таких тезисов. Хуи не сосет, но все же пидор. Инь-янь.
bakagaijin 03.01.2017 00:03 # 0
rotretS 03.01.2017 00:22 # 0
bakagaijin 03.01.2017 00:28 # +2
bakagaijin 03.01.2017 00:49 # 0
А теперь - дискотека! https://www.youtube.com/watch?v=LK167swgoG8
inkanus-gray 03.01.2017 00:59 # +3
bakagaijin 03.01.2017 01:06 # 0
inkanus-gray 03.01.2017 01:16 # +2
bakagaijin 03.01.2017 01:17 # 0
inkanus-gray 03.01.2017 01:21 # +3
https://en.wikipedia.org/wiki/Quebec_French_profanity
http://rusmontreal.com/kvebekskij-francuzskij-yazyk/
Почему?
bakagaijin 03.01.2017 01:24 # +3
bakagaijin 03.01.2017 01:28 # +3
CHayT 03.01.2017 01:33 # +3
inkanus-gray 03.01.2017 01:34 # +3
bakagaijin 03.01.2017 01:37 # +3
Нет, ну вполне себе ругательства.
CHayT 03.01.2017 01:40 # +3
inkanus-gray 03.01.2017 01:43 # +3
CHayT 03.01.2017 01:50 # +3
inkanus-gray 03.01.2017 01:56 # 0
CHayT 03.01.2017 02:02 # +1
CHayT 03.01.2017 01:27 # +1
bakagaijin 03.01.2017 01:31 # +1
inkanus-gray 03.01.2017 01:32 # 0
bakagaijin 03.01.2017 01:34 # +1
inkanus-gray 03.01.2017 01:41 # +1
Грязный пёс! Свиное рыло!
Чтоб тебя в дугу скрутило!
Чтоб ты лаптем подавился!
Чтоб сквозь землю провалился!
Чтоб пропасть тебе, собаке,
Чтоб подохнуть в буераке!
Чтоб тебе на том свету
Провалиться на мосту!
Не отсюда ли пошли свинособаки?
bakagaijin 03.01.2017 01:47 # +1
1024-- 03.01.2017 00:12 # 0
Пидор - это не профессия, а состояние души. Это не почтальон или гардеробщик, чтобы по будням с 8 до 17 показывать делом свою ориентацию.
А вот, например, человек сидит в интернетах, на улицу к реальным людям не выходит и думает о тёплой ламповой тян. Какая у него, по-вашему, ориентация?
inkanus-gray 03.01.2017 00:13 # +2
bakagaijin 03.01.2017 00:17 # +2
efg 03.01.2017 00:33 # +1
dxd 03.01.2017 00:23 # 0
rotretS 03.01.2017 00:25 # 0
efg 03.01.2017 00:26 # 0
Думаю, они извращенцы, а не гетеросексуалы. Так же как зоофил испытывает половое влечение к собакам, а копрофаг - к говну, так и девственник-домосед возбуждается от весьма необычного объекта - своих мечтаний. Ты же не пытаешься определить копрофила в гомо- или гетеросексуалы? Вот и тридцатилетнего девственника не надо.
ВОЗ приравняла тридцатилетних девственников к инвалидам, и я думаю, это правильно. Они больные.
inkanus-gray 03.01.2017 00:57 # +2
efg 03.01.2017 01:47 # +2
inkanus-gray 03.01.2017 01:50 # +1
efg 03.01.2017 01:56 # 0
inkanus-gray 03.01.2017 01:57 # +3
barop 03.01.2017 15:47 # 0
inkanus-gray 03.01.2017 16:11 # +2
defecate-plusplus 03.01.2017 16:51 # 0
bormand 03.01.2017 16:53 # 0
/rf/
defecate-plusplus 03.01.2017 16:56 # 0
И как, помогло?
bormand 03.01.2017 16:57 # 0
Другим посетителям борды? Скорее да, чем нет. Ибо другие разделы почистили от этих историй успеха...
defecate-plusplus 03.01.2017 17:00 # 0
Ты за то, чтобы не ворошить муравейник?
bormand 03.01.2017 17:09 # 0
This. А то можно случайно задеть людей с тонкой душевной организацией :)
guest 03.01.2017 17:01 # +5
defecate-plusplus 03.01.2017 17:07 # 0
Dr_Stertor 03.01.2017 17:34 # +2
Почему бы и нет? Быть состоятельным не так уж и плохо, тем паче, коли эти деньги заработаны не любовью, а умом. Главное при таком раскладе - быдлом не стать.
CHayT 03.01.2017 17:07 # +3
bormand 03.01.2017 17:11 # 0
CHayT 03.01.2017 17:16 # +1
guest 03.01.2017 17:11 # 0
bormand 03.01.2017 17:15 # 0
Ну почему - можно кочегаром поработать.
CHayT 03.01.2017 17:23 # 0
bakagaijin 03.01.2017 01:04 # +1
bakagaijin 03.01.2017 01:08 # 0
bakagaijin 03.01.2017 01:16 # 0
https://www.youtube.com/watch?v=SzClkMxdsgI
guest 03.01.2017 01:18 # +7
bakagaijin 03.01.2017 01:23 # +1
defecate-plusplus 03.01.2017 08:59 # +5
> Размытие гендерных ... отличий - это ... охуенно.
у меня для тебя плохие новости
говнокод стал какой-то площадкой для каминаутов
теперь вот у нас есть бисексуал с дочкой, который рад размытию гендерных отличий - чтобы мальчик-девочка какая в жопу разница
defecate-plusplus 03.01.2017 09:06 # −1
attack helicopter?
bormand 03.01.2017 09:48 # 0
Девочка-волшебница же.
CHayT 03.01.2017 10:18 # −1
bormand 03.01.2017 10:21 # +4
I sexually Identify as an Attack Helicopter. Ever since I was a boy I dreamed of soaring over the oilfields dropping hot sticky loads on disgusting foreigners. People say to me that a person being a helicopter is Impossible and I’m fucking retarded but I don’t care, I’m beautiful. I’m having a plastic surgeon install rotary blades, 30 mm cannons and AMG-114 Hellfire missiles on my body. From now on I want you guys to call me “Apache” and respect my right to kill from above and kill needlessly. If you can’t accept me you’re a heliphobe and need to check your vehicle privilege. Thank you for being so understanding.
CHayT 03.01.2017 10:37 # +2
-- Men who like skinny women are disgusting! Only dogs go for bones.
-- Actually I identify myself as a dogkin. You just made me feel oppressed and objectified.
-- I-I'm sorry...
-- Check your privilege!
barop 03.01.2017 16:14 # +3
Обычно так говорят девушки весрм 86 кг
CHayT 03.01.2017 17:04 # +2
barop 05.01.2017 23:04 # +2
а я хочу быть чайкой
и весело летая
на головы всем срать
bakagaijin 03.01.2017 11:39 # +5
Dr_Stertor 03.01.2017 14:13 # 0
bormand 03.01.2017 08:05 # 0
Один мой знакомый?
inkanus-gray 03.01.2017 10:23 # 0
bakagaijin 03.01.2017 11:38 # 0
rotretS 03.01.2017 00:18 # 0
Со мной всё так, но 3_14dar
rotretS 05.01.2017 20:34 # 0
Есть значок в контекстном меню дисков (приложение регистрирует COM-сервер). При клике по значку надо отправить в основную прогу команду (букву диска). Пытался сделать с помощью PostMessage: не катит, недостаточно прав: моя прога работает от админа, а проводник - нет. Как это реализовано в антивирусах и прочем софте?
barop 05.01.2017 22:07 # +1
Типа такого: https://msdn.microsoft.com/ru-ru/library/windows/desktop/cc144110(v=vs.85).aspx ?
А твое приложение это _другое_ приложение которому ты хочешь сообщить что юзер клинкнул на твою говноиконку на диске?
Если у тебя не достаточно высок уровень привелегий, то у тебя нет права срать Windows Messages в другое окно:
Starting with Windows Vista, message posting is subject to UIPI. The thread of a process can post messages only to message queues of threads in processes of lesser or equal integrity level.
UIPI: https://en.wikipedia.org/wiki/User_Interface_Privilege_Isolation
Тут написано что нужно сделать: подписать свое приложение и поставиться в program files.
UI Accessibility Applications can be allowed bypass UIPI by setting their "uiAccess" value to TRUE as part of their manifest file. However, for this flag to be honored by Windows UIPI, the application must be installed in the Program Files or Windows directory, and the application must be signed by a valid code signing authority. To install an application to either of these locations requires at least a user with local administrator privilege running in an elevated process with high integrity level.
Но мне кажется что это треш и говно и, вероятно, можно подумать в сторону нормального IPC: (примерно как в юниксе юзать сигналы вместо unix domain sockets для общения между процессами)
IPC в спер Microsoft Windows бывают:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx
Выбирай)
Я бы сделал твое приложение COM сервером чтобы оно запускалось само при первом обращении (не уверен правда что у тебя будут права, Гг)
Или использовал бы сокеты или shared mem (file mappings или как там его в винде)
---------------
зы: расскажите мне еще разок как в виндуосе все просто и интуитивно понятно
barop 05.01.2017 22:15 # 0
"High IL and Low IL processes can still communicate with each other by using files, Named pipes, LPC or other shared objects. The shared object must have an integrity level as low as the Low IL process and should be shared by both the Low IL and High IL processes."
rotretS 05.01.2017 22:51 # 0
barop 05.01.2017 22:56 # 0
так-то у приложений разный address space. Данные между ними гонять можно, а вот код -- куда сложнее этоне джаваскрипт.
Сейчас придет Борманд и расскажет что можно пометить страницу как Execute и сделать самомодифириуемый код
rotretS 05.01.2017 23:11 # 0
Ком-сервер каждый раз пытается получить хэндл (если не каждый раз - будет АВ, если прога будет выгружена), разыменовывает указатель, пишет в поле структуры букву диска и вызывает метод по указателю, из другого поля.
@Сейчас придет Борманд и расскажет что можно пометить страницу как Execute и сделать самомодифириуемый код
Борманд идёт смотреть аниме.
bormand 06.01.2017 11:18 # 0
Если каждый раз - тоже будет, но редко, не с вероятностью 100%.
> вызывает метод по указателю
Как ты будешь звать функцию из другого процесса? Поместишь весь нужный код в shared memory, как предлагает barop?
> Борманд идёт смотреть аниме.
Ваших ужастиков начитаешься - хрен уснёшь потом. Вот и приходится аниме смотреть...
Dr_Stertor 06.01.2017 17:35 # 0
Ох. И то правда. Спутал с dll...
всё-таки, кошерный IPC делается через мейлслоты... Надыбаидзе л код на делфях, сижу, разбираю.
guest 06.01.2017 19:21 # +1
Запилил на мейлслотах, работает.
defecate-plusplus 05.01.2017 22:23 # −1
Мы в 10ке тем не менее решали и решили задачу запуска из службы с правами систем оконного приложения в интерактивной сессии юзера (даже близко не админа) с правами систем, без предупреждений uac.
Что же про ipc - если писать под винду на современных инструментах, то http rest локальный обмен поднимается за 5 минут.
barop 05.01.2017 23:28 # −1
звучит не очень секурно
https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684190(v=vs.85).aspx )
Как root, даже хуже (ибо act as computer on network)
Он, кстати, умеет interact with desktop (кажется), а вот другим надо ставить галочку "allow service interact with desktop".
>> - если писать под винду на современных инструментах
Стертор пишет на дельфях;)
rotretS 05.01.2017 23:31 # 0
@Стертор пишет на дельфях;)
А что, делфи вызывает какие-то иные API? Что за бред?
barop 05.01.2017 23:33 # 0
А так как у тебя нет ничего кроме стандартной библиотеки дельфей и голого Win32 API над голов под нею, то остается довольствоваться теми IPC, которые предлагает винда. Благо их правда много
rotretS 05.01.2017 23:39 # 0
Боже упаси.
barop 05.01.2017 23:40 # +1
rotretS 05.01.2017 23:41 # −1
barop 05.01.2017 23:46 # 0
Тебя ждет увлекательное путешествие в мир COM, интерфейса IUnknown, языка IDL, понятия "апартаменты",и длинных CLSID.
А когда ты захочешь чтобы твоя программа работала на соседней машине, то к тебе придет DCOM, работающий поверх никак не документированного RPC, и придется уметь RPC over HTTP чтобы оно ходило через файрволы итд.
Вообще COM был очень крутым, конечно. В те времена, когда Win2K была "сервером приложений"
rotretS 05.01.2017 23:53 # 0
Я не программист. Деньги на хлеб насущный зарабатываю совсем иным. В качестве источника дохода свои знания IT не рассматриваю вовсе.
Зачем же мне парить мозги с .net, если кроме FreeWare ничего не напишу?..
3_14dar 06.01.2017 06:53 # −3
Dr_Stertor 06.01.2017 10:51 # 0
@А вообще, иди нахуй.
Это твой удел.
bormand 06.01.2017 11:13 # 0
Ну-ну.
Dr_Stertor 06.01.2017 11:16 # 0
bormand 06.01.2017 11:26 # 0
Dr_Stertor 06.01.2017 11:29 # 0
bormand 06.01.2017 11:32 # 0
Ты удивишься, но драйверописцы сейчас тоже не юзают асм :) В ядре тех же винды или линуха тоже всё через 100500 прослоек, абстракций и API.
Dr_Stertor 06.01.2017 11:37 # 0
guest 06.01.2017 22:35 # 0
Dr_Stertor 06.01.2017 22:43 # 0
@каждую мелкую хуйню спрашиваешь
Мне очень помогли товарищи, борманд, d... ++, 1024--. Инканус, кегги, тарас и роман кашицын иногда давали ценные советы.
Кстати, не так давно я затронул тему сериализации данных - оказалось, что это далеко не тривиальная задача.
guest 06.01.2017 22:46 # 0
guest 06.01.2017 22:48 # 0
Блядь, я хуею, дорогая редакция. В жаве или питоне это один вызов. А json высрать вообще раз плюнуть.
Dr_Stertor 06.01.2017 22:55 # 0
Возможно, ты очень умный человек, профессионал, но такое взрывное поведение очень тебе мешает, ибо ты склонен делать преждевременные выводы.
Речь шла о структурированных данных, специального формата - например, база сигнатур антивируса. Заголовок базы содержит количество сигнатур. Сама сигнатура содержит хэш вируса, его тип, дату добавления, фамилию сотрудника. А теперь прикинь: при добавлении сигнатуры в лабе выбило свет и файл был поврежден, половина сигнатур накрылась. Внимание, вопрос: как ты узнаешь, валидный ли файл?
huesto 06.01.2017 23:12 # +2
guest 06.01.2017 23:15 # +1
Даже голые файлы можно безопасно обновлять.
guest 06.01.2017 23:25 # 0
guest 07.01.2017 00:19 # 0
defecate-plusplus 05.01.2017 23:40 # +2
Нормально звучит. Это не для посторонних. Тот самый случай, когда МС угадал, обозвав "Этот компьютер" вместо "Мой компьютер"