Programlama yapalım ve Öğrenelim. - Delphi Eğitim213
  Ana Sayfa
  .NET Eğitim Notları
  Visual C# .NET Örnek Kodları
  VisualBasic.NET Örnek Kodları
  J# Örnekleri
  ASP.NET Örnek Kodları
  Delphi Eğitim
  => Delphi Eğitim1
  => Delphi Eğitim2
  => Delphi Eğitim3
  => Delphi Eğitim4
  => Delphi Eğitim5
  => Delphi Eğitim6
  => Delphi Eğitim7
  => Delphi Eğitim8
  => Delphi Eğitim9
  => Delphi Eğitim10
  => Delphi Eğitim11
  => Delphi Eğitim13
  => Delphi Eğitim14
  => Delphi Eğitim15
  => Delphi Eğitim16
  => Delphi Eğitim17
  => Delphi Eğitim18
  => Delphi Eğitim19
  => Delphi Eğitim20
  => Delphi Eğitim21
  => Delphi Eğitim22
  => Delphi Eğitim23
  => Delphi Eğitim24
  => Delphi Eğitim25
  => Delphi Eğitim26
  => Delphi Eğitim27
  => Delphi Eğitim28
  => Delphi Eğitim29
  => Delphi Eğitim30
  => Delphi Eğtim31
  => Delphi Eğitim32
  => Delphi Eğitim33
  => Delphi Eğitim34
  => Delphi Eğitim35
  => Delphi Eğitim36
  => Delphi Eğitim37
  => Delphi Eğitim38
  => Delphi Eğitim39
  => Delphi Eğitim40
  => Delphi Eğitim41
  => Delphi Eğitim42
  => Delphi Eğitim43
  => Delphi Eğitim44
  => Delphi Eğitim45
  => Delphi Eğitim46
  => Delphi Eğitim47
  => Delphi Eğitim48
  => Delphi Eğitim49
  => Delphi Eğitim50
  => Delphi Eğitim51
  => Delphi Eğitim52
  => Delphi Eğitim53
  => Delphi Eğitim54
  => Delphi Eğitim55
  => Delphi Eğitim56
  => Delphi Eğitim57
  => Delphi Eğitim58
  => Delphi Eğitim59
  => Delphi Eğitim60
  => Delphi Eğitim61
  => Delphi Eğitim62
  => Delphi Eğitim63
  => Delphi Eğitim64
  => Delphi Eğitim65
  => Delphi Eğitim66
  => Delphi Eğitim67
  => Delphi Eğitim68
  => Delphi Eğitim69
  => Delphi Eğitim70
  => Delphi Eğitim71
  => Delphi Eğitim72
  => Delphi Eğitim73
  => Delphi Eğitim74
  => Delphi Eğitim75
  => Delphi Eğitim76
  => Delphi Eğitim77
  => Delphi Eğitim78
  => Delphi Eğitim79
  => Delphi Eğitim80
  => Delphi Eğitim81
  => Delphi Eğitim82
  => Delphi Eğitim83
  => Delphi Eğitim84
  => Delphi Eğitim85
  => Delphi Eğitim86
  => Delphi Eğitim87
  => Delphi Eğitim88
  => Delphi Eğitim89
  => Delphi Eğitim90
  => Delphi Eğitim91
  => Delphi Eğitim92
  => Delphi Eğitim93
  => Delphi Eğitim94
  => Delphi Eğitim95
  => Delphi Eğitim96
  => Delphi Eğitim97
  => Delphi Eğitim98
  => Delphi Eğitim99
  => Delphi Eğitim100
  => Delphi Eğitim101
  => Delphi Eğitim102
  => Delphi Eğitim103
  => Delphi Eğitim104
  => Delphi Eğitim105
  => Delphi Eğitim106
  => Delphi Eğitim107
  => Delphi Eğitim108
  => Delphi Eğitim109
  => Delphi Eğitim110
  => Delphi Eğitim111
  => Delphi Eğitim112
  => Delphi Eğitim113
  => Delphi Eğitim114
  => Delphi Eğitim115
  => Delphi Eğitim116
  => Delphi Eğitim117
  => Delphi Eğitim118
  => Delphi Eğitim119
  => Delphi Eğitim120
  => Delphi Eğitim121
  => Delphi Eğitim122
  => Delphi Eğitim123
  => Delphi Eğitim124
  => Delphi Eğitim125
  => Delphi Eğitim126
  => Delphi Eğitim127
  => Delphi Eğitim128
  => Delphi Eğitim129
  => Delphi Eğitim130
  => Delphi Eğitim131
  => Delphi Eğitim132
  => Delphi Eğitim133
  => Delphi Eğitim134
  => Delphi Eğitim135
  => Delphi Eğitim136
  => Delphi Eğitim137
  => Delphi Eğitim138
  => Delphi Eğitim139
  => Delphi Eğitim140
  => Delphi Eğitim141
  => Delphi Eğitim142
  => Delphi Eğitim143
  => Delphi Eğitim144
  => Delphi Eğitim145
  => Delphi Eğitim146
  => Delphi eğitim147
  => Delphi Eğitim148
  => Delphi Eğitim149
  => Delphi Eğitim150
  => Delphi Eğitim151
  => Delphi Eğitim152
  => Delphi Eğitim153
  => Delphi Eğitim154
  => Delphi Eğitim155
  => Delphi Eğitim156
  => Delphi Eğitim157
  => Delphi Eğitim158
  => Delphi Eğitim159
  => Delphi Eğitim160
  => Delphi Eğitim161
  => Delphi Eğitim162
  => Delphi Eğitim164
  => Delphi Eğitim165
  => Delphi Eğitim166
  => Delphi Eğitim167
  => Delphi Eğitim168
  => Delphi Eğitim169
  => Delphi Eğitim170
  => Delphi Eğitim171
  => Delphi Eğitim172
  => Delphi Eğitim173
  => Delphi Eğitim174
  => Delphi Eğitim175
  => Delphi Eğitim176
  => Delphi Eğitim177
  => Delphi Eğitim178
  => Delphi Eğitim179
  => Delphi Eğitim180
  => Delphi Eğitim181
  => Delphi Eğitim182
  => Delphi Eğitim183
  => Delphi Eğitim184
  => Delphi Eğitim185
  => Delphi Eğitim186
  => Delphi Eğitim187
  => Delphi Eğitim188
  => Delphi Eğitim189
  => Delphi Eğitim190
  => Delphi Eğitim191
  => Delphi Eğitim192
  => Delphi Eğitim193
  => Delphi Eğitim194
  => Delphi Eğitim195
  => Delphi Eğitim196
  => Delphi Eğitim197
  => Delphi Eğitim198
  => Delphi Eğitim199
  => Delphi Eğitim200
  => Delphi Eğitim201
  => Delphi Eğitim202
  => Delphi Eğitim203
  => Delphi Eğitim204
  => Delphi Eğitim205
  => Delphi Eğitim206
  => Delphi Eğitim207
  => Delphi Eğitim208
  => Delphi Eğitim209
  => Delphi Eğitim210
  => Delphi Eğitim211
  => Delphi Eğitim212
  => Delphi Eğitim213
  => Delphi Eğitim214
  => Delphi Eğitim215
  => Delphi Eğitim216
  => Delphi Eğitim217
  => Delphi Eğitim218
  => Delphi Eğitim219
  => Delphi Eğitim220
  => Delphi Eğitim221
  => Delphi Eğitim222
  => Delphi Eğitim223
  => Delphi Eğitim224
  => Delphi Eğitim225
  => Delphi Eğitim226
  => Delphi Eğitim227
  => Delphi Eğitim228
  => Delphi Eğitim229
  => Delphi Eğitim230
  => Delphi Eğitim231
  => Delphi Eğitim232
  => Delphi Eğitim233
  => Delphi Eğitim234
  => Delphi Eğitim235
  => Delphi Eğitim236
  => Delphi Eğitim237
  => Delphi Eğitim238
  => Delphi Eğitim239
  => Delphi Eğitim240
  => Delphi Eğitim241
  => Delphi Eğitim242
  İletişim

