nbtstat -n
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
P206 yazdı:Arama yaparak bu konuyla ilgili sonuçlara ulaşabilirsin.
viewtopic.php?t=3748&highlight=createprocess
arama yaptım ama kodlar tam çalışmıyor. şöyle ki:
kodunu yazdım. programı çalıştırıp butona 1 kere tıklayınca memo1 boş, ancak 2. kez tıkladığımda .txt dosyasının içeriğini memo'da görebiliyorum. bu işlemi 1 kez tıklamayla neden yapamıyorum? nasıl yapabilirim?
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
StartupInfo : TStartupInfo;
ProcessInformation : TProcessInformation;
begin
FillChar(StartupInfo, sizeOf(TStartupInfo), #0);
FillChar(ProcessInformation, sizeOf(TProcessInformation), #0);
StartupInfo.cb:=sizeof(Tstartupinfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=SW_hide;
CreateProcess(nil, PChar('command.com /c net session > c:\baglan.txt '),
nil, nil, False, 0, nil, nil,
StartupInfo, ProcessInformation);
memo1.Lines.LoadFromFile('c:\baglan.txt');
end;
sorumla ilgili ulaştığım sonucu yazıyorum.
istediğim şeyi aşağıdaki kodu yazarak elde ettim.
karşılaştığım başka sorun olursa yazarım. siteyi hayata geçirenlere ve yardımlarınızdan dolayı herkese çok teşekkür ederim. Allah razı olsun.
istediğim şeyi aşağıdaki kodu yazarak elde ettim.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
StartupInfo : TStartupInfo;
ProcessInformation : TProcessInformation;
begin
FillChar(StartupInfo, sizeOf(TStartupInfo), #0);
FillChar(ProcessInformation, sizeOf(TProcessInformation), #0);
StartupInfo.cb:=sizeof(Tstartupinfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=SW_hide;
CreateProcess(nil, PChar('command.com /c net session > c:\baglan.txt '),
nil, nil, False, 0, nil, nil,
StartupInfo, ProcessInformation);
sleep(1000);
memo1.Lines.LoadFromFile('c:\baglan.txt');
end;
Selamlar
Orada Sleep komutu yerine
Dersen program işlemi bitene kadar bekleyip sonra alta geçecektir.
Yani Kodu şu şekilde yaparsan daha garanti çalışır.Belki sana 2 Sn. yetmeyebilir. INFINITE (sonsuz) yerine Milisaniye cinsinden de verebilirsin. Ben şubeler arası Frame-relay hatlarını pinglemek için bu şekilde kullanmıştım.
Kolay Gelsin.
Orada Sleep komutu yerine
Kod: Tümünü seç
WaitForSingleObject (ProcessInformation.hProcess,infinite);
Yani Kodu şu şekilde yaparsan daha garanti çalışır.Belki sana 2 Sn. yetmeyebilir. INFINITE (sonsuz) yerine Milisaniye cinsinden de verebilirsin. Ben şubeler arası Frame-relay hatlarını pinglemek için bu şekilde kullanmıştım.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
StartupInfo : TStartupInfo;
ProcessInformation : TProcessInformation;
begin
FillChar(StartupInfo, sizeOf(TStartupInfo), #0);
FillChar(ProcessInformation, sizeOf(TProcessInformation), #0);
StartupInfo.cb:=sizeof(Tstartupinfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=SW_hide;
CreateProcess(nil, PChar('command.com /c net session > c:\baglan.txt '),
nil, nil, False, 0, nil, nil,
StartupInfo, ProcessInformation);
WaitForSingleObject (ProcessInformation.hProcess,infinite);
memo1.Lines.LoadFromFile('c:\baglan.txt');
end;
p206 ek bilgin için teşekkürler.
ancak bir sorunum daha var. eğer herhangi bir bilgisayar bağlanmadıysa sorun yok, kimsenin bağlanmadığını gösteriyor. ama aksi durumda programı çalıştırdığımda şöyle bir hata alıyorum ve programı çalıştıramıyorum:
yardımlarınızı bekliyorum. kolay gelsin....
ancak bir sorunum daha var. eğer herhangi bir bilgisayar bağlanmadıysa sorun yok, kimsenin bağlanmadığını gösteriyor. ama aksi durumda programı çalıştırdığımda şöyle bir hata alıyorum ve programı çalıştıramıyorum:
Kod: Tümünü seç
[Fatal Error] Could not create output file 'C:\ilknur\kontrol\net.exe'