Uygulamam Windows her açıldığında otomatik çalışsın uses kısmına Registry unitini ekleyin. const MAX_PATH = 144; procedure TForm1. Button1Click ; var reg: TRegistry; begin reg := TRegistry. Create; reg. RootKey := HKEY_LOCAL_MACHINE; reg. LazyWrite := false; reg. OpenKey ; reg. WriteString ; reg. CloseKey; reg. free; end; Klasöre Gözat diyalogunu kullanarak bir klasörü seçme uses kısmına ShellAPI ve ShlObj unitlerini ekleyin. procedure TForm1. Button1Click ; var TitleName : string; lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array of char; TempPath : array of char; begin FillChar(BrowseInfo, sizeof ,

komutlar gerçekten çok işime yaradı. saol.

Belgeler menüsüne bir dosya ekleme uses kısmına ShlOBJ unitini ekleyin; procedure TForm1. Button1Click ; var s : string; begin s := 'C:\DownLoad\deneme.html'; SHAddToRecentDocs(SHARD_PATH, pChar ; end; Belgeler menüsünü temizleme uses kısmına ShlOBJ unitini ekleyin; SHAddToRecentDocs ; Duvar kağıdını değiştirmek var s: string; begin s := 'c:\windows\cars. bmp'; SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, PChar ,0); Başlat butonunu gizlemek veya kullanılmaz hale getirmek procedure TForm1. Button1Click ; var Rgn : hRgn; begin // Başlat butonunu gizle Rgn := CreateRectRgn(0, 0, 0, 0); SetWindowRgn(FindWindowEx(FindWindow , 0, 'Button', nil), Rgn, true); end; procedure TForm1. Button2Click ; begin //Gizlenen Başlat butonunu eski haline döndürmek için SetWindowRgn(FindWindowEx(FindWindow , 0, 'Button', nil), 0, true); end; procedure TForm1. Button3Click ; begin //Başlat butonunu kullanılmaz yap EnableWindow(FindWindowEx(FindWindow , 0, 'Button', nil), false); end; procedure TForm1. Button4Click ; begin //Kullanılmaz yapılan Başlat butonunu eski haline getirmek için EnableWindow(FindWindowEx(FindWindow , 0, 'Button', nil), true); end; Bir programın çalıştırılması WinExec ; WinExec ; WinExec ; WinExec ; Harddiskin seri numarasının bulunması procedure TForm1. Button1Click ; var VolumeSerialNumber : DWORD; MaximumComponentLength : DWORD; FileSystemFlags : DWORD; SerialNumber : string; begin GetVolumeInformation('C:\', nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0); SerialNumber := IntToHex(HiWord , 4) + '-' + IntToHex(LoWord , 4); Memo1. Lines. Add ; end; Windows ve System klasörlerinin bulunması procedure TForm1. Button1Click ; var a : Array of char; begin GetWindowsDirectory(a, sizeof ; ShowMessage(StrPas ; GetSystemDirectory(a, sizeof ; ShowMessage(StrPas ; end; Windows lisans bilgilerinin bulunması uses kısmına Registry unitini ekleyin; procedure TForm1. Button1Click ; var reg: TRegIniFile; begin reg := TRegIniFile. create('SOFTWARE\MICROSOFT\MS SETUP \'); Memo1. Lines. Add(reg. ReadString ; Memo1. Lines. Add(reg. ReadString ; reg. free; end; Speakerdan Beep sesi çıkartma MessageBeep(word(-1)); Bir Denetim Masası uygulamasını çalıştırmak Control Panel uygulamaları Windows\System klasörü altında bulunur. . CPL uzantılı dosyalardır. Bu uygulamaları Control. Exe programı ile çalıştırabilirsiniz. Bazı Control Panel uygulamaları Windows\System klasöründe bulunmaz. Bunların ismini vererek çalıştırabilirsiniz. WinExec ; WinExec ; WinExec ; Windows 9x ve NT'de ortak olarak kullanılan bazı denetim masası uygulamaları access. cpl: Erişilebilirlik appwiz. cpl: Program ekle/kaldır desk. cpl: Görüntü intl. cpl: Bölgesel ayarlar joy. cpl: Oyun çubuğu main. cpl: Fare mmsys. cpl: Çoklu ortam modem. cpl: Modem sysdm. cpl: Sistem timedate. cpl: Tarih/Saat Windows'u kapatmak veya yeniden başlatmak Win9x'te bilgisayarı kapatmak veya yeninden başlatmak için : ExitWindowsEx(EWX_SHUTDOWN,0); //yeniden başlatmak için EWX_REBOOT Ekran koruyucusunu kapatmak ve açmak //kapatmak için SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, nil, 0); //açmak için SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, nil, 0); Ekran kartım kaç rengi destekliyor Ekran kartınızın kaç rengi desteklediğini aşağıdaki kodla bulabilirsiniz. (1 shl (GetDeviceCaps(Form1. Canvas. Handle, BITSPIXEL) GetDeviceCaps(Form1. Canvas. Handle, PLANES))); Windows Gezginini istediğiniz bir klasörle açma uses kısmına ShellApi unitini ekleyin. ShellExecute(0, 'explore', 'C:\WINDOWS', //buraya açmak istediğiniz klasörü yazın. nil, nil, SW_SHOWNORMAL); Windows'un Bul diyalog penceresini istediğiniz bir klasörle açma Windows'ta Başlat->Bul->Dosyalar ve Klasörler ile açtığınız Bul diyalog penceresini Delphi içerisinden hem de istediğiniz yolu vererek çalıştırabilirsiniz. uses kısmına ddeman unitini ekleyin. procedure TForm1. Button1Click ; begin with TDDEClientConv. Create do begin ConnectMode := ddeManual; ServiceApplication := 'explorer. exe'; SetLink ; OpenLink; ExecuteMacro(' ', False); //diyalog açıldığında konum kısmında CloseLink; //olmasını istediğiniz klasör. Free; end; end; Pencerenin kapatma düğmesini etkisiz hale getirme Pencerenin başlık çubuğunda bulunan kapatma düğmesini etkisiz hale getirebilirsiniz. Aynı zamanda sistem menüsündeki Kapat seçeneğide kaybolur. Bunun için aşağıdaki gibi bir kod yazmalısınız. procedure TForm1. Button1Click ; var hwndHandle : THANDLE; hMenuHandle : HMENU; begin hwndHandle := FindWindow(nil, 'Form1'); //Form1 pencerenin başlığını göstermektedir. if (hwndHandle <> 0) then begin //Burayı uygulamanıza göre değiştirin hMenuHandle := GetSystemMenu ; if (hMenuHandle <> 0) then DeleteMenu ; end; end;

characters, this is required since each parameter can hold a list of zero-terminated strings, the extra

güzel komutlar sağol BU WARDOM DA BAYAĞI ÇOK ŞEY ÖĞRENDİM HAA =

rica ederim arkadaşlar gene bir sorunuz olursa yazın winxp de shut down buradaki değil sanırım orda shell32. dll kullanılıyor nt tabanlı sistemlerde o değişmiş onunda komudunu vericem.

Windows NT/2000/XP'yi Kapatmak 2000 ve XP'de bilgisayarı kapatmak için gerekli yetkiye sahip olmanız lazım. Aşağıda kodla bilgisayarı kapatabilirsiniz. var tkHandle : THandle; BufferLun, ret : DWORD; tk, tkPrevious : TTokenPrivileges; LID : TLargeInteger; LUID : TLuIDAndAttributes; versione : TOSVersionInfo; begin BufferLun := 1024; ret := 0; versione. dwOSVersionInfoSize := sizeof ; GetVersionEx ; if versione. dwPlatformId = VER_PLATFORM_WIN32_NT then begin tkHandle := GetCurrentProcess; OpenProcessToken ; LookupPrivilegeValue(PChar , PChar , LID); LUID. Luid := LID; LUID. Attributes := SE_PRIVILEGE_ENABLED; tk. PrivilegeCount := 1; tk. Privileges := LUID; AdjustTokenPrivileges ; end; ExitWindowsEx(EWX_SHUTDOWN or EWX_PowerOff,0); end; . wav dosyalarını çaldırmak Bu iş için PlaySound isimli api'yi kullanabilirsiniz. Api geniş bir parametre aralığına sahip, detaylar için Delphi ile gelen Win32 yardım dosyasına bakabilirsiniz. PlaySound('C:\WINDOWS\MEDIA\Windows Start. wav', 0, Snd_FileName or Snd_Async); Programımın simgesi Tray'de gözüksün Bu işi yapan birçok bileşen var. Bunlardan en iyisi artık bedava olarak dağıtılan TurboPower ShellShock paketi içindeki tray bileşeni. Bu paketi indirip kurun. İndirme detayları için sitedeki 3. Parti bileşenler kısmındaki TurboPower yazısına bakabilirsiniz. Programım Windows 2000/Xp'de düzgün çalışıyor, Win9x'te TComboBox bileşeninde xxx. Items. String EReadError veriyor Bu hata genellikle sistem kaynakları yetersiz olduğu zaman alınmakta. Win 9x'te sistem kaynakları biraz sınırlı. Diğer programlarda bu tip hatalar almıyorsanız, programınızda aldığınız kaynakları ve bunları işi bittiği anda serbest bırakıp bırakmadığınızı kontrol edin. Win9x'te user ve gdi kaynakları hala sınırlı. TWinControl sınıfından türeyen componentlerin hepsi handle'a sahiptir. Win9x'te handle sayısı 16K ile sınırlı. Ayrıca glyph, image, imagelist ve font gibi componentler de gdi kaynaklarını kullanırlar. Bu da sınırlı Win9x'te. Aşağıdaki noktalara dikkat edin. 1. Kesin çözüm 2000 veya XP'ye terfi. Eğer işyeri ise güvenlik gibi başka nedenlerle bu en iyi çözüm olacaktır. Biliyorsunuz Win9x'in hedef kitlesi ev kullanıcıları. 2. Formları otomatik create etmeyin. Gerektiği zaman oluşturup işi bitince yok edin. 3. TWinControl'den türeyen bileşenler yerine grafik componentler kullanın. Mesela Panel yerine Bevel kullanın. Grafik componentlerin handle'ları olmadığı için Windows kaynaklarını kullanmazlar. 4. Kendi oluşturduğuz nesneleri yok edin. Mesela bir stringlist oluşturup, daha sonra yok etmezseniz program kapatılsa bile hafızada kalmaya devam eder. Aynı kodu programda bir çok kez çağırıyorsanız gerisini siz düşünün. 5. Windows'ta resource monitör isimli bir program var. Yüklü değilse Program ekle/Kaldır windows kısmından kurabilirsiniz. Burdan user ve gdi resource kısmını takip ederek nerelerde kaynakların kritik noktalara indiğini takip edip önlem alabilirsiniz. 6. Herşey yolunda olsa bile eğer bir formda çok fazla bileşen veya resim vs. varsa buda etkileyebilir. Geçenlerde birisi 1600 tane buton olan bir formdan bahsediyordu. Başka bir uygulamayı kapatmak Programatik olarak başka bir uygulamayı kapatmak için, uygulamay WM_QUIT mesajı göndermeniz lazım. function KillApp : boolean; var AppHandle:THandle; begin AppHandle:=FindWindow ; Result:=PostMessage(AppHandle, WM_QUIT, 0, 0); end; Kullanılışı : if not KillApp then ShowMessage ; CD'nin takılıp çıkarıldığından haberdar olma Bunun için WM_DEVICECHANGE mesajlarını yakalamamız lazım. private kısmına aşağıdaki satırı ekleyin : procedure WMDeviceChange ; message WM_DEVICECHANGE; bu da yakalama kısmı : procedure TForm1. WMDeviceChange ; const CD_IN = $8000; CD_OUT = $8004; var Mesaj : String; begin inherited; case Msg. wParam of CD_IN : Mesaj := 'CD takıldı'; CD_OUT : Mesaj := 'CD çıkarıldı'; end; ShowMessage ; end; Sürücü tipini belirlemek Formun üzerine bir memo ve bir buton koyun ve aşağıdaki kodu yazın. procedure TForm1. Button1Click ; var Drive: Char; DriveLetter: String ; begin for Drive := 'A' to 'Z' do begin DriveLetter := Drive + ':\'; case GetDriveType(PChar of DRIVE_REMOVABLE: Memo1. Lines. Add(DriveLetter + ' Disket Sürücü '); DRIVE_FIXED: Memo1. Lines. Add(DriveLetter + ' Sabit disk '); DRIVE_REMOTE: Memo1. Lines. Add(DriveLetter + ' Ağ sürücüsü '); DRIVE_CDROM: Memo1. Lines. Add(DriveLetter + ' CD-Rom '); DRIVE_RAMDISK: Memo1. Lines. Add ; end; end; end; Bir fontu Windows'a kurmadan uygulamanızda kullanma Formun OnCreate ve OnClose olaylarına aşağıdaki kodları yazın. procedure TForm1. FormCreate ; begin AddFontResource ; SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); end; procedure TForm1. FormClose ; begin RemoveFontResource ; SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); end; Bir Klasördeki Dosyaları Başka Bir Klasöre Kopyalama uses kısmına ShellApi unitini ekleyin. procedure TForm1. Button1Click ; var OpStruc: TSHFileOpStruct; frombuf, tobuf: Array of Char; Begin {The fillchars make sure the parameters are terminated by at least two

terminates the list. } fillChar( OpStruc, Sizeof , 0 ); FillChar( frombuf, Sizeof , 0 ); FillChar( tobuf, Sizeof , 0 ); StrPCopy ; StrPCopy ; With OpStruc DO Begin Wnd:= Handle; wFunc:= FO_COPY; pFrom:= @frombuf; pTo:=@tobuf; fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; end; ShFileOperation ; end; Windows'un Özel Klasörlerini Açma Aşağıdaki kodla Bilgisayarım, Masaüstü, Yazıcılar, Fontlar gibi özel Windows klasörlerini açabilirsiniz. uses shellapi, ShlObj, ActiveX; procedure TForm1. Button1Click ; var exInfo: TShellExecuteInfo; Procedure FreePidl ; Var allocator: IMalloc; Begin If Succeeded(SHGetMalloc Then Begin allocator. Free ; allocator. Release; End; End; Begin FillChar( exInfo, Sizeof , 0 ); // initialize all fields to 0 With exInfo Do Begin cbSize:= Sizeof ; // required! fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_IDLIST; Wnd := Handle; nShow := SW_SHOWNORMAL; lpVerb := 'open'; ShGetSpecialFolderLocation( handle, CSIDL_DESKTOP, PItemIDLIst ; End; ShellExecuteEx ; FreePIDL ; end; Diğer özel klasörler : CSIDL_DESKTOP, CSIDL_PROGRAMS, CSIDL_CONTROLS, CSIDL_PRINTERS, CSIDL_PERSONAL, CSIDL_STARTUP, CSIDL_RECENT, CSIDL_SENDTO, CSIDL_BITBUCKET, CSIDL_STARTMENU, CSIDL_DESKTOPDIRECTORY, CSIDL_DRIVES , CSIDL_NETWORK, CSIDL_NETHOOD, CSIDL_FONTS, CSIDL_TEMPLATES. bimeks borland component database delphi delphi. net delphi dersleri firebird help interbase makale oracle seminer software sybase veritabanı web