HTML sayfalarını arşiv olarak kaydetmek(MHTML)

function SaveToMHT(const AUrl, AFileName: string;

  AShowErrorMessage: Boolean = False): Boolean;

var

  oMSG, oConfig: OleVariant;

  sFileName: string;

  Retvar: Boolean;

begin

  sFileName := ChangeFileExt(AFileName, '.mht');

  DeleteFile(PAnsiChar(sFileName));  

  try

    oConfig := CreateOleObject('CDO.Configuration');

    oMSG    := CreateOleObject('CDO.Message');

    oMSG.Configuration := oConfig;

    oMSG.CreateMHTMLBody(AUrl);

    oMSG.GetStream.SaveToFile(sFileName);

    Retvar := True;

  except

    on E: Exception do

    begin

      if AShowErrorMessage then MessageDlg(E.Message, mtError, [mbOK], 0);

      Retvar := False;

    end;

  end;  

  oMSG    := VarNull;

  oConfig := VarNull;  

  Result  := Retvar;

end;

 

Delphi - .....................................

 

XP başlangıç menüsünün stilini değiştirmek

Standart ya da klasik görünüm

(***********************************************************************

 ** Who wants to know more about the method how I discovered all this

 ** may have a look at the following URL (German) or contact me via my

 ** forum:

 **

 ** http://www.delphipraxis.net/topic62087,0,asc,0.html

 ***********************************************************************)

type

  SHELLSTATE = record

    Flags1: DWORD;

(*

    BOOL fShowAllObjects : 1;

    BOOL fShowExtensions : 1;

    BOOL fNoConfirmRecycle : 1;

 

    BOOL fShowSysFiles : 1;

    BOOL fShowCompColor : 1;

    BOOL fDoubleClickInWebView : 1;

    BOOL fDesktopHTML : 1;

    BOOL fWin95Classic : 1;

    BOOL fDontPrettyPath : 1;

    BOOL fShowAttribCol : 1; // No longer used, dead bit

    BOOL fMapNetDrvBtn : 1;

    BOOL fShowInfoTip : 1;

    BOOL fHideIcons : 1;

    BOOL fWebView : 1;

    BOOL fFilter : 1;

    BOOL fShowSuperHidden : 1;

    BOOL fNoNetCrawling : 1;

*)

    dwWin95Unused: DWORD; // Win95 only - no longer supported pszHiddenFileExts

    uWin95Unused: UINT; // Win95 only - no longer supported cbHiddenFileExts

 

    // Note: Not a typo!  This is a persisted structure so we cannot use LPARAM

    lParamSort: Integer;

    iSortDirection: Integer;

 

    version: UINT;

 

    // new for win2k. need notUsed var to calc the right size of ie4 struct

    // FIELD_OFFSET does not work on bit fields

    uNotUsed: UINT; // feel free to rename and use

    Flags2: DWORD;

