Delphi ajuta

În exemplele lui Delphi privind utilizarea obiectelor COM, de regulă se utilizează următoarea construcție:

Utilizarea variabilelor de tip interfață elimină acest inconvenient. Este suficient să scrieți acest lucru (presupunând că există într-adevăr o interfață IMyInterface):

În plus, compilatorul este acum în mod clar înțelege ce se utilizează tipul de variabilă și ce se poate face, „în spatele scenei“, există, de asemenea, o creștere a performanței de viteză cu obiectul, ca În primul caz, toate lucrările efectuate cu obiectul indirect, prin metoda Invoke a IDispatch sale de interfață (cititorii curioși pot citi despre mai în detaliu în Delphi IDispatch ajutor și MSDN).

Dacă obiectul este transferat la orice modul prin variabila (parametrul) tip Variant (OleVariant), apoi, din păcate, Delphi se întoarce din nou tot cerc complet (vezi. Exemplul 1). Pentru obținerea variantei dorite a interfeței tipizovanny, efectuați o simplă conversie este suficientă:

Puteți să strângeți controlul asupra obiectului trecut verificând tipul de date din varianta:

Du-te aici suntem cu o prietena in centrul de vineri seara, mersul pe jos tip :))) plângefli unul altuia munca noastră. Mai exact, nu ne plângem, ci doar vorbim. "Avem astfel de monitoare dezgustatoare", spune ea, "pâlpâie foarte mult.
- Da, spun eu, nu avem nimic în curentul lui Makov, iar Pisyukov e și el prost.
- Câți, de câte păsărici ești?
- Masha! Spun SHIT. ))))
Astfel sa născut un nou concept - "monitoare de 17 rahaturi".

Uneori este necesar cositorire doar o parte a textului dintr-un RichEdit fără a selecta-l, adică fără a utiliza SelText proprietate. Mai jos este codul care vă permite să faceți acest lucru.

Următoarea funcție poate fi folosită pentru a obține cuvântul pe care se află cursorul mouse-ului:

O modalitate de a suge parolele din anumite seturi de programe

A doua zi am concediat un sysadmin ..
Regizorul îi spune:
- Dă-mi parola de sistem, și îmi dă o hârtie.
Sysop scrie următoarele *******, după un moment de gândire:
- Nu, o altă fulg de zăpadă.

Trageți parolele din memoria cache

Deci, astăzi ne uităm la modul în care putem lua parolele stocate în memoria cache de la Windows 9x și Windows unde, în forma prevăzută a cincea Ieshko (deși poate suficient de a 4-:)

Probabil vă întrebați: cum ajunge dolphy acolo unde este nevoie, adică funcția de procesare a parolelor și cum le cache toate, deși funcția a fost chemată doar o singură dată, dar foarte simplu. Amintiți-vă de linia WNetEnumCachedPasswords (zero, 0, $ FF, @AddPassword, 0), deci asta face. Sper că nu mai sunt întrebări.


Cum se găsește calea completă și numele fișierului DLL încărcat

- Care este diferența dintre un vânzător de mașini folosite și un vânzător de calculatoare?
- Vânzătorul de mașini uzate știe când el te minte.

Afișați modurile dispozitivului

Deci, în scopul de a obține informații cu privire la toate modurile posibile ale adaptorului, avem nevoie pentru a face o serie de funcții de apeluri EnumDisplaySettings. Cauzarea această funcție într-o buclă de fiecare dată când primim un mod disponibil, până când rezultatul funcției nu va fi diferit de adevărat.

După ce vom obține toate modurile disponibile, atunci pentru a stabili dorit nu este dificil. Pentru aceasta, folosim funcția ChangeDisplaySettings. De asemenea, această funcție va actualiza registrul Windows dacă este necesar.

Funcția ChangeDisplaySettings returnează valoarea unui întreg lung. Această valoare poate fi utilizată pentru a determina succesul unei funcții prin compararea cu valorile din lista de constante.

Notă: Multe adaptoare (mai ales cele vechi) pot să nu accepte modificarea rezoluției fără a reporni computerul.

Urmărirea modificărilor la afișaj

Pentru a urmări modificările, trebuie să creați un handler pentru a intercepta mesajul WM_DISPLAYCHANGE. De obicei, această metodă este utilizată în cazul în care o aplicație utilizează grafică în lucrarea sa și trebuie repornit pentru a modifica rezoluția, adâncimea bitului etc.

- Lucrul este, - spune motoristul pazei, - că sunt programator.
- Acum este clar de ce biletul tău arată ca o carte de pumn.

Valorile rezultate sunt:

  • 1 = 2 biți pe punct
  • 4 = 16 biți pe punct
  • 8 = 256 biți pe punct
  • 15 = 32768 biți pe punct (returnează 16 pentru majoritatea driverelor dispozitivelor de ecran)
  • 16 = 65535 biți pe punct
  • 24 = 16,777,216 biți pe punct
  • 32 = 16,777,216 biți pe punct (la fel ca 24)

Numai direct numărul de culori poate fi calculat cu ușurință:

Rezoluția actuală a ecranului poate fi recunoscută apelând GetSystemMetrics () ca parametri parcurși:

înălțimea SM_CXSCREEN a zonei de lucru a ecranului în lățime pixeli SM_CYSCREEN a zonei de lucru a ecranului în înălțime pixeli SM_CXFULLSCREEN a întregii zone de ecran în lățime de pixeli SM_CYFULLSCREEN pe ecran în pixeli

Mai jos este un exemplu de înălțime și lățime a zonei de lucru a ecranului (pentru întreaga zona ecranului trebuie doar să modificați parametrii GetSystemMetrics numesc):

Hackerul Petya iubește Windows!
Hacker Vasya iubește Windows!
Și hackerul lui Serghei iubește de asemenea Windows!
Și Windows le urăște pe toți!

Iată modul meu vechi în care am extras sunete în Visual Basic (a fost cu mult timp în urmă) folosind funcțiile API. Mai jos este o funcție care necesită doi parametri la intrare: tonul și lungimea redării. (Notă: funcțiile Windows API necesită mult mai mulți parametri, dar trebuie doar să vă faceți griji cu privire la aceia care se modifică de la apel la apel, adică numai în ton și durată.)

Apoi puteți apela această funcție după cum urmează.

Aceste două linii vor determina difuzorul PC-ului dvs. să sune mai întâi într-un interval redus (durata unei secunde sau două) și apoi puțin mai mult într-un interval mai mare.


Recepționați sunetul de la microfon

Un nou virus, Vladimir Vladimirovich, a fost descoperit, când este detectat, antivirusul șterge totul pe șurub.

Mai întâi trebuie să creați un fișier audio gol, să zicem Windows Audio Recorder și ce parametri va avea, cum ar fi fișierul rezultat, apoi folosind var Media: TMediaPlayer

Obținerea de informații despre masă

Trebuie să utilizați proprietatea FieldDefs. În exemplul următor, lista câmpurilor și mărimea lor corespunzătoare sunt transmise componentei TMemo (aflată pe formular) numită Memo1:

Dacă aveți nevoie doar de nume de câmpuri (FieldNames), utilizați metoda TTable GetFieldNames:
GetIndexNames pentru a prelua nume de index:

Pentru a obține informații despre un anumit domeniu, trebuie să utilizați FieldDef.


Obținerea căii fizice la masă

Denumirea / calea fizică va fi inclusă în câmpul szPhyName al structurii DBDesc.

Valorile posibile returnate de funcția DBIGetDatbaseDesc sunt:

Următorul exemplu de cod arată cum puteți obține calea fizică pentru o componentă TTable care utilizează aliasul DBDemos:

Obțineți Descriptorul barei de activități

Folosim funcția FindWindow pentru a găsi mai întâi numele clasei ferestrei, apoi titlul acesteia. Dacă se găsește o fereastră, funcția va scoate mânerul.

Obținerea de informații despre TaskBar

Pentru a afișa informațiile, vom folosi componenta TStringGrid din fila Suplimentare.

În primul rând va trebui să postați

Articole similare