Arif widiyanto

mind, passions, spirit and hopes

Tulisan terkirim dikaitan (tagged) ‘Delphi’

Delphi – Menggambar langsung pada Desktop

Ditulis oleh arifw di/pada Kamis, 24 April 2008



var

Form1: TForm1;

Canv: TCanvas;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

Canv := TCanvas.Create;

Canv.Handle := GetWindowDC(0);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

Canv.Free;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

Canv.pen.Color := clred;

Canv.pen.Width := 20;

Canv.moveto(Screen.Width, 2);

Canv.lineto(2, 2);

Canv.lineto(2, Screen.Height);

Canv.lineto(Screen.Width, Screen.Height);

Canv.lineto(Screen.Width, 2);

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Canv.Font.Name := ‘Arial’;

Canv.Font.Size := 55;

Canv.Font.Color := clgreen;

Canv.Brush.Style := bsclear;

Canv.textout(240, Screen.Height div 2 – 30, ‘Hello to Screen !’);

end;

procedure TForm1.Button3Click(Sender: TObject);

var

myBitmap: TBitmap;

begin

myBitmap := TBitmap.Create;

try

myBitmap.LoadFromFile(‘MyImage.bmp’);

Canv.draw(100, 100, myBitmap);

finally

myBitmap.Free;

end;

Ditulis dalam Delphi, Graphic, Programming | Bertanda: , | Leave a Comment »

Delphi – Get a list of installed services

Ditulis oleh arifw di/pada Kamis, 24 April 2008


const
SERVICE_KERNEL_DRIVER = $00000001;
SERVICE_FILE_SYSTEM_DRIVER = $00000002;
SERVICE_ADAPTER = $00000004;
SERVICE_RECOGNIZER_DRIVER = $00000008;

SERVICE_DRIVER =
(SERVICE_KERNEL_DRIVER or
SERVICE_FILE_SYSTEM_DRIVER or
SERVICE_RECOGNIZER_DRIVER);

SERVICE_WIN32_OWN_PROCESS = $00000010;
SERVICE_WIN32_SHARE_PROCESS = $00000020;
SERVICE_WIN32 =
(SERVICE_WIN32_OWN_PROCESS or
SERVICE_WIN32_SHARE_PROCESS);

SERVICE_INTERACTIVE_PROCESS = $00000100;

SERVICE_TYPE_ALL =
(SERVICE_WIN32 or
SERVICE_ADAPTER or
SERVICE_DRIVER or
SERVICE_INTERACTIVE_PROCESS);

uses WinSvc;

function ServiceGetList(
sMachine : string;
dwServiceType,
dwServiceState : DWord;
slServicesList : TStrings )
: boolean;
const
cnMaxServices = 4096;

type
TSvcA = array[0..cnMaxServices]
of TEnumServiceStatus;
PSvcA = ^TSvcA;

var
j : integer;

schm : SC_Handle;

nBytesNeeded,

nServices,
nResumeHandle : DWord;

ssa : PSvcA;
begin
Result := false;

schm := OpenSCManager(
PChar(sMachine),
Nil,
SC_MANAGER_ALL_ACCESS);

if(schm > 0)then
begin
nResumeHandle := 0;

New(ssa);

EnumServicesStatus(
schm,
dwServiceType,
dwServiceState,
ssa^[0],
SizeOf(ssa^),
nBytesNeeded,
nServices,
nResumeHandle );

for j := 0 to nServices-1 do
begin
slServicesList.
Add( StrPas(
ssa^[j].lpDisplayName ) );
end;

Result := true;

Dispose(ssa);

// close service control
// manager handle
CloseServiceHandle(schm);
end;
end;

ServiceGetList( ”,
SERVICE_WIN32,
SERVICE_STATE_ALL,
ListBox1.Items )

Author: Alexander Savchev

Ditulis dalam Delphi, Programming, System Information | Bertanda: , | Leave a Comment »