(*

    BOOL fSepProcess: 1;

    // new for Whistler.

    BOOL fStartPanelOn: 1;       //Indicates if the Whistler StartPanel mode is ON or OFF.

    BOOL fShowStartPage: 1;      //Indicates if the Whistler StartPage on desktop is ON or OFF.

    UINT fSpareFlags : 13;

*)

  end;

  LPSHELLSTATE = ^SHELLSTATE;

 

const

  SSF_SHOWALLOBJECTS  = $00000001;

  SSF_SHOWEXTENSIONS  = $00000002;

  SSF_HIDDENFILEEXTS  = $00000004;

  SSF_SERVERADMINUI   = $00000004;

  SSF_SHOWCOMPCOLOR   = $00000008;

  SSF_SORTCOLUMNS     = $00000010;

  SSF_SHOWSYSFILES    = $00000020;

  SSF_DOUBLECLICKINWEBVIEW = $00000080;

  SSF_SHOWATTRIBCOL   = $00000100;

  SSF_DESKTOPHTML     = $00000200;

  SSF_WIN95CLASSIC    = $00000400;

  SSF_DONTPRETTYPATH  = $00000800;

  SSF_SHOWINFOTIP     = $00002000;

  SSF_MAPNETDRVBUTTON = $00001000;

  SSF_NOCONFIRMRECYCLE = $00008000;

  SSF_HIDEICONS       = $00004000;

  SSF_FILTER          = $00010000;

  SSF_WEBVIEW         = $00020000;

  SSF_SHOWSUPERHIDDEN = $00040000;

  SSF_SEPPROCESS      = $00080000;

  SSF_NONETCRAWLING   = $00100000;

  SSF_STARTPANELON    = $00200000;

  SSF_SHOWSTARTPAGE   = $00400000;

 

 

procedure SHGetSetSettings(var lpss: SHELLSTATE; dwMask: DWORD; bSet: BOOL) stdcall;

  external 'shell32.dll';

 

procedure SwitchStartpanelXP(xpstyle: Boolean);

var

  lpss: SHELLSTATE;

  bIsXPstyle: Boolean;

begin

  ZeroMemory(@lpss, SizeOf(lpss));

  // Retrieve current style

  SHGetSetSettings(lpss, SSF_STARTPANELON, False);

  // Check the current style

  bIsXPstyle := (lpss.Flags2 and 2) = 2; // fStartPanelOn

  // If a change occurred

  if (bIsXPstyle <> xpstyle) then

  begin

    // If the user wants XP style then set it, else reset it

    if (xpstyle) then

      lpss.Flags2 := 2 // fStartPanelOn = 1

    else

      lpss.Flags2 := 0; // fStartPanelOn = 0

    // Set new style

    SHGetSetSettings(lpss, SSF_STARTPANELON, True);

    // Notify desktop of the change

    PostMessage(FindWindow('Progman', nil), WM_USER + $60, 0, 0);

  end;

  // Notify taskbar

  PostMessage(FindWindow('Shell_TrayWnd', nil), WM_USER + $0D, 0, 0);

end;

 

Delphi - .....................................

 

XP başlangıç menüsünün stilini değiştirmek

Standart ya da klasik görünüm

(***********************************************************************

 ** Who wants to know more about the method how I discovered all this

 ** may have a look at the following URL (German) or contact me via my

 ** forum:

 **

 ** http://www.delphipraxis.net/topic62087,0,asc,0.html

 ***********************************************************************)

type

  SHELLSTATE = record

    Flags1: DWORD;

(*

    BOOL fShowAllObjects : 1;

    BOOL fShowExtensions : 1;

    BOOL fNoConfirmRecycle : 1;

 

    BOOL fShowSysFiles : 1;

    BOOL fShowCompColor : 1;

    BOOL fDoubleClickInWebView : 1;

    BOOL fDesktopHTML : 1;

    BOOL fWin95Classic : 1;

    BOOL fDontPrettyPath : 1;

    BOOL fShowAttribCol : 1; // No longer used, dead bit

    BOOL fMapNetDrvBtn : 1;

    BOOL fShowInfoTip : 1;

    BOOL fHideIcons : 1;

    BOOL fWebView : 1;

    BOOL fFilter : 1;

    BOOL fShowSuperHidden : 1;

    BOOL fNoNetCrawling : 1;

*)

    dwWin95Unused: DWORD; // Win95 only - no longer supported pszHiddenFileExts

    uWin95Unused: UINT; // Win95 only - no longer supported cbHiddenFileExts

 

    // Note: Not a typo!  This is a persisted structure so we cannot use LPARAM

    lParamSort: Integer;

    iSortDirection: Integer;

 

    version: UINT;

 

    // new for win2k. need notUsed var to calc the right size of ie4 struct

    // FIELD_OFFSET does not work on bit fields

    uNotUsed: UINT; // feel free to rename and use

    Flags2: DWORD;

