Den 06-01-04 16:39 skrev Rune Jensen følgende:
-----------------------------------------------------------------------------
[1.)
Hvordan kan jeg åbne et program med en tilfældig string, jeg har en kode til at lukke et andet program op med, men jeg kan ikke rigtigt finde ud at hvordan jeg skal, stien til programmet ligger i en ini fil som ser således ud?
[Programmer]
Battlefield=c:\\spil\\battlefield\\bf1964.exe
Test=c:\\spil\\hej\\hfgh964.exe
]
For at finde ud af hvordan du sætter en ini fil ind i en string synes jeg du skal læse den første af de 2 artikler her på udvikleren om Ini Filer. HVis du ikke kan finde ud af det derfra siger du bare lige til.
Når du har loadet Ini filen ind i en string er det bar at skrive:
shellExecute(Handle, 'open', pchar(her skriver du navnet på din string), '', nil, SW_SHOWNORMAL);
[2.)
Hvordan kan jeg lave sådan at et program automatisk starter når windows starter, jeg vil gerne have den til at starte som et lille ikon nede på proceslinien, det ikon skal man så kunne højre klikke på og så skal der poppe en popUp menu op.?]
For at få programmet til at starte hver gang com'en starter er du nød til at lave registry key. Det kan gøres med følgende kode:
Her er en hele unit'en for det du ønsker, Der skal tilføjes 2 knapper og begge deres onClick events skal bruges + formens onShow
Kodeeksempel
unit Unit1;
interface
uses
//Her er der ændret
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
//Registreringsdatabaseobjektet
Reg: TRegistry;
public
end;
var
Form1: TForm1;
const
//En konstant der indeholder den nøgle vi skal frem til
RegKey = 'Software\\Microsoft\\Windows\\CurrentVersion\\Run';
implementation
procedure TForm1.FormDestroy(Sender: TObject);
begin
Reg.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//Her er det notepad der vil starte næste gang
//NB! Første parameter angiver værdiens navn, det
//skal være unikt for ellers vil andre programmer
//jo overskrive det.
//Anden parameter skal være komplet(undtagen notepad eller paint eller sån noget)
Reg.WriteString('Navnet på dit program', 'notepad.exe');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//Her sletter vi værdien(hvis den eksisterer)
if Reg.ValueExists('Detteskalvaereunikt') then
Reg.DeleteValue('Detteskalvaereunikt');
end;
procedure TForm1.FormShow(Sender: TObject);
begin
//Her opretter vi registry objektet
//for det hele er i registreringsdatabasen
Reg := TRegistry.Create;
//Hvis programmet skal starte hver gang
//ligemeget hvem der logger på skal
//Rootkey := HKEY_LOCAL_MACHINE
//istedet for HKEY_CURRENT_USER
Reg.RootKey := HKEY_CURRENT_USER;
//Vi åbner nøglen hvori det er, at
//windows leder efter programmer
//der skal startes op
Reg.OpenKey(RegKey, false);
end;
end.
[4.)
Hvordan kan man låse en form så man ikke selv kan justere størelsen, og hvordan kan man lave den menu om der står hvad ens forms caption står til?]
Du kan låse formen ved enten i object inspectoren sætte dens autosize til true eller sætte borderstyle til single.
Mvh.
Rune Jensen
[Redigeret d. 06/01-04 16:40:22 af Rune Jensen]-----------------------------------------------------------------------------
Hej.
Jeg har lige et par enkle spørgsmål til din kode, i spørgsmål 1, har jeg denne kode, men det jeg ikke kan finde ud af er kun at læse det efter = tegnet i ini filen.
spørgsmål 2, kan man ikke lave dette uden knapper hvis ja hvordan?
Mvh.
Kasper Nielsen