Mengganti Alamat DNS TCP/IP Secara Dinamis

Ditulis oleh arifw di/pada Selasa, 22 April 2008

Jika Anda sedang tersambung pada Internet, Domain Name Server (DNS) biasanya diminta untuk diganti ke alamat numerik IP addresses — perpindahan www.chami.com ke 1.2.3.4 contohnya.

Jika Anda butuh untuk mengganti secara dinamis DNS server anda melalui program, anda bisa melakukannya dengan menggunakan fungsi “SetTCPIPDNSAddresses()” dengan daftar alamat IP DNS dengan pemisah satu spasi.
Menggunakan Registry;
procedure
SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : string );
var
reg : TRegIniFile;
begin
reg := TRegIniFile.Create( ” );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString(
sKey, sItem, sVal + #0 );
reg.Free;
end;
Listing #1 : Delphi code. Download registry (0.3 KB).
procedure
SetTCPIPDNSAddresses(
sIPs : string );
begin
//
// if using Windows NT
//
SaveStringToRegistry_LOCAL_MACHINE(
‘SYSTEMCurrentControlSet’ +
‘ServicesTcpipParameters’,
‘NameServer’,
sIPs );

//
// Pada Windows 95
//
SaveStringToRegistry_LOCAL_MACHINE(
‘SYSTEMCurrentControlSet’ +
‘ServicesVxDMSTCP’,
‘NameServer’,
sIPs );
end;

Listing #2 : Delphi code. Download setdns (0.33 KB).

Contohnya, Jika Anda ingin merubah 2 alamat DNS server — 1.2.3.4 dan 5.6.7.8 maka fungsi yang bisa dipanggil function :

SetTCPIPDNSAddresses(
‘1.2.3.4 5.6.7.8′ );
Listing #3 : Delphi code. Download sample (0.17 KB).

Ditulis dalam Delphi, Programming | Bertanda: , , , , , , , , , , | Leave a Comment »

Apakah Fitur auto hide pada Windows taskbar’s enabled?

Ditulis oleh arifw di/pada Selasa, 22 April 2008

Ingin tahu apakah fitur auto hide pada Windows taskbar sedang enabled? Dibawah ini fungsi sederhana untuk memeriksanya, ditulis pada bahasa C / C++ dan Delphi.

Delphi CODE


uses ShellAPI;

(*
Hasil TRUE jika auto hide taskbar adalah on.

if(IsTaskBarautoHideOn)then
begin
// auto hide ON
end;
*)
function IsTaskbarAutoHideOn : boolean;
var
ABData : TAppBarData;
begin
ABData.cbSize := sizeof(ABData);
Result :=
(SHAppBarMessage(ABM_GETSTATE, ABData)
and ABS_AUTOHIDE) > 0;
end;
Listing #1 : Delphi code. Download tbah.pas (0.36 KB).

Kode C / C++

//
// Hasil >0 jika auto hide taskbar on.
//
int IsTaskbarAutoHideOn()
{
APPBARDATA ABData;

ABData.cbSize = sizeof(ABData);

return
SHAppBarMessage(ABM_GETSTATE, &ABData)
& ABS_AUTOHIDE;
}
Listing #2 : C/C++ code. Download tbah.cpp (0.31 KB).

Ditulis dalam C / C++, Delphi, Programming | Bertanda: , , , , , , , | Leave a Comment »

Memainkan File Flash di Delphi

Ditulis oleh arifw di/pada Jumat, 1 Februari 2008

Dewasa ini perkembangan dunia animasi begitu hebat dengan hadirnya Macromedia Flash… Bagaimana memadukan program Delphi dengan memainkan file flash (*.swf). Untuk mengoptimalkan program yang kita buat, akan sangat bagus jika program kita dilengkapi dengan animasi hidup ala flash. Bagaimana cara membuat program untuk menjalankan file flash?… Baca entri selengkapnya »

Ditulis dalam Programming | Bertanda: , , , , , , , , , | 3 Komentar »