Archive for October, 2011

LED strips

Saturday, October 29th, 2011

Решил дома сделать подсветку в холле и коридоре на светодиодных лентах. Всего там по периметру под потолком нужно будет около 30 метров ленты, но пока для пробы купил 2*5 метров на ebay:
http://www.ebay.com/itm/320773030394?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Покупал 20 октября, а сегодня забрал их уже у себя на почте. Очень оперативно. Жаль только, что китаец не дает номер для трекинга.

Кстати в тот же день (20 октября) я заказывал инфракрасный контроллер для управления этими лентами – тоже пришел сегодня и забрал его на почте!

Detect if the current user is logged as administrator

Wednesday, October 26th, 2011

From Vista and Windows 7 times a lot of operations are disabled for users without administrator privilegies.

You may use the next code to test if logged user is in administrator group:

function IsAdmin: Boolean; 
const 
  DOMAIN_ALIAS_RID_ADMINS = $00000220; 
  SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); 
  SECURITY_BUILTIN_DOMAIN_RID = $00000020; 
var 
  hAccessToken: THandle; 
  ptgGroups: PTokenGroups; 
  dwInfoBufferSize: DWORD; 
  psidAdministrators: PSID; 
  x: Integer; 
  bSuccess: BOOL; 
begin 
  Result := False; 
  bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True, 
    hAccessToken); 
  if not bSuccess then 
  begin 
    if GetLastError = ERROR_NO_TOKEN then 
    bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, 
                                  hAccessToken); 
  end; 
  if bSuccess then 
  begin 
    GetMem(ptgGroups, 1024); 
    bSuccess := GetTokenInformation(hAccessToken, TokenGroups, 
                                    ptgGroups, 1024, dwInfoBufferSize); 
    CloseHandle(hAccessToken); 
    if bSuccess then 
    begin 
      AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, 
        SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 
        0, 0, 0, 0, 0, 0, psidAdministrators); 
      {$R-} 
      for x := 0 to ptgGroups.GroupCount - 1 do 
        if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then 
        begin 
          Result := True; 
          Break; 
        end; 
      {$R+} 
      FreeSid(psidAdministrators); 
    end; 
    FreeMem(ptgGroups); 
  end; 
end;

ASUS p320 battery

Friday, October 7th, 2011

Вчера заказал на ebay батарейку к своему смартфону

Сначала хотел купить прямо в местной лавке за 155 грн (~$19), но оказалось, что у них их нет в наличии и в скором времени не появятся. Поэтому заказал у китайцев. За те же деньги будет два аккумулятора

Сегодня уже китаец выслал номер для трекинга (RT108590439HK):
http://www.hongkongpost.com/eng/tracking/index.htm
Он пока еще не детектится и нужно подождать пару дней

Кстати во время оплаты через PayPal почему-то прошла конвертация через гривны. Т.е. эти $20 сначала конвертнулись в гривны, а потом опять в доллары для списания с долларовой карты Visa. Банк получил дополнительные 50 центов;-)
Раньше у меня было выставлено в PayPal платить в валюте продавца без конвертации. Вчера хотел найти эту опцию и не нашел…

PS: почтальон принес домой посылку днем 17 октября. Довольно оперативно