Arsip: [Tips]

more 14 years ago
xerion
Hello semua,
saya ingin bagi tips nich. Ini adalah fungsi untuk membuka regedit dan menunjukkan kunci registry yang ingin ditampilkan. Kode berikut saya port dari C ke delphi. asalnya dari salah satu software sysinternals.com yang open-source. namanya regjump.cpp. inilah dia ...
function RegEditJump(path : string):boolean;
var hprocess : THandle;
hRegedit : HWND;
hRegeditTree : HWND;
SExecInfo : TShellExecuteInfo;
i,RegPID : integer;
begin
result := false;
hRegedit := FindWindow('RegEdit_RegEdit',nil);
if hRegedit = 0 then
begin
FillChar(SExecInfo, SizeOf(SExecInfo), 0);
SExecInfo.cbSize := sizeof(SExecInfo);
SExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
SExecInfo.lpVerb := pchar('open');
SExecInfo.lpFile := pchar('regedit.exe');
SExecInfo.nShow := SW_SHOWNORMAL;
ShellExecuteEx(@SExecInfo);
WaitForInputIdle(SExecInfo.hProcess, INFINITE );
end;
hRegedit := FindWindow('RegEdit_RegEdit', nil );
if hRegedit = 0 then
begin
showmessage('Error while trying to execute Windows Registry Editor !');
TerminateProcess(SExecInfo.hProcess,0);
end else
begin
ShowWindow( hRegedit, SW_SHOW );
SetForegroundWindow( hRegedit );
hRegeditTree := FindWindowEx( hRegedit, 0, 'SysTreeView32', nil);
SetForegroundWindow( hRegeditTree );
Windows.SetFocus( hRegeditTree );
GetWindowThreadProcessId( hRegedit, @RegPID );
hProcess := OpenProcess( PROCESS_ALL_ACCESS, false, RegPID );
for i := 0 to 30 do SendMessage( hRegeditTree ,WM_KEYDOWN,VK_LEFT,0);
sendmessage( hRegeditTree ,WM_KEYDOWN,VK_RIGHT,0);
WaitForInputIdle( hProcess, INFINITE );
path := uppercase(path);
for i := 1 to length(path) do
begin
if path[i] = '' then
begin
sendmessage( hRegeditTree ,WM_KEYDOWN,VK_RIGHT,0);
WaitForInputIdle( hProcess, INFINITE );
end else
begin
sendmessage( hRegeditTree ,WM_CHAR,ord(path[i]),0);
end;
end;
SetForegroundWindow(hRegedit);
windows.SetFocus( hRegedit );
CloseHandle( hProcess );
result := true;
end;
end;
cara pakenya RegEditJump('HKEY_CURRENT_USER\Software\Borland');
semoga berguna bagi yang lain yang ingin membuat aplikasi yang berhubungan dengan registry dengan delphi.
bye
more 14 years ago
LuriDarmawan
dipersilahkan dimasukkan ke artikel, onSubmitArticle
http://pascal-id.org/dpr/Submit_News.pas
kalo ditaruh di forum,
setelah beberapa lama forum di prunning, bisa katut ilang tuh.

more 14 years ago
xerion
berikut adalah fungsi buat mencari nomor apa genap ganjil.
mungkin sudah ada yg posting.
supaya jika ada yg cari akan lebih mudah
function isGenap(I:integer):boolean;
var t : integer;
begin
t := I div 2;
if s = t*2 then result := true else result := false;
end;
Happy coding !!

more 14 years ago
_lmz
@xerion: berikut adalah fungsi buat mencari nomor apa genap ganjil. mungkin sudah ada yg posting. supaya jika ada yg cari akan lebih mudah function isGenap(I:integer):boolean; var t : integer; begin t := I div 2; if s = t*2 then result := true else result := false; end; Happy coding !!ini variabel s dari mana ya... kenapa juga mesti dibagi terus dikali. kan bisa ((i mod 2) = 0). atau mungkin main-main dengan LSBnya... btw. dengan if ((i mod 2) = 0) then ... code yang dihasilkan compiler delphi kelihatannya tidak menggunakan instruksi pembagian sama sekali... kelihatannya ini ada kasus khususnya...

more 14 years ago
deLogic
@lmz: btw. dengan if ((i mod 2) = 0) then ... code yang dihasilkan compiler delphi kelihatannya tidak menggunakan instruksi pembagian sama sekali... kelihatannya ini ada kasus khususnya...kalo pembagian bilangan integer dengan 2, saya rasa compiler menggunakan teknik optimasi dengan shift register right, SHR, karena operasi ini lebih cepat (clock cycle nya di processor lebih singkat). begitu pula dengan perkalian integer dengan 2, akan lebih efisien dengan shift register left (SHL). Dan SHR dan SHL dapat digunakan untuk pembagian dan perkalian bilangan berpangkat 2, misalnya 2, 4, 8, 16, 32 dan seterusnya. CMIIW.

more 14 years ago
deLogic
@xerion: function isGenap(I:integer):boolean; var t : integer; begin t := I div 2; if s = t*2 then result := true else result := false; end;lho.. iya seperti kata rekan lmz.. variabel s itu untuk apa ya...?? terus mungkin lebih enakan pake operator mod kali ya.. :) Dan tahukah, Anda, bahwa di unit system sudah disediakan fungsi untuk memeriksa bilangan Ganjil, yaitu ODD, yang akan memberikan nilai True jika bilangan bernilai ganjil dan false jika genap.. jadi..
function isGenap(I:integer):boolean;
begin
Result := not Odd(I);
end;

more 14 years ago
kaka-delphi
Ada baiknya tips bro _lmz dan deLogic di masukkan di http://pascal-id.org/dpr/Submit_News.pas
Kekekekkkk .... :lol:
more ...
- Pages:
- 1
- 2
reply |
Report Obsolete
Last Articles
- Lazarus Release 2.0.12
- Project Group dalam Lazarus
- FastPlaz Database Explorer
- Release: FastPlaz Super Mom v0.12.22
- PascalClass #3: Web Development with Free Pascal
- Makna Pascal di Pascal Indonesia
- Kulgram : Instalasi Lazarus di Perangkat Berbasis ARM
- PascalClass #1: Analisa Database dan Machine Learning
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
- Mengenal OXYGENE – Pascal For .NET
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 6 months ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 7 months ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 7 months ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 1 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 8 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 8 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 8 years ago
Random Topic
- tanya : client/server
by ekifalen_estrada in Hal umum tentang Pascal Indonesia more 13 years ago - cari tutorial Quick Report
by budi_sleman in Tip n Trik Pemrograman more 11 years ago - Import file excel dengan format date ke access
by msih_bljaran in Lain-lain more 11 years ago - Print Pake Epson TMU 300
by wati in Hal umum tentang Pascal Indonesia more 10 years ago - mau tanya donk???
by alvonz in OOT more 12 years ago - bagaimana menggunakan quick report
by divanda in Hal umum tentang Pascal Indonesia more 13 years ago - Mengambil skala prioritas...
by Random in Tip n Trik Pemrograman more 13 years ago - nampilin IP Address
by lela in Network, Files, I/O & System more 14 years ago - cetak laporan bulanan dan tahuna Quick report dengan query
by d3n1bgt in Tip n Trik Pemrograman more 10 years ago - SOA with delphi
by simple_code in Hal umum tentang Pascal Indonesia more 12 years ago