loading...
مرجع مهندسی نرم افزار
آخرین ارسال های انجمن
حامد شیرزاد بازدید : 582 پنجشنبه 27 مهر 1391 نظرات (0)

شبکه های اجتماعی این روزها به قدرتمندترین رسانه های دنیای مجازی تبدیل شده اند . هر چیزی که روی شبکه های اجتماعی قرار میگیرد ، امکان این را خواهد داشت که به سرعت فراگیر شده و به سمع و نظر خیل عظیمی از کاربران برسد . شاید شما هم که مدیر یک وبسایت یا وبلاگ هستید ، بخواهید که مطالب تان روی شبکه های اجتماعی قرار بگیرد . مسلما اگر بخواهید به صورت تک تک لینک مطالب خود را روی شبکه های اجتماعی قرار دهید ، کار بسیار وقت گیری خواهد بود . بنابراین باید از روش های اتوماتیک برای انجام این سری از کارها استفاده کرد . در این مطلب میخواهیم سرویسی را به شما معرفی کنیم که میتواند مطالب وبسایت شما را از طریق فید روی شبکه اجتماعی گوگل پلاس قرار دهد .

حامد شیرزاد بازدید : 1166 دوشنبه 26 دی 1390 نظرات (5)

برای تبدیل صفحه وب به PDF به صورت آنلاین می توانید از سایت زیر استفاده کنید که سرعت بالا و محیط ساده ای را برای کار ارائه می دهد:

برای شروع تنها کافیست که آدرس صفحه مورد نظر را در این سایت وارد کرده و منتظر تبدیل باشید . در عرض چند ثانیه نسخه PDF تولید شده برای دانلود آماده خواهد شد . در این سایت امکان به اشتراک گذاری صفحات تولید شده در google docs هم وجود دارد.

حامد شیرزاد بازدید : 946 پنجشنبه 15 دی 1390 نظرات (0)

یکی از وحشتناک‌ترین لحظاتی که ما در عمر کامپیوتریمان حتما تجربه می‌کنیم ریست شدن کامپیوتر است. حالا باید ساعتها صبر کنیم تا دوباره کامپیوترمان آماده به کار بشود. درست است. دو سه دقیقه بیشتر نیست ولی قبول کنید انگار چند ساعت ما را علاف خودش می‌کند!

در این مطلب قصد داریم 10 راه بیان کنیم برای این که این زمان ( که ما به آن می‌گوییم زمان بوت شدن ) را کاهش بدهیم. هزاران راه برای این کار در اینترنت هست اما واقعا چندتا از آنها عملی هستند؟ در این مقاله ده راه دستچین شده است که مطمئنا برای همه ما جواب خواهند داد. 
با ما باشید تا از این به بعد سیستم شما سریعتر از همیشه و دست به سینه گوش به فرمان شما باشد.

حامد شیرزاد بازدید : 855 پنجشنبه 15 دی 1390 نظرات (0)

یکی از وحشتناک‌ترین لحظاتی که ما در عمر کامپیوتریمان حتما تجربه می‌کنیم ریست شدن کامپیوتر است. حالا باید ساعتها صبر کنیم تا دوباره کامپیوترمان آماده به کار بشود. درست است. دو سه دقیقه بیشتر نیست ولی قبول کنید انگار چند ساعت ما را علاف خودش می‌کند!

در این مطلب قصد داریم 10 راه بیان کنیم برای این که این زمان ( که ما به آن می‌گوییم زمان بوت شدن ) را کاهش بدهیم. هزاران راه برای این کار در اینترنت هست اما واقعا چندتا از آنها عملی هستند؟ در این مقاله ده راه دستچین شده است که مطمئنا برای همه ما جواب خواهند داد. 
با ما باشید تا از این به بعد سیستم شما سریعتر از همیشه و دست به سینه گوش به فرمان شما باشد.

حامد شیرزاد بازدید : 1158 پنجشنبه 15 دی 1390 نظرات (0)

function CalculateAge(Birthday, CurrentDate: TDate): Integer; 
var 
  Month, Day, Year, CurrentYear, CurrentMonth, CurrentDay: Word; 
begin 
  DecodeDate(Birthday, Year, Month, Day); 
  DecodeDate(CurrentDate, CurrentYear, CurrentMonth, CurrentDay); 
  if (Year = CurrentYear) and (Month = CurrentMonth) and (Day = CurrentDay) then 
  begin 
    Result := 0; 
  end 
  else 
  begin 
    Result := CurrentYear - Year; 
    if (Month > CurrentMonth) then 
      Dec(Result) 
    else 
    begin 
      if Month = CurrentMonth then 
        if (Day > CurrentDay) then 
          Dec(Result); 
    end; 
  end; 
end; 


procedure TForm1.Button1Click(Sender: TObject); 
begin 
  Label1.Caption := Format('Your age is %d', [CalculateAge(StrToDate('01.03.1953'), Date)]); 
end;
حامد شیرزاد بازدید : 1044 پنجشنبه 15 دی 1390 نظرات (0)
uses 
  WinInet; 

const 
  MODEM = 1; 
  LAN = 2; 
  PROXY = 4; 
  BUSY = 8; 


function GetConnectionKind(var strKind: string): Boolean; 
var 
  flags: DWORD; 
begin 
  strKind := ''; 
  Result := InternetGetConnectedState(@flags, 0); 
  if Result then 
  begin 
    if (flags and MODEM) = MODEM then strKind := 'Modem'; 
    if (flags and LAN) = LAN then strKind := 'LAN'; 
    if (flags and PROXY) = PROXY then strKind := 'Proxy'; 
    if (flags and BUSY) = BUSY then strKind := 'Modem Busy'; 
  end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  strKind: string; 
begin 
  if GetConnectionKind(strKind) then 
    ShowMessage(strKind); 
end;
حامد شیرزاد بازدید : 1126 شنبه 03 دی 1390 نظرات (0)
procedure TForm1.Button1Click(Sender: TObject) ;
 
  function FuncAvail(dllName, funcName: string; var p: pointer): boolean;
  var
    lib: THandle;
  begin
    result := false;
    p := nil;
    if LoadLibrary(PChar(dllName)) = 0 then exit;
    lib := GetModuleHandle(PChar(dllName)) ;
    if lib <> 0 then
    begin
     p := GetProcAddress(lib, PChar(funcName)) ;
     if p <> nil then Result := true;
    end;
  end;
 
  var
    BlockInput : function(Block: BOOL): BOOL; stdcall;
 
  begin
   if FuncAvail('USER32.DLL', 'BlockInput', @BlockInput) then
   begin
    ShowMessage('Your Mouse and Keyboard will be blocked for 5 seconds!') ;
    BlockInput(true) ;
    Sleep(5000) ;
    BlockInput(false) ;
   end;
  end;
 
end.

حامد شیرزاد بازدید : 781 شنبه 03 دی 1390 نظرات (0)
type TWinVersion = (wvUnknown, wvWin95, wvWin98, wvWin98SE,
 wvWinNT, wvWinME, wvWin2000, wvWinXP, wvWinVista) ;
...
 
function GetWinVersion: TWinVersion;
var
   osVerInfo: TOSVersionInfo;
   majorVersion, minorVersion: Integer;
begin
   Result := wvUnknown;
   osVerInfo.dwOSVersionInfoSize := SizeOf(TOSVersionInfo) ;
   if GetVersionEx(osVerInfo) then
   begin
     minorVersion := osVerInfo.dwMinorVersion;
     majorVersion := osVerInfo.dwMajorVersion;
     case osVerInfo.dwPlatformId of
       VER_PLATFORM_WIN32_NT:
       begin
         if majorVersion <= 4 then
           Result := wvWinNT
         else if (majorVersion = 5) and (minorVersion = 0) then
           Result := wvWin2000
         else if (majorVersion = 5) and (minorVersion = 1) then
           Result := wvWinXP
         else if (majorVersion = 6) then
           Result := wvWinVista;
       end;
       VER_PLATFORM_WIN32_WINDOWS:
       begin
         if (majorVersion = 4) and (minorVersion = 0) then
           Result := wvWin95
         else if (majorVersion = 4) and (minorVersion = 10) then
         begin
           if osVerInfo.szCSDVersion[1] = 'A' then
             Result := wvWin98SE
           else
             Result := wvWin98;
         end
         else if (majorVersion = 4) and (minorVersion = 90) then
           Result := wvWinME
         else
           Result := wvUnknown;
       end;
     end;
   end;
end;

حامد شیرزاد بازدید : 809 شنبه 03 دی 1390 نظرات (0)
uses shlobj;
...
function CreateFolder(Foldername: string; aLocation: integer) : boolean;
var pIdl: PItemIDList;
 hPath: PChar;
 
begin
  Result := False;
  if SUCCEEDED(SHGetSpecialFolderLocation(0, aLocation, pidl)) then
  begin
   hPath := StrAlloc(max_path) ;
   SHGetPathFromIDList(pIdl, hPath) ;
   SetLastError(0) ;
   CreateDirectory(PChar(hPath + '\' + Foldername), nil) ;
   if (GetLastError() = 0) or(GetLastError() = ERROR_ALREADY_EXISTS) then
     Result := true;
   StrDispose(hPath) ;
  end;
end;
 
{ Usage: }
procedure TForm1.Button1Click(Sender: TObject) ;
begin
   {constants like 'CSIDL_PROGRAMS'
   are defined in the ShlObj unit}
   CreateFolder('MyProgramgroup', CSIDL_PROGRAMS) ;
end; 

حامد شیرزاد بازدید : 763 شنبه 03 دی 1390 نظرات (0)
{We'll need several global variables}
var
    Form1: TForm1;
    StartButton : hWnd;
    OldBitmap : THandle;
    NewImage : TPicture;
...
{Now, we put this code in the
OnCreate event of the form:}
 
procedure TForm1.FormCreate(Sender: TObject) ;
begin
  NewImage:=TPicture.create;
  NewImage.LoadFromFile('C:WindowsCircles.BMP') ;
  StartButton := FindWindowEx
                  (FindWindow(
                     'Shell_TrayWnd', nil),
                      0,'Button', nil) ;
   OldBitmap:=SendMessage(StartButton,
                          BM_SetImage, 0,
                          NewImage.Bitmap.Handle) ;
  end;
...
{And this other in the OnDestroy:}
 
  procedure TForm1.FormDestroy(Sender: TObject) ;
  begin
   SendMessage(StartButton,BM_SetImage,0,OldBitmap) ;
   NewImage.Free;
  end;

حامد شیرزاد بازدید : 693 پنجشنبه 01 دی 1390 نظرات (0)
 

<html>
<head>
<script type="text/javascript">
var txt="";
function message()
{
try
{
adddlert("Welcome guest!");
}
catch(err)
{
txt="There was an error on this page.nn";
txt+="Error description: " + err.description + "nn";
txt+="Click OK to continue.nn";
alert(txt);
}
}
</script>
</head>

<body>
<input type="button" value="View message" onclick="message()" />
</body>

حامد شیرزاد بازدید : 587 چهارشنبه 30 آذر 1390 نظرات (0)


يک نکته مهم که در زمان استفاده از NET Framework. بايد به آن توجه داشت آن است که فضانام (namespace يا نامکده) ها در ساختمان برنامه کاربردی قرار دارند. فضانام يک طرح نامگذاری منطقی برای گروه بندی کلاس های مرتبط است. اين طرح مانع از آن می شود تا کلاس هايی که برای متدها و خصوصيات از يک شناسه يکسان استفاده می کنند تداخل داشته باشند.

مثلا NET Framework. برای گروه بندی تايپ ها به مقوله های منطقی عملکرد، از قبيل چارچوب برنامه کاربردی ASP.NET، از يک طرح نامگذاری سلسله مراتبی استفاده می کند. ابزارهای طراحی از فضانام ها با هدف تسهيل مرور و ارجاع تايپ ها در برنامه بهره برداری می کنند. مثلا فرض کنيد در حال نوشتن کد زير هستيد:

حامد شیرزاد بازدید : 797 پنجشنبه 24 آذر 1390 نظرات (0)

خاصیت tag یک ناحیه ذخیره سازی است که در اکثر کامپوننت ها گنجانده شده و می تواند تمام انواع 32 بیتی ( نظیر اشاره گر به ساختار های داده ای و دیگر اشیا ) را در خود ذخیره کند . خاصیت tag  توسط سیستم استفاده نمی گردد و برای استفاده برنامه نویس طراحی شده است .

منبع : www.softeng.rozblog.com

حامد شیرزاد بازدید : 1093 چهارشنبه 23 آذر 1390 نظرات (0)

 

 

 

برقرار كردن امنيت براي يك شبكه درون يك ساختمان كار ساده اي است . اما هنگامي كه بخواهيم از نقاط دور رو ي داده هاي مشترك كار كنيم ايمني به مشكل بزرگي تبديل مي شود . در اين بخش به اصول و ساختمان يك VPN براي سرويس گيرنده هاي ويندوز و لينوكس مي پردازيم .

اصول VPN
فرستادن حجم زيادي از داده از يك كامپيوتر به كامپيوتر ديگر مثلا” در به هنگام رساني بانك اطلاعاتي يك مشكل شناخته شده و قديمي است . انجام اين كار از طريق Email به دليل محدوديت گنجايش سرويس دهنده Mail نشدني است .
استفاده از FTP هم به سرويس دهنده مربوطه و همچنين ذخيره سازي موقت روي فضاي اينترنت نياز دارد كه اصلا” قابل اطمينان نيست .
يكي از راه حل هاي اتصال مستقيم به كامپيوتر مقصد به كمك مودم است كه در اينجا هم علاوه بر مودم ، پيكر بندي كامپيوتر به عنوان سرويس دهنده RAS لازم خواهد بود . از اين گذشته ، هزينه ارتباط تلفني راه دور براي مودم هم قابل تامل است . اما اگر دو كامپيوتر در دو جاي مختلف به اينترنت متصل باشند مي توان از طريق سرويس به اشتراك گذاري فايل در ويندوز بسادگي فايل ها را رد و بدل كرد . در اين حالت ، كاربران مي توانند به سخت ديسك كامپيوترهاي ديگر همچون سخت ديسك كامپيوتر خود دسترسي داشته باشند . به اين ترتيب بسياري از راه هاي خرابكاري براي نفوذ كنندگان بسته مي شود .
شبكه هاي شخصي مجاري يا VPN ( Virtual private Network ) ها اينگونه مشكلات را حل مي كند . VPN به كمك رمز گذاري روي داده ها ، درون يك شبكه كوچك مي سازد و تنها كسي كه آدرس هاي لازم و رمز عبور را در اختيار داشته باشد مي تواند به اين شبكه وارد شود . مديران شبكه اي كه بيش از اندازه وسواس داشته و محتاط هستند مي توانند VPN را حتي روي شبكه محلي هم پياده كنند . اگر چه نفوذ كنندگان مي توانند به كمك برنامه هاي Packet sniffer جريان داده ها را دنبال كنند اما بدون داشتن كليد رمز نمي توانند آنها را بخوانند .

حامد شیرزاد بازدید : 1018 چهارشنبه 23 آذر 1390 نظرات (0)
function CountFiles(const APath, AWildCard: string): Int64;
var
  ReturnCode: Integer;            // result of FindFirst and FindNext routines
  SearchRec: SysUtils.TSearchRec; // carries info about file search
begin
  Result := 0;
  ReturnCode := SysUtils.FindFirst(
    DirToPath(APath) + AWildCard, SysUtils.faAnyFile, SearchRec
  );
  try
    while ReturnCode = 0 do
    begin
      if not IsFlagSet(SearchRec.Attr, SysUtils.faDirectory) and
        (SearchRec.Name <> '.') and
        (SearchRec.Name <> '..') then
        Inc(Result);
      ReturnCode := SysUtils.FindNext(SearchRec);
      ProcessMessages;
    end;
  finally
    SysUtils.FindClose(SearchRec);
  end;
end;

 

حامد شیرزاد بازدید : 1683 چهارشنبه 23 آذر 1390 نظرات (0)
function HardDiskSerial(const Drive: string): Windows.DWORD;
var
  Unused: Windows.DWORD;        // unused parameters
  PrevErrorMode: Windows.UINT;  // stores Windows error mode
begin
  // Inhibit system dialog appearing on error
  PrevErrorMode := Windows.SetErrorMode(
    Windows.SEM_FAILCRITICALERRORS
  );
  try
    Result := 0;
    Windows.GetVolumeInformation(
      PChar(Drive), nil, 0, @Result, Unused, Unused, nil, 0
    );
  finally
    // Restore old error mode
    Windows.SetErrorMode(PrevErrorMode);
  end;
end;

 

تعداد صفحات : 15

درباره ما
به نام آنکه جان را فکرت آموخت در این وبلاگ سعی می شود به صورت تخصصی به مباحث مربوط به مهندسی نرم افزار به خصوص برنامه نویسی کامپیوتری پرداخته شود. مدیر وبلاگ : حامد شیرزاد
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آمار سایت
  • کل مطالب : 431
  • کل نظرات : 9
  • افراد آنلاین : 1
  • تعداد اعضا : 109
  • آی پی امروز : 11
  • آی پی دیروز : 46
  • بازدید امروز : 52
  • باردید دیروز : 99
  • گوگل امروز : 0
  • گوگل دیروز : 1
  • بازدید هفته : 1,466
  • بازدید ماه : 5,390
  • بازدید سال : 33,410
  • بازدید کلی : 698,585
  • کدهای اختصاصی

    قالب وبلاگ