23. juli 2003 - 15:17Der er
52 kommentarer og 1 løsning
Net send i Delphi
Jeg er i gang med, at lave et lille program, som via MSDOS kommandonen [Net send] sender en besked til anden (eller flere) bruger på netværket!
Ovenstående er såmen også nemt nok, men vil gerne kunne skrive afsender på også! Jeg ved dette kan lade sig gøre, da jeg har funder flere programmer på nettet, som gør dette! Men hvordan klarer jeg den lige i mit eget program?
Du behøver ikke give mig Delphi koden, hvis alt hvad der skal til er en ekstra kommando i DOSPROMT eller lignende!
dem der har programmer der kan det bruger ikke net funktionen fra dos .. de har lavet en funktion der arbejder efter microsofts standard, men en lidt hacket udgave .. det hjælper dig dog ikke videre at jeg skriver det .. men så behøver du i hvert fald ikke arbejde med net send funktionen da den ikke opfylder dine krav :)
Hmm nej det hjælper mig ikke rigtigt videre, men det gør da, at jeg kan stoppe med at løbe hovedet mod en mur, som på intet tidspunkt, at flyttet sig, så meget som en mm. :-)
Jamen så laver jeg da lidt om på ovenstående spørgsmål. Er der en der kender en kode til Delphi, som sender en netværksbesked?? (hvor man også kan tilføje en afsender)'
Tja, har siddet og kigget lidt på koden, som ligger gemt i ovenstående ZIP fil, kan forstå det meste af det, men ikke det hele. Det er for så vidt også ok, hvis programmet kunne kompileres, men det kan det ikke, den siger den mangler en dcu fil.
Så en rettelse til ovenstående eller noget nyt ville være perfekt! :-)
jeg hader den DsgnIntf.dcu .. kan aldrig finde den skod fil :) men det er selvfølgelig kun i Delphi 7 det problem er i, da de har lavet et nyt system :)
Jeg har testet det hos mig, og der virker det. Hvis den kommer ud og siger at den ikke kan finde DesignEditors.dcu eller DesignIntf.dcu så er det fordi du ikke har sat din søge sti op !
Min Search path er sat op, som delphi selv gør det i sin Installation, endvidere har jeg tilføjet den linie, som du tidligere bad mig om! Er der andet jeg skal tilføjge i denne???
Ok nu er jeg meget forvirret. Har lige været inde i stien C:\Programmer\Borland\Delphi7\Source\ToolsAPI og her har jeg faktisk også dem begge liggende. Så nu fatter jeg slet ikke noget af hvad der sker!
1) Åben d7 2) I menuen vælg Tools->Enviroment Options Under fanen Library vælges "library path" 3) klik på knappen med de tre prikke ude til højere. 4) I edit feltet under listen med bibloteker skrives C:\Program Files\Borland\Delphi7\Source\ToolsAPI\ 5) Tryk "Add" 6) Tryk "OK"
Det har jeg faktisk lige gjort selv... og ja det virker, men nu brokker den sige over noget andet, som jeg lige er ved at finde ud af! (den kommer med en ny DCU fil, som den ikke kan finde)
Godt så nu har jeg prøvet at finde den nye dcu fil, som den ikke kan finde. Jeg har gennemsøgt hele min HDD men uden held!
Det drejer sig denne gang om Proxies.dcu
Så lige et spørgsmål mere.
Når nu Delphi ikke kunne finde ud af {$Delphi}\Source\ToolsAPI\ men i stedet skulle have c:\programmer.......ect. bør jeg så ændre de andre linier, som ligger i min search path???
Ja jeg må jo nok indrømme, at jeg er lidt besværlig! :-) Hvilket jeg undskylder!
Nå men jeg har nu været inde og kigge på mine indstilline og fandt ud af, at der ikke var et flueben i "Build with runtime package", da du skrev, at det var en runtime package, satte jeg et flueben her, men nu fortæller delphi mig, at den ikke kan finde div. package. Jeg har så prøvet, at sleltte den enkelte package, som den siger, den ikke kan finde, men så kommer den bare med den næste i rækken???
Ja men så må du jo selv bladere lokal-nettet igennem finde ud af hvilke computerer der hvilke brugere der er logget ind på dem. Se det er en helt anden og noget stører historie.
Det fandt jeg også ud af da jeg satte mig og kiggede koden igennem. Selve Netsend virker også, jeg har lavet lidt GUI og den sender beskeder over netværket, som den skal. Men som jeg lige har skrevet, så sender den ikke noget brugernavn med, den sender kun computernavn!
I de functioner hvor den finder copmutername og username, har jeg været inde og lave lidt om, så de i steder retunere et array of char, med mit navn i. Men alligvel bliver det computernavnet der bliver sendt!
ja selv følgelig .. det klarer windows for dig ... Programmer skal blot vide hvilken maskine type den er på, for at vide hvordan den skal tage kontakt med OS (det finder den selv ud af), og resten er op til windows ....
Jeg har været inde og sætte domain til det korekte, men den sender alligevel ikke beskeden. Da jeg så prøvede at fjerne SendFromName := 'Hest & Ulv'; Så virker det fint igen, dog uden at sende username med!
borrisholt >> Jeg takker mange gange for din tolmodighed, men jeg giver dig sgu snart bare de 30 point (som er velfortjente) og så glemmer jeg bare alt om, at sende username med. :o(
Jeg har nu fundet løsningen på ovenstående. Så snart SendFromName indeholder et mellemrum kan den ikke sende beskeden, men hvis der derimod blot står Oergaard, sender den det, som den skal!
Dvs. det kan godt bruges, men skulle du vide hvordan jeg kan sende beskeden således at den også kan indeholde et mellemrum, ville det være at foretrække! :-)
Okay der tog jeg så munden for fuld, for hvad jeg lige har skrevet passe ikke helt! Det virker kun, hvis SendFromName er det sammen som username på pc’en!
Hvis det ikke kan lade sig gøre på anden måde, kan man så ikke hfå programmet til at hente brugernavnet automatisk??
Ja det har du helt ret i, men der vil den heller ikke sende det!
Nu er det et program jeg vil have liggende ude på mit arbejde, så jeg kan sende beskeder til mine kollegaer. Kan det være opsætningen af netværket der gør, at den ikke kan sende det ordenligt?
Næææ .. Du sender til en Computer navn. Det kan vi ikke lave om på. Men du kan da skrive hvad du vil i afsender felter. Min computer hedder Jens. Og på den virker eksemplet da.
Hvis du sender inden for det domæne du tilhører er der ingen grund til at sætte domæne navn på.
Jeg sidder ved et Windows 2000 netværk, hvor mit logon til maskinen er MOH, hvis jeg i SendFromName skriver andet end MOH virker dette ikke. Hvis jeg så går over på min kollegas maskine og køre samme program, virker det ikke. Hans initialer er TSB. Hvis jeg så går ind i koden og laver SendFromName om til TSB, køre det fint på hans maskine, men kan nu ikke køres på min PC.
Jeg kan fint og nemt sende til alle maskinerne på netværket, den del virker som den skal. Men det er selv afsender funktionen, der ikke virker, som jeg ønsker!
Brug den her, den virker også hvis man ikke er logget ind som noget (Win9x): Function GetCurrentUserName : String; var Size : Cardinal; begin Size := MAX_PATH; SetLength(Result, Size); if Windows.GetUserName(PChar(Result),Size) then SetLength(Result, Pred(Pos(#0,Result))) else Result := ''; end;
Phuha nu virker det langt om længe! Jeg vil sige 1000 tak for hjælpen! Nu mangler jeg bare lige at finpudse det lidt, men det har jeg ingen problemer med! :-)
Du får dine velfortjente 30 point, har dårlig samvittighed over, at jeg ikke har udlovet nogle flere point, når det nu har taget den tid det har!
Hvorfor at den kun kan sende logon-navnet forstår jeg ikke, men kan ikke se andre muligheder end opsætningen af netværket her ude! Det er heller ikke så vigtigt, da vi kun bruger vores initialer her ude!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.