Ideer til et program

Tags:    delphi

Hej alle sammen.
Er der noge der har en ide til et program jeg kan lave, jeg er meget blank på forhånd, så jeg kan ikke rigtig komme med noget jeg lidt kan tænke mig.

Mvh.
Kasper Nielsen



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvad med et lille spil! Det er altid udfordrende og interessant at lave :)



Har en ide.
Du kunne lave et spy program.

De kunne gøres sådan:

Først kunne vi sætte formens left til omkring 10000 for kan du ikke se formen. Udover det kan du bruge nogle funtioner der gør at du ikke kan se at programmet er tænt.

Derefter indsætte en image og så:
Så kan du lave en timer med dette som kode (lav bare lidt om på koderne):

function GetScreenShot: TBitmap;
var
Desktop: HDC;
begin
Result := TBitmap.Create;
Desktop := GetDC(0);
try
try
Result.PixelFormat := pf32bit;
Result.Width := Screen.Width;
Result.Height := Screen.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
Result.Modified := True;
finally
ReleaseDC(0, Desktop);
end;
except
Result.Free;
Result := nil;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
//dette skal være din timer.
begin
Image1.Picture.Bitmap := GetScreenShot;
end;


Du kunne tilføjge en kode der nu gemmer imagets i en fil som kunne være tidspunktet og som sagt gemme den i din mappe.

For at dit program vær eneste gang skal starte af sig selv kan du bruge denne kode, som gor ind i regedit og søre for at det vil starte automatisk. Men husk at du kan fjerne det igen fra KØR i start menuen og skriv msconfig og under fanepladet Start:



uses
Registry;

procedure SetAutoStart(AppName, AppTitle: string; bRegister: Boolean);
const
RegKey = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';
// or: RegKey = '\\Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce';
var
Registry: TRegistry;
begin
Registry := TRegistry.Create;
try
Registry.RootKey := HKEY_LOCAL_MACHINE;
if Registry.OpenKey(RegKey, False) then
begin
if bRegister = False then
Registry.DeleteValue(AppTitle)
else
Registry.WriteString(AppTitle, AppName);
end;
finally
Registry.Free;
end;
end;

// Example:

procedure TForm1.Button1Click(Sender: TObject);
begin
// 1.Parameter: Path to your Exe-File
// 2. Parameter: the Title of your Application
// 3. Set (true) or Unset (false) Autorun
SetAutoStart(ParamStr(0), 'Title of your Application', True);
end;













Det er da en ide. Du kunne også lave et program der kan holde styr på din pc.
Den kunne eks.:

Tømme papirskuven med denne kode:




procedure EmptyRecycleBin;
const
SHERB_NOCONFIRMATION = $00000001;
SHERB_NOPROGRESSUI = $00000002;
SHERB_NOSOUND = $00000004;
type
TSHEmptyRecycleBin = function(Wnd: HWND;
pszRootPath: PChar;
dwFlags: DWORD): HRESULT; stdcall;
var
SHEmptyRecycleBin: TSHEmptyRecycleBin;
LibHandle: THandle;
begin { EmptyRecycleBin }
LibHandle := LoadLibrary(PChar('Shell32.dll'));
if LibHandle <> 0 then @SHEmptyRecycleBin :=
GetProcAddress(LibHandle, 'SHEmptyRecycleBinA')
else
begin
MessageDlg('Failed to load Shell32.dll.', mtError, [mbOK], 0);
Exit;
end;

if @SHEmptyRecycleBin <> nil then
SHEmptyRecycleBin(Application.Handle,
nil,
SHERB_NOCONFIRMATION or SHERB_NOPROGRESSUI or SHERB_NOSOUND);
FreeLibrary(LibHandle); @SHEmptyRecycleBin := nil;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
EmptyRecycleBin;
end;

-----------------
Og en der åbner startmenuen med denne:


SendMessage(Form1.Handle, WM_SYSCOMMAND, SC_TASKLIST, 0);

------------------
En der fortæller hvad din pc har. Kunne eks. være hvad dinne dreve har af plads:

var
msg, nl : String;
total, free : int64;
x : Integer;
begin
nl := #13#10;
for x := 1 to 27 do //brug 3-27, hvis drev A og B (diskettedrev) ikke skal med
begin
total := DiskSize(x);
free := DiskFree(x);
if (total <> -1) and (free <> -1) then
begin
msg := msg + 'Disk: ' + chr(64 + x) + ': ' +
'Free: ' + inttostr(round(free / 1024 / 1000)) + ' MB - Total: ' +
inttostr(round(total / 1024 / 1000)) + ' MB' + nl;
end;
end;
Label1.Caption := msg;
end;

-------------------------
Og en med MHZ:



function GetCPUSpeed: Double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);

SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);

Sleep(10);
asm
dw 310Fh
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;

SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);

Result := TimerLo / (1000 * DelayTime);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Format('Your CPU speed: %f MHz', [GetCPUSpeed]));
end;

---------------------
En der åbner Papirskurven:

uses
ActiveX, ShlObj, ShellApi;

procedure FreePidl(pidl: PItemIDList);
var
allocator: IMalloc;
begin
if Succeeded(shlobj.SHGetMalloc(allocator)) then
begin
allocator.Free(pidl);
{$IFDEF VER90}
allocator.Release;
{$ENDIF}
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
exInfo: TShellExecuteInfo;
begin
// initialize all fields to 0
FillChar(exInfo, SizeOf(exInfo), 0);
with exInfo do
begin
cbSize := SizeOf(exInfo); // required!
fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_IDLIST;
Wnd := Handle;
nShow := SW_SHOWNORMAL;
lpVerb := 'open';
ShGetSpecialFolderLocation(Handle, CSIDL_BITBUCKET, PItemIDLIst(lpIDList));
end;
ShellExecuteEx(@exInfo);
FreePIDL(exinfo.lpIDList);
end;


---------------------------
En funktion der rykker rundt på hvor startmenu knappen er.
Pas på denne funktion.
Den får den til at gå lidt til side:

MoveWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil),
300, 0, 80, 22, true);

Og tilbage (er kun et gæt):

MoveWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil),
0, 0, 59, 22, true);

---------------------------
En der kan finde ud af hvor lang tid pc'en har kørt:

var
starttime: cardinal;
seconds: cardinal;
hours: cardinal;
minutes: cardinal;
remseconds: cardinal;
begin
starttime :=GetTickcount();
seconds:= starttime div 1000;
hours:= seconds div 3600;
minutes:= (seconds - (hours * 3600)) div 60;
remseconds:= (seconds - ((minutes * 60) + (hours * 3600)));
Edit1.text:= inttostr(hours) + ':' + inttostr(minutes) + '.' + inttostr(remseconds);
end;












Det skal laves som en toolbar som kunne ligge i venstre hjørne og kan hjælpe dig.
Brug måske Borderstyle: NONE.



------------------------------------------------------------------------

Eller et drille program der driller pc'en. Nærmest en lille sjov virus:

------------
Rykker rundt på start emnuen, står også oven over:

MoveWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil),
300, 0, 80, 22, true);

Og tilbage (er kun et gæt):

MoveWindow(FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil),
0, 0, 59, 22, true);
----------------------------------
Får cursoren til at komme et tilfældigt sted på skærmen:

Randomize;
SetCursorPos(Random(Screen.Width), Random(Screen.Height));

--------------------
Åbner og lukke cd-rom drevene:

Uses
MMSystem

Åbner cd-drevet
mciSendString('Set cdaudio door open wait', nil, 0, 0);
Lukker cd-drevet
mciSendString('Set cdaudio door closed wait', nil, 0, 0);










Det var da en masse ide'r. Nogen af dem skal jeg nemlig igang med. (Når jeg får tid). Jeg håber du kan bruge det.



Det er sådan et svar skal se ud ikke sandt?


Fryd!
Man skal jo hjælpe. Og husk, alt det jeg laver er ikke for up'snes skyld. Men jeg gør det for jeres. For at hjælpe. Jeg ville ønske at folk ville finde ud af hvad up systemet handler om.
Man betaler for arbejde. Da dette har taget ca. 15 at finde, burde en pris i up være ca. 10 up (1 up per. 2 min.)
Men når folk syns det er for billigt at finde en kode frem, som jeg nogen gange har opdaget for 2 up. Syns de det er for lidt. Vis man har koden i et dokument (som alle burde havde), så kan det kun tage max 3 min. Og så er 2 up nok.
Det forstår ingen her på udvikleren!!!
Vis det er noget der tar tid, skal det selvfølgelig betales ordenligt.




Nå, Nu stopper jeg. Håber du kan bruge det. For ellers har det været spild af tid.

:-)


---------------------------Theis F. Hinz (Shafh)-----
----------------------------Theisf@stofanet.dk------


I Fight For The FUTUR, ElLEr SåDaN NoGEt...............

[Redigeret d. 22/03-04 22:04:55 af Theis]

[Redigeret d. 22/03-04 22:05:57 af Theis]



Hvad med et program der holder styr på alle dine kode stumper. Det vil sige at når du har en stump kode du regner med at kunne bruge senere indsætter du den i dit program og den holder styr på det.

Hvad med en screensaver

Hvad med en feedster (en program der kan læse RSS feeds), man giver det en addresse på internettet der er en RSS feed og så viser den nyheder fra denne side. Se fx. SharpReader for et eksempel.

Hvad med en generel editor med syntax highlightning, man giver editoren en fil med de ord der skal highlightes og så bygger editoren selv de farvekoder der skal til, kan eventuelt integreres med næste ide.

En LaTeX editor, det vil sige en editor i hvilken det er muligt at skrive LaTeX i med syntax highlightning samt kompilere og priviewe og eksportere i forskellige formater.

Hvad med et lille program der eventuelt ligger som en service og lytter på tastaturet og på musen, den måler hvor mange meter din mus kører i forhold til hvor stor din skærm er, samtidig registrerer den alle dine tastetryk og bagefter kan man se nogle grafer for hvilke taster man benytter mest og så videre.

Hvad med en to-do liste hvor det er muligt at lave to-do items med under items (lidt som delphis to do list bare bedre).



(¯`·._.·[Brian Hvarregaard]·._.·´¯)



Ja, måske, men jeg har ikke noget forstand på spilprogramering.

Mvh.
Kasper Nielsen



Hej alle sammen.
Er der noge der har en ide til et program jeg kan lave, jeg er meget blank på forhånd, så jeg kan ikke rigtig komme med noget jeg lidt kan tænke mig.

Mvh.
Kasper Nielsen


Du kan jo meget simpelt lave en Password Keeper, som gemmer kodeord. Der findes mange som glemmer deres kodeord på forskellige websites, og andre steder.

Bare et lille forslag / kommentar.

Med venlig hilsen
Armen L.A.
EvoxSoft



Hey.
Her kom der nogle gode forslag, tror jeg bygger et program der kan huske kodestumper men også password osv. tak for ideerne :)

Mvh.
Kasper Nielsen



t