- 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 призван предотвратить исключение.
Кто знает, как сделать правильно (дождаться запуска приложения)?
Стертор осваивает коооом
Так что - мимо.
Я начинал с азов, о дотнете ничего не знал, да и если бы знал, не разобрался бы.
Программистом знать не стремился, о VB узнал случайно.
В итоге я тогда выбрал с++, и посмотри, какая между нами разница теперь. Я профессиональный программист с профильным образованием и работой по специальности, а ты анскил с дельфи. Я очень благодарен случаю, что тогда выбрал с++, а не бейсик. Такие мелочи могут круто влиять на нашу жизнь.
Если б не этот один иф в неделю, я б вообще про программирование не знал и полировал бы багры. Программирование в школе - это отличный старт.
@Программистом знать не стремился, о VB узнал случайно.
В нашей школе не преподавали ни паскаля ни бейсика, да и компа у меня тогда не было. Интерес к кодингу разгорелся много лет спустя.
Хотя в любом случае ты прав: COM/ActiveX единственный вменяемый API к винде из этих ЯПов.
Советую еще изучить FoxPro и Lotus Notes, кстати
Хотя если идти делать карьеру в госорганах, лотус может помочь.
Если даже в нашей глубинке-дыре-трущобе их юзают, то что говорить о крупных организациях?
Месить дерьмо и переливать из пустого в порожнее с успехом можно можно и на других форумах. Интересных тем давно нет, как и стимула заходить.
Это интернеты, добро пожаловать.
http://www.ietf.org/rfc/rfc1855
Много буков, не осилил.
Какая-то хуита, кто в здравом уме будет всё это соблюдать?
FLAME OFF
:-)
http://www.ietf.org/rfc/rfc3092
Проигрываю с таких тезисов. Хуи не сосет, но все же пидор. Инь-янь.
А теперь - дискотека! https://www.youtube.com/watch?v=LK167swgoG8
https://en.wikipedia.org/wiki/Quebec_French_profanity
http://rusmontreal.com/kvebekskij-francuzskij-yazyk/
Почему?
Нет, ну вполне себе ругательства.
Грязный пёс! Свиное рыло!
Чтоб тебя в дугу скрутило!
Чтоб ты лаптем подавился!
Чтоб сквозь землю провалился!
Чтоб пропасть тебе, собаке,
Чтоб подохнуть в буераке!
Чтоб тебе на том свету
Провалиться на мосту!
Не отсюда ли пошли свинособаки?
Пидор - это не профессия, а состояние души. Это не почтальон или гардеробщик, чтобы по будням с 8 до 17 показывать делом свою ориентацию.
А вот, например, человек сидит в интернетах, на улицу к реальным людям не выходит и думает о тёплой ламповой тян. Какая у него, по-вашему, ориентация?
Думаю, они извращенцы, а не гетеросексуалы. Так же как зоофил испытывает половое влечение к собакам, а копрофаг - к говну, так и девственник-домосед возбуждается от весьма необычного объекта - своих мечтаний. Ты же не пытаешься определить копрофила в гомо- или гетеросексуалы? Вот и тридцатилетнего девственника не надо.
ВОЗ приравняла тридцатилетних девственников к инвалидам, и я думаю, это правильно. Они больные.
/rf/
И как, помогло?
Другим посетителям борды? Скорее да, чем нет. Ибо другие разделы почистили от этих историй успеха...
Ты за то, чтобы не ворошить муравейник?
This. А то можно случайно задеть людей с тонкой душевной организацией :)
Почему бы и нет? Быть состоятельным не так уж и плохо, тем паче, коли эти деньги заработаны не любовью, а умом. Главное при таком раскладе - быдлом не стать.
Ну почему - можно кочегаром поработать.
https://www.youtube.com/watch?v=SzClkMxdsgI
> Размытие гендерных ... отличий - это ... охуенно.
у меня для тебя плохие новости
говнокод стал какой-то площадкой для каминаутов
теперь вот у нас есть бисексуал с дочкой, который рад размытию гендерных отличий - чтобы мальчик-девочка какая в жопу разница
attack helicopter?
Девочка-волшебница же.
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.
-- 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!
Обычно так говорят девушки весрм 86 кг
а я хочу быть чайкой
и весело летая
на головы всем срать
Один мой знакомый?
Со мной всё так, но 3_14dar
Есть значок в контекстном меню дисков (приложение регистрирует COM-сервер). При клике по значку надо отправить в основную прогу команду (букву диска). Пытался сделать с помощью PostMessage: не катит, недостаточно прав: моя прога работает от админа, а проводник - нет. Как это реализовано в антивирусах и прочем софте?
Типа такого: 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 или как там его в винде)
---------------
зы: расскажите мне еще разок как в виндуосе все просто и интуитивно понятно
"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."
так-то у приложений разный address space. Данные между ними гонять можно, а вот код -- куда сложнее этоне джаваскрипт.
Сейчас придет Борманд и расскажет что можно пометить страницу как Execute и сделать самомодифириуемый код
Ком-сервер каждый раз пытается получить хэндл (если не каждый раз - будет АВ, если прога будет выгружена), разыменовывает указатель, пишет в поле структуры букву диска и вызывает метод по указателю, из другого поля.
@Сейчас придет Борманд и расскажет что можно пометить страницу как Execute и сделать самомодифириуемый код
Борманд идёт смотреть аниме.
Если каждый раз - тоже будет, но редко, не с вероятностью 100%.
> вызывает метод по указателю
Как ты будешь звать функцию из другого процесса? Поместишь весь нужный код в shared memory, как предлагает barop?
> Борманд идёт смотреть аниме.
Ваших ужастиков начитаешься - хрен уснёшь потом. Вот и приходится аниме смотреть...
Ох. И то правда. Спутал с dll...
всё-таки, кошерный IPC делается через мейлслоты... Надыбаидзе л код на делфях, сижу, разбираю.
Запилил на мейлслотах, работает.
Мы в 10ке тем не менее решали и решили задачу запуска из службы с правами систем оконного приложения в интерактивной сессии юзера (даже близко не админа) с правами систем, без предупреждений uac.
Что же про ipc - если писать под винду на современных инструментах, то http rest локальный обмен поднимается за 5 минут.
звучит не очень секурно
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".
>> - если писать под винду на современных инструментах
Стертор пишет на дельфях;)
@Стертор пишет на дельфях;)
А что, делфи вызывает какие-то иные API? Что за бред?
А так как у тебя нет ничего кроме стандартной библиотеки дельфей и голого Win32 API над голов под нею, то остается довольствоваться теми IPC, которые предлагает винда. Благо их правда много
Боже упаси.
Тебя ждет увлекательное путешествие в мир COM, интерфейса IUnknown, языка IDL, понятия "апартаменты",и длинных CLSID.
А когда ты захочешь чтобы твоя программа работала на соседней машине, то к тебе придет DCOM, работающий поверх никак не документированного RPC, и придется уметь RPC over HTTP чтобы оно ходило через файрволы итд.
Вообще COM был очень крутым, конечно. В те времена, когда Win2K была "сервером приложений"
Я не программист. Деньги на хлеб насущный зарабатываю совсем иным. В качестве источника дохода свои знания IT не рассматриваю вовсе.
Зачем же мне парить мозги с .net, если кроме FreeWare ничего не напишу?..
@А вообще, иди нахуй.
Это твой удел.
Ну-ну.
Ты удивишься, но драйверописцы сейчас тоже не юзают асм :) В ядре тех же винды или линуха тоже всё через 100500 прослоек, абстракций и API.
@каждую мелкую хуйню спрашиваешь
Мне очень помогли товарищи, борманд, d... ++, 1024--. Инканус, кегги, тарас и роман кашицын иногда давали ценные советы.
Кстати, не так давно я затронул тему сериализации данных - оказалось, что это далеко не тривиальная задача.
Блядь, я хуею, дорогая редакция. В жаве или питоне это один вызов. А json высрать вообще раз плюнуть.
Возможно, ты очень умный человек, профессионал, но такое взрывное поведение очень тебе мешает, ибо ты склонен делать преждевременные выводы.
Речь шла о структурированных данных, специального формата - например, база сигнатур антивируса. Заголовок базы содержит количество сигнатур. Сама сигнатура содержит хэш вируса, его тип, дату добавления, фамилию сотрудника. А теперь прикинь: при добавлении сигнатуры в лабе выбило свет и файл был поврежден, половина сигнатур накрылась. Внимание, вопрос: как ты узнаешь, валидный ли файл?
Даже голые файлы можно безопасно обновлять.
Нормально звучит. Это не для посторонних. Тот самый случай, когда МС угадал, обозвав "Этот компьютер" вместо "Мой компьютер"