(*

    BOOL fSepProcess: 1;

    // new for Whistler.

    BOOL fStartPanelOn: 1;       //Indicates if the Whistler StartPanel mode is ON or OFF.

    BOOL fShowStartPage: 1;      //Indicates if the Whistler StartPage on desktop is ON or OFF.

    UINT fSpareFlags : 13;

*)

  end;

  LPSHELLSTATE = ^SHELLSTATE;

 

const

  SSF_SHOWALLOBJECTS  = $00000001;

  SSF_SHOWEXTENSIONS  = $00000002;

  SSF_HIDDENFILEEXTS  = $00000004;

  SSF_SERVERADMINUI   = $00000004;

  SSF_SHOWCOMPCOLOR   = $00000008;

  SSF_SORTCOLUMNS     = $00000010;

  SSF_SHOWSYSFILES    = $00000020;

  SSF_DOUBLECLICKINWEBVIEW = $00000080;

  SSF_SHOWATTRIBCOL   = $00000100;

  SSF_DESKTOPHTML     = $00000200;

  SSF_WIN95CLASSIC    = $00000400;

  SSF_DONTPRETTYPATH  = $00000800;

  SSF_SHOWINFOTIP     = $00002000;

  SSF_MAPNETDRVBUTTON = $00001000;

  SSF_NOCONFIRMRECYCLE = $00008000;

  SSF_HIDEICONS       = $00004000;

  SSF_FILTER          = $00010000;

  SSF_WEBVIEW         = $00020000;

  SSF_SHOWSUPERHIDDEN = $00040000;

  SSF_SEPPROCESS      = $00080000;

  SSF_NONETCRAWLING   = $00100000;

  SSF_STARTPANELON    = $00200000;

  SSF_SHOWSTARTPAGE   = $00400000;

 

 

procedure SHGetSetSettings(var lpss: SHELLSTATE; dwMask: DWORD; bSet: BOOL) stdcall;

  external 'shell32.dll';

 

procedure SwitchStartpanelXP(xpstyle: Boolean);

var

  lpss: SHELLSTATE;

  bIsXPstyle: Boolean;

begin

  ZeroMemory(@lpss, SizeOf(lpss));

  // Retrieve current style

  SHGetSetSettings(lpss, SSF_STARTPANELON, False);

  // Check the current style

  bIsXPstyle := (lpss.Flags2 and 2) = 2; // fStartPanelOn

  // If a change occurred

  if (bIsXPstyle <> xpstyle) then

  begin

    // If the user wants XP style then set it, else reset it

    if (xpstyle) then

      lpss.Flags2 := 2 // fStartPanelOn = 1

    else

      lpss.Flags2 := 0; // fStartPanelOn = 0

    // Set new style

    SHGetSetSettings(lpss, SSF_STARTPANELON, True);

    // Notify desktop of the change

    PostMessage(FindWindow('Progman', nil), WM_USER + $60, 0, 0);

  end;

  // Notify taskbar

  PostMessage(FindWindow('Shell_TrayWnd', nil), WM_USER + $0D, 0, 0);

end;

 

Delphi - .....................................

 

local/remote/active directory güvenlik ilkelerini değiştirmek

{

  For win2k, xp or higher

}

 

uses ComObj, ActiveX, Registry;

 

const

  GPO_OPEN_LOAD_REGISTRY = $00000001;  // Load the registry files

  {$EXTERNALSYM GPO_OPEN_LOAD_REGISTRY}

  GPO_OPEN_READ_ONLY = $00000002;  // Open the GPO as read only

 

  GPO_SECTION_ROOT = 0;  // Root

  {$EXTERNALSYM GPO_SECTION_ROOT}

  GPO_SECTION_USER = 1;  // User

  {$EXTERNALSYM GPO_SECTION_USER}

  GPO_SECTION_MACHINE = 2;  // Machine

 

const

  IID_GPO: TGUID = '{EA502722-A23D-11d1-A7D3-0000F87571E3}';

 

type

  HPROPSHEETPAGE = Pointer;

  {$EXTERNALSYM HPROPSHEETPAGE}

  PHPROPSHEETPAGE = ^HPROPSHEETPAGE;

  LPOLESTR        = POleStr;

  _GROUP_POLICY_OBJECT_TYPE = (GPOTypeLocal,

    // GPO on the local machine

    GPOTypeRemote,                        // GPO on a remote machine

    GPOTypeDS);                           // GPO in the Active Directory

  {$EXTERNALSYM _GROUP_POLICY_OBJECT_TYPE}

  GROUP_POLICY_OBJECT_TYPE = _GROUP_POLICY_OBJECT_TYPE;

 

  IGroupPolicyObject = interface(IUnknown)

    ['{EA502723-A23D-11d1-A7D3-0000F87571E3}']

 

    function New(pszDomainName, pszDisplayName: LPOLESTR; dwFlags: DWORD): HRESULT;

      stdcall;

    function OpenDSGPO(pszPath: LPOLESTR; dwFlags: DWORD): HRESULT; stdcall;

    function OpenLocalMachineGPO(dwFlags: DWORD): HRESULT; stdcall;

    function OpenRemoteMachineGPO(pszComputerName: LPOLESTR; dwFlags: DWORD): HRESULT;

      stdcall;

    function Save(bMachine, bAdd: BOOL; const pGuidExtension, pGuid: TGUID): HRESULT;

      stdcall;

    function Delete: HRESULT; stdcall;

    function GetName(pszName: LPOLESTR; cchMaxLength: Integer): HRESULT; stdcall;

    function GetDisplayName(pszName: LPOLESTR; cchMaxLength: Integer): HRESULT; stdcall;

    function SetDisplayName(pszName: LPOLESTR): HRESULT; stdcall;

    function GetPath(pszPath: LPOLESTR; cchMaxPath: Integer): HRESULT; stdcall;

    function GetDSPath(dwSection: DWORD; pszPath: LPOLESTR; cchMaxPath: Integer): HRESULT;

      stdcall;

    function GetFileSysPath(dwSection: DWORD; pszPath: LPOLESTR;

      cchMaxPath: Integer): HRESULT; stdcall;

 

    //

    // Returns a registry key handle for the requested section.  The returned

    // key is the root of the registry, not the Policies subkey.  To set / read

    // a value in the Policies subkey, you will need to call RegOpenKeyEx to

    // open SoftwarePolicies subkey first.

    //

    // The handle has been opened with ALL ACCESS rights.  Call RegCloseKey

    // on the handle when finished.

    //

    // If the GPO was loaded / created without the registry being loaded

    // this method will return E_FAIL.

    //

    // dwSection is either GPO_SECTION_USER or GPO_SECTION_MACHINE

    // hKey contains the registry key on return

    //

 

    function GetRegistryKey(dwSection: DWORD; var hKey: HKEY): HRESULT; stdcall;

    function GetOptions(var dwOptions: DWORD): HRESULT; stdcall;

    function SetOptions(dwOptions, dwMask: DWORD): HRESULT; stdcall;

    function GetType(var gpoType: GROUP_POLICY_OBJECT_TYPE): HRESULT; stdcall;

    function GetMachineName(pszName: LPOLESTR; cchMaxLength: Integer): HRESULT; stdcall;

    function GetPropertySheetPages(var hPages: PHPROPSHEETPAGE;

      var uPageCount: UINT): HRESULT; stdcall;

  end;

 

const

  REGISTRY_EXTENSION_GUID: TGUID = (D1: $35378EAC; D2: $683F; D3: $11D2;

    D4: ($A8, $9A, $00, $C0, $4F, $BB, $CF, $A2));

  CLSID_GPESnapIn: TGUID = (D1: $8fc0b734; D2: $a0e1; D3: $11d1;

    D4: ($a7, $d3, $0, $0, $f8, $75, $71, $e3));

 

procedure TForm1.Button1Click(Sender: TObject);

var

  GPO: IGroupPolicyObject;

  Key: HKEY;

begin

  GPO := CreateComObject(IID_GPO) as IGroupPolicyObject;

  if GPO.OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY) = S_OK then

  begin

    if GPO.GetRegistryKey(GPO_SECTION_USER, Key) = S_OK then

      with TRegistry.Create do

        try

          RootKey := HKEY_CURRENT_USER;

          if OpenKey('SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer', True) then

          begin

            WriteInteger('StartMenuLogOff', 0);

          end;

 

          RootKey := Key;

          if OpenKey('SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer', True) then

          begin

            WriteInteger('StartMenuLogOff', 0);

          end;

          RegCloseKey(Key);

          GPO.Save(False, True, REGISTRY_EXTENSION_GUID, CLSID_GPESnapIn);

        finally

          Free;

        end;

    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, Integer(PChar('Polices')), 0);

  end;

end;

 

Delphi - .....................................

 

local/remote/active directory güvenlik ilkelerini değiştirmek

{

  For win2k, xp or higher

}

 

uses ComObj, ActiveX, Registry;

 

const

  GPO_OPEN_LOAD_REGISTRY = $00000001;  // Load the registry files

  {$EXTERNALSYM GPO_OPEN_LOAD_REGISTRY}

  GPO_OPEN_READ_ONLY = $00000002;  // Open the GPO as read only

 

  GPO_SECTION_ROOT = 0;  // Root

  {$EXTERNALSYM GPO_SECTION_ROOT}

  GPO_SECTION_USER = 1;  // User

  {$EXTERNALSYM GPO_SECTION_USER}

  GPO_SECTION_MACHINE = 2;  // Machine

 

const

  IID_GPO: TGUID = '{EA502722-A23D-11d1-A7D3-0000F87571E3}';

 

type

  HPROPSHEETPAGE = Pointer;

  {$EXTERNALSYM HPROPSHEETPAGE}

  PHPROPSHEETPAGE = ^HPROPSHEETPAGE;

  LPOLESTR        = POleStr;

  _GROUP_POLICY_OBJECT_TYPE = (GPOTypeLocal,

    // GPO on the local machine

    GPOTypeRemote,                        // GPO on a remote machine

    GPOTypeDS);                           // GPO in the Active Directory

  {$EXTERNALSYM _GROUP_POLICY_OBJECT_TYPE}

  GROUP_POLICY_OBJECT_TYPE = _GROUP_POLICY_OBJECT_TYPE;

 

  IGroupPolicyObject = interface(IUnknown)

    ['{EA502723-A23D-11d1-A7D3-0000F87571E3}']

 

    function New(pszDomainName, pszDisplayName: LPOLESTR; dwFlags: DWORD): HRESULT;

      stdcall;

    function OpenDSGPO(pszPath: LPOLESTR; dwFlags: DWORD): HRESULT; stdcall;

    function OpenLocalMachineGPO(dwFlags: DWORD): HRESULT; stdcall;

    function OpenRemoteMachineGPO(pszComputerName: LPOLESTR; dwFlags: DWORD): HRESULT;

      stdcall;

    function Save(bMachine, bAdd: BOOL; const pGuidExtension, pGuid: TGUID): HRESULT;

      stdcall;

    function Delete: HRESULT; stdcall;

    function GetName(pszName: LPOLESTR; cchMaxLength: Integer): HRESULT; stdcall;

    function GetDisplayName(pszName: LPOLESTR; cchMaxLength: Integer): HRESULT; stdcall;

    function SetDisplayName(pszName: LPOLESTR): HRESULT; stdcall;

    function GetPath(pszPath: LPOLESTR; cchMaxPath: Integer): HRESULT; stdcall;

    function GetDSPath(dwSection: DWORD; pszPath: LPOLESTR; cchMaxPath: Integer): HRESULT;

      stdcall;

    function GetFileSysPath(dwSection: DWORD; pszPath: LPOLESTR;

      cchMaxPath: Integer): HRESULT; stdcall;

 

    //

    // Returns a registry key handle for the requested section.  The returned

    // key is the root of the registry, not the Policies subkey.  To set / read

    // a value in the Policies subkey, you will need to call RegOpenKeyEx to

    // open SoftwarePolicies subkey first.

    //

    // The handle has been opened with ALL ACCESS rights.  Call RegCloseKey

    // on the handle when finished.

    //

    // If the GPO was loaded / created without the registry being loaded

    // this method will return E_FAIL.

    //

    // dwSection is either GPO_SECTION_USER or GPO_SECTION_MACHINE

    // hKey contains the registry key on return

    //

 

    function GetRegistryKey(dwSection: DWORD; var hKey: HKEY): HRESULT; stdcall;

    function GetOptions(var dwOptions: DWORD): HRESULT; stdcall;

    function SetOptions(dwOptions, dwMask: DWORD): HRESULT; stdcall;

    function GetType(var gpoType: GROUP_POLICY_OBJECT_TYPE): HRESULT; stdcall;

    function GetMachineName(pszName: LPOLESTR; cchMaxLength: Integer): HRESULT; stdcall;

    function GetPropertySheetPages(var hPages: PHPROPSHEETPAGE;

      var uPageCount: UINT): HRESULT; stdcall;

  end;

 

const

  REGISTRY_EXTENSION_GUID: TGUID = (D1: $35378EAC; D2: $683F; D3: $11D2;

    D4: ($A8, $9A, $00, $C0, $4F, $BB, $CF, $A2));

  CLSID_GPESnapIn: TGUID = (D1: $8fc0b734; D2: $a0e1; D3: $11d1;

    D4: ($a7, $d3, $0, $0, $f8, $75, $71, $e3));

 

procedure TForm1.Button1Click(Sender: TObject);

var

  GPO: IGroupPolicyObject;

  Key: HKEY;

begin

  GPO := CreateComObject(IID_GPO) as IGroupPolicyObject;

  if GPO.OpenLocalMachineGPO(GPO_OPEN_LOAD_REGISTRY) = S_OK then

  begin

    if GPO.GetRegistryKey(GPO_SECTION_USER, Key) = S_OK then

      with TRegistry.Create do

        try

          RootKey := HKEY_CURRENT_USER;

          if OpenKey('SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer', True) then

          begin

            WriteInteger('StartMenuLogOff', 0);

          end;

 

          RootKey := Key;

          if OpenKey('SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer', True) then

          begin

            WriteInteger('StartMenuLogOff', 0);

          end;

          RegCloseKey(Key);

          GPO.Save(False, True, REGISTRY_EXTENSION_GUID, CLSID_GPESnapIn);

        finally

          Free;

        end;

    SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, Integer(PChar('Polices')), 0);

  end;

end;

 

Delphi - .....................................

 

Tabiki Mümkün amaaaa

EXE den kod çıkarmak tabiki mümkün ama bu sorunun yeri burası değil

diğer arkadaşlar burda bağırıyor soru sormayın diye lütfen dikkat edelim

 

Delphi Decompiler (De-De) isimli bir program mevcut piyasada.....

 

tabiki anlayabildiği kodu çevirebiliyor :)

anlayamadığı kısımları assebmly kodlarında görüntülüyor....

 

                                                             Corsair

 

Delphi - .....................................

 

Tabiki Mümkün amaaaa

EXE den kod çıkarmak tabiki mümkün ama bu sorunun yeri burası değil

diğer arkadaşlar burda bağırıyor soru sormayın diye lütfen dikkat edelim

 

Delphi Decompiler (De-De) isimli bir program mevcut piyasada.....

 

tabiki anlayabildiği kodu çevirebiliyor :)

anlayamadığı kısımları assebmly kodlarında görüntülüyor....

 

                                                             Corsair

 

Delphi - .....................................

 

kod çıkarma

slm arkadaşlar exe içinden kod çıkarmak mümkünmü

bir fikri olanların maillereni bekliyorum

 

Mehmet Kocabas

e-mail: mehmetkocabas2@hotmail.com

 

Delphi - .....................................

 

kod çıkarma

slm arkadaşlar exe içinden kod çıkarmak mümkünmü

bir fikri olanların maillereni bekliyorum

 

Mehmet Kocabas

e-mail: mehmetkocabas2@hotmail.com

 

Delphi - .....................................

 

Delphi7 ve Iny ile SMS

//murat turan

//http://www.datakent.com

 

TIdHTTP  bileşeni forma ekleyin

 

var

 veri:TStrings;

 sonuc:TStringStream;

 XmlString:string;

begin

XmlString:=

      ' <MainReportRoot> ' +

      ' <UserName>demo905367737871-3501</UserName> ' +

      ' <PassWord>3itbok</PassWord> ' +

      ' <Action>4</Action> ' +

      ' </MainReportRoot> ';

 

  veri := TStringList.Create;

  veri.Add( XmlString );

 

  sonuc := TStringStream.Create('');

  try

     IdHTTP1.Post('http://app.cmfcell.com/httppost/requestxml.aspx',veri,sonuc);

     Memo1.Text := sonuc.DataString;

  finally

   sonuc.Free;

   veri.Free;

  end;

 

 

//tek sms göndermek için XML

 

<MainmsgBody>

<UserName>test-3501</UserName>

<PassWord>test</PassWord>

<Action>0</Action>

<Mesgbody>CMFCell Örnek Mesaj</Mesgbody>

<Numbers>905332669297</Numbers>

<Originator>Cmfcell.com</Originator>

<SDate></SDate>

</MainmsgBody>

 

//Çoklu SMS için XML

<MainmsgBody>

<UserName>username-CID</UserName>

<PassWord>password</PassWord>

<Action>1</Action>

<Messages>

<Message>

<Mesgbody>your message1</Mesgbody>

<Number>905321234567</Number>

</Message>

<Message>

<Mesgbody>your message2</Mesgbody>

<Number>905421234567</Number>

</Message>

</Messages>

<Originator>Cmfcell.com</Originator>

<SDate></SDate>

</MainmsgBody>

*/

 

Delphi - .....................................

 

Delphi7 ve Iny ile SMS

//murat turan

//http://www.datakent.com

 

TIdHTTP  bileşeni forma ekleyin

 

var

 veri:TStrings;

 sonuc:TStringStream;

 XmlString:string;

begin

XmlString:=

      ' <MainReportRoot> ' +

      ' <UserName>demo905367737871-3501</UserName> ' +

      ' <PassWord>3itbok</PassWord> ' +

      ' <Action>4</Action> ' +

      ' </MainReportRoot> ';

 

  veri := TStringList.Create;

  veri.Add( XmlString );

 

  sonuc := TStringStream.Create('');

  try

     IdHTTP1.Post('http://app.cmfcell.com/httppost/requestxml.aspx',veri,sonuc);

     Memo1.Text := sonuc.DataString;

  finally

   sonuc.Free;

   veri.Free;

  end;

 

 

//tek sms göndermek için XML

 

<MainmsgBody>

<UserName>test-3501</UserName>

<PassWord>test</PassWord>

<Action>0</Action>

<Mesgbody>CMFCell Örnek Mesaj</Mesgbody>

<Numbers>905332669297</Numbers>

<Originator>Cmfcell.com</Originator>

<SDate></SDate>

</MainmsgBody>

 

//Çoklu SMS için XML

<MainmsgBody>

<UserName>username-CID</UserName>

<PassWord>password</PassWord>

<Action>1</Action>

<Messages>

<Message>

<Mesgbody>your message1</Mesgbody>

<Number>905321234567</Number>

</Message>

<Message>

<Mesgbody>your message2</Mesgbody>

<Number>905421234567</Number>

</Message>

</Messages>

<Originator>Cmfcell.com</Originator>

<SDate></SDate>

</MainmsgBody>

*/

 

Delphi - .....................................

 

neoturk - re: "ağ üzerinden veya internetten ip adresine göre dosya alma ve gönderme"

herkese merhaba,

 

 

nmstrm komponentleri hakkında dosya gönderme örneği

göndermiş bir arkadaşımız. sağ olsun var olsun, da,

xp işletim sistemi kuşağında yaşıyoruz...

bu dosya gönderme komponentleri çalışmıyor xp de...

 

 

not: bu konu hakkında 2 ocak 2004 tarihli raporumu aktarıyorum müsadenizle

 

 

(nostaljilerden esintiler..)

"

Written by neoturk - 02.01.2004

 

Konu: TCP/IP protokolu üzerinden dosya transferi

 

Merhaba ortakBirkaç haftadır kafamı meşgul eden dosya transferinin nasıl

olacağı konusunda epey bir teorik düşünce sarfettim..

kendi yazdığım mini bir programda tcp/ip üzerinden dosya transferini yaptım.

Local olarak %100 olarak çalışıyor, ama kafamda hala cevaplanmamış

sorular var, biraz da ben abartıyorum, çünkü tekli dosya transferinden

ziyade multi-transfer olayının olmasını istiyorum.

Bunun yanı sıra multi-transfer olurken multi-connect

işlemini de desteklemesini istiyorum. Teoride biraz zor görünüyor,

pratikte biraz uğraştırır. Kafayı takarsam yaparım diyorum ama şu an

için gereği yok.. zaten böyle bir şeyi yaptığımda

kazaa türü program yapmış oluyoruz..

 

Herneyse, kodu ben de incelemek istiyorum.

Yerine oturtmam gereken kodlama ve düşünsel mantıklarım var.

Ne zamandır analizleyememiştim şimdi başlıyoruz….

 

Basit bir client arabirim ve basit bir server arabirim

programı yazmıştım, içinden kritik kodları çektim ve tek tek analiz etmek istedim.

Böylece senin de fikirlerini almış olurum, daha iyi irdelemiş oluruz..

 

Öncelikle vurgulamak istediğim çok önemli analizler var:

 

1.    Internet programcılığı ile uğraşıyor isek

( bu trojan veya her neyse fark etmez ) kesinlikle ve kesinlikle DOSYA TRANSFERİ

olayının %100 sorunsuz olarak çözülmesi gerekiyor.

Çünkü bağlantı sağlanmasında bir problem yok,

ancak er ya da geç dosya transfer olayına ihtiyaç duyulacak!

Bunun için bu konunun bizzat çözümlenmesi ve kendi mantığımıza göre

işleme geçmesi gerekiyor.

 

2.    Delphi olsun CBuilder olsun,

bu programlama dillerinde dosya transfer işini gören NMSTRM

adlı komponent (paket) serisi var.

Hemen hemen tüm programcılar bu komponentleri kullanırlar.

( Çok önemli dip not: Okuduğum birçok delphi kitabında

(okumadığımı yok denecek kadar parmakla gösterebilirim)

dosya transfer örneklerini nedense hep nmstrm komponentleri

üzerinde anlatırlar. Oradaki örneklerde dosya transferleri çalışır.

Oturur yazarsın ve her şeyin çalıştığını görünce bir şeyler öğrendiğini sanırsın..

doğrudur.. ama Level2'ye geçtiğinde NMSTRM komponentlerinin yetersiz

olduğunu ben dahil deneyimli coderler er geç fark etmişlerdir

Bu nedenle oturup adam gibi kodunu kendin yazmalısın..

( icq gibi, paltalk gibi.. )

 

3.    Örnek trojanlar incelendiğinde nedense çoğunda

dosya transfer olayının nasıl yapıldığı gösterilmemiştir.

Bunu gösteren tek örnek trojan kodu LATINUS trojanıdır.

( tek tük bazı trojanlarda da mevcut ancak tarihi eser kalıntılarıyla dolu

ve çalışmayan kod parçacıklarıdır )

 

4.    Latinus trojanındaki dosya transfer işlemi Multi-File

yöntemini destekleyen şekilde transfere müsaade ediyor,

ama kullanımı pek etkin değil.. denedim kullandım çalıştırdım ama etkin değil..

hangi dosyanın ne zaman vardığı, nereye gittiği Allah kerim..

gidiyor dosyalar ve direkt temp klasörüne kopyası çıkartılıyor..

kodu yazan adam biraz kulağını SAĞ'dan göstermiş..

welhasıl pek verimli bir kod değil

 

5.    Dosya göndermek gerçekten önemli bir konu, nedenine gelince,

coderlerin %99'u ( abartmıyorum ) nmstrm komponentini kullanırlar

ve kullanacaklardır. Oturup sıfırdan kodunu yazması inan kasıyor

işin komik yanı da network içinden dışarıya bağlantı yapıldığında

nmstrm componentleri dosya transferlerini yapamıyor..

bunu ya bilerek es geçtiler ya da unuttular..

çünkü bizim daha önceki yazdığımız tüm versiyonlarda nmstrm

komponentlerini kullanmıştım. O yüzden network-dialup arasındaki dosya

transferleri olmuyordu. ( network içinden evdeki pcye bağlantı örneğinde olduğu gibi )

( ama msn veya icq bunu gayet güzel yapıyor değil mi ? )

 

6.    Çok ince bir nuans daha var, tcp/ip ( socketler )

üzerinden dosya göndereceğimiz zaman 2 seçeneğimiz var.

Block ve None-Block seçimiblock işlemli socketlerde bir sonraki gelen veri

paketi cache socket belleğinde tutulur. Aktif olan veri dosyaya

yazıldıktan sonra cache socket belleğinden alır ve

böylece işlemler devam eder.. ( winsock topolojisi ).

none-block seçimi yaparsak cache bellekte veri tutulmaz.

Gelen veri direkt işlenir. İşlenen bir veri sırasında şayet

ikinci bir veri paketi gelirse bu paket boşa gide çünkü cache

bellekte tutulmazburada şöyle bir sorun var, winsock cache bellek dolar elbet

bu durumda da aynen 3ün 1ini alırızbu sorunun düzeltilmesi

konusundaki bazı profesyonel yaklaşımları birkaç programda görmüştüm..

bunlardan en etkini de bildiğimiz icq ve msn dosya transferleri

 

7.    Benim amacım cache belleğin dolmasına müsaade etmeden ping-pong

( paketi aldım-sonrakini gönder) mantığına göre veri paketlerini sırayla göndermek.

( icqdaki file send speed olayı, 1-5 arası hız seçimi vardı hatırlarsan.. olayın özü burada yani… )

 

etc ...

 

"

 

son not:

 

azmin sonu başarıdır !

 

yıl 2006, şirketler arası file-sharing/multy_file_sent/multy-chat programları ile bu

konuya son noktayı koydum.

 

hepinize iyi günler iyi çalışmalar, hayırlı işler diliyorum

 

"Türk Coderler Her Zaman Zeki ve Güçlüdür"

 

saygılarımla_  [ xxnt03@lycos.co.uk ]

 

Delphi - .....................................

Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol