15 grudnia 2007

Blokada aplikacji przed zamknięciem [JAVA]

Przykład użycia:

private void formWindowClosing(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
int ZakApp = TCreateComponents.komunikat.KomunikatZapytanie("Czy napewno chcesz zakończyć applikację?", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (ZakApp==0){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

} else {
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
}


}

Przeciwdziałanie błędu LOCK TABLES w MYSQL

A oto przykład:

$ mysqldump -u user database -p --skip-opt > dump.sql

12 grudnia 2007

Kodowanie znaków dla MySQL JAVA

W jaki sposób można wstawić polskie znaki w bazie danych MySQL?
Można zrobić to w taki sposób że dodajemy jako parametr adresu połączenia bazy danych taką opcję:
"?characterEncoding=latin2"
Przykład:

jdbc:mysql://localhost:3306/baza?characterEncoding=latin2


i Mamy polskie znaki :)

23 listopada 2007

Odświeżanie JTable po wstawieniu rekordu do bazy danych[JAVA]

Poniżej znajduje się funkcja odświeżająca tabele po wstawieniu rekordu do bazy danych:

Implementacja zmiennych:

private DefaultTableModel nazwa_kolumny = new DefaultTableModel(){
public boolean isCellEditable(int row, int column) {
return false;
}
private TableColumn kolumna = new TableColumn();
private int i =0;
private String nKolumn[] = null;
private int ColumnCount;
private ResultSet records;

Funkcja odświeżająca rekord:

private void refreshJTable() {
int rows = nazwa_kolumny.getRowCount();
if(rows>0) {
for(int knt=rows-1;knt>=0;knt--) {
nazwa_kolumny.removeRow(knt);
}
}
}

Funkcja wstawiająca rekordy z tabeli i wykorzystujaca wyczyszczenie tabeli:

public void StartQuerySelect(String sql) {
refreshJTable();
TCreateComponents.queryB.selectSQL(sql);
records = TCreateComponents.queryB.getRecords();
try {
ResultSetMetaData rsmd = TCreateComponents.queryB.getRecords().getMetaData();
int ColumnCount = rsmd.getColumnCount();

while(records.next()) {
Object[] objects = new Object[ColumnCount];
for (int i=0;i objects[i]=records.getObject(i+1);
}
nazwa_kolumny.addRow(objects);

}


} catch(Exception ex){
ex.printStackTrace();
}

}

29 października 2007

Operacje na stringu[DELPHI]

procedure TForm1.Button1Click(Sender: TObject);
var
bufor: string;
begin
if self.CzyCyfraN(edit1.Text, 1) then begin
edit2.Text:=self.ObetnijKod(edit1.Text);
end
else
begin
end;
end;


function TForm1.CzyCyfraN(s: string; n: Integer): Boolean;
begin
if s[n] in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
then Result := True
else Result := False;
end;

function TForm1.CzyLancuchJestLiczba(s: string): Boolean;
begin
Result := False;
if StrToFloatDef(s, 0) <> 0
then Result := True;
if StrToFloatDef(s, 1) <> 1
then Result := True;
end;

function TForm1.ObetnijKod(Tekst: string): string;
begin
result:=copy(tekst,8,edit1.GetTextLen);
end;
Więcej na: http://lasica.hostdmk.net/delphi.html#B1

28 września 2007

Ikona aplikacji [JAVA]

Funkcja ustawiająca ikonę aplikacji:

private void ApplicationImage(String IconName) {
Image image = Toolkit.getDefaultToolkit().getImage("1.png");
this.setIconImage(image);
}

25 września 2007

Sprawdzenie listy procesów [JAVA]

Funkcja sprawdzająca listę procesów:

public static void ProcessList() {
Process p = null;
try {
p = new ProcessBuilder("tasklist").start();
InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException ex) {
ex.printStackTrace();
System.out.println(ex.getMessage());
}
}
W taki sam sposób można uruchomić inne programy zmieniając
p = new ProcessBuilder("tasklist").start();
na:
p = new ProcessBuilder("help").start();
Więcej szczegółów na tej stronie.

14 września 2007

Zbieranie danych statystycznych + konfiguracja firewalla w WINDOWS z pod linii komend

Informacje o konfiguracji i stanie Zapory systemu Windows można pobrać w wierszu polecenia za pomocą narzędzia Netsh.exe. To narzędzie dodaje obsługę zapory IPv4 do następującego kontekstu Netsh:
netsh firewall
Aby użyć tego kontekstu, wpisz polecenie netsh firewall w wierszu polecenia, a następnie użyj dodatkowych poleceń Netsh według potrzeby. Następujące polecenia są przydatne do zbierania informacji o stanie i konfiguracji zapory:
Netsh firewall show state
Netsh firewall show config

Porównując dane wyjściowe tych poleceń z danymi wyjściowymi polecenia netstat –ano, można określić programy, które mogą mieć otwarte porty nasłuchujące i które nie mają odpowiednich wyjątków w konfiguracji zapory. Obsługiwane polecenia dotyczące zbierania danych i konfiguracji wymieniono w następujących tabelach.

UWAGA: Ustawienia może modyfikować tylko administrator.

Zbieranie danych
PolecenieOpis
show allowedprogramWyświetla dozwolone programy.
show configWyświetla szczegółowe informacje o konfiguracji lokalnej.
show currentprofileWyświetla bieżący profil.
show icmpsettingWyświetla ustawienia ICMP.
show loggingWyświetla ustawienia rejestrowania.
show opmodeWyświetla tryb działania.
show portopeningWyświetla porty podlegające wyjątkowi.
show serviceWyświetla usługi.
show stateWyświetla bieżące informacje o stanie.
show notificationsWyświetla bieżące ustawienia powiadomień.

Konfiguracja
PolecenieOpis
add allowedprogramSłuży do dodawania wyjątku dla ruchu sieciowego przez określenie nazwy pliku programu.
set allowedprogramSłuży do modyfikowania ustawień istniejącego programu dozwolonego.
delete allowedprogramSłuży do usuwania istniejącego programu dozwolonego.
set icmpsettingSłuży do określania dozwolonego ruchu ICMP.
set loggingSłuży do określania opcji rejestrowania dla Zapory systemu Windows — albo globalnie, albo dla określonego połączenia (interfejsu).
set opmodeSłuży do określania trybu działania Zapory systemu Windows — albo globalnie, albo dla określonego połączenia (interfejsu).
add portopeningSłuży do dodawania wyjątku dla ruchu sieciowego przez określenie portu TCP lub UDP.
set portopeningSłuży do modyfikowania ustawień istniejącego otwartego portu TCP lub UDP.
delete portopeningSłuży do usuwania istniejącego otwartego portu TCP lub UDP.
set serviceSłuży do akceptowania lub odrzucania ruchu RPC i DCOM, udostępniania plików i drukarek oraz ruchu UPnP.
set notificationsSłuży do określania, czy użytkownik ma być powiadamiany, gdy programy próbują otworzyć porty.
resetPrzywraca domyślną konfigurację zapory. Działa tak samo, jak przycisk Przywróć domyślne w interfejsie Zapory systemu Windows.

Szczegółowy opis mozna znaleść w biuletynie na stronach Microsoft Windows: http://support.microsoft.com/kb/875357

03 września 2007

Ustawienia akcji Timera[JAVA]

Przykład klasy do ustawienia akcji timera:

class ClockListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
//tutaj wprowadza sie akcje i funkcje dla timera np ustawienie czasu
}
}


Uruchomienie Akcji:

javax.swing.Timer t = new javax.swing.Timer(1000, new ClockListener());
t.Start();

30 sierpnia 2007

Kodowanie ciągu stringa[JAVA]

Poniżej znajduje się listing klasy:

//klasa kodująca stringa
public static String codeString(String tekst,String haslo_hash,boolean flaga) {
char tmp_chr = '\1';
int byte_out;
int byte_pass;
int byte_in;
int len_pass=haslo_hash.length();
for(int i=0;i < tekst.length();i++) {
byte_in=ord(tekst.charAt(i));
byte_pass=ord(haslo_hash.charAt(i%len_pass));
if (flaga) {
byte_out=(byte_in+byte_pass)%256;
}else {
byte_out=(256+(byte_in-byte_pass))%256;
}
tmp_chr+=chr(byte_out);
}
String tmp_str = "//";
tmp_str=tmp_str.valueOf(tmp_chr);
return tmp_str;
}

//funkcja zwracająca wartość integer kodu ascii
private static int ord(char c) {
return (int)c;
}
//funkcja zwracająca wartość znakową funkcji
private static char chr(int byte_out) {
return ((char)byte_out);
}

Pobranie bieżącej daty[JAVA]

Funkcja ta zwraca datę po podaniu danego formatu który można znaleźć na: http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html

public static String now(String dateFormat) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
return sdf.format(cal.getTime());
}
Poniżej jest przedstawiona tabela z możliwym formatowaniem:

Letter Date or Time Component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day in week Text Tuesday; Tue
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800

Metoda HttpPOST[JAVA]

Zaprezentuję wykorzystanie metody POST na przykładzie przesłania SMS-a z bramki PLUS GSM:

try {
//poczatkowy adres polaczenia
URL url = new URL("http://www.text.plusgsm.pl/sms/sendsms.php");
URLConnection connection = url.openConnection();
connection.setUseCaches(false);
connection.setRequestProperty("User-Agent","TESTSMS_JAVA/1.0");
connection.setDoOutput(true);
PrintWriter out = new PrintWriter(connection.getOutputStream());
//parametry polaczenia out.print("tprefix=691&numer=6000&amp;odkogo=imie&dzien=2007-08-30&god%0D%0Az=07&min=55&tekst=dfdf");
out.close();

InputStream inp = connection.getInputStream();
for (int c = 0; c != -1; c = inp.read()) {
//sczytanie wyniku zrodla strony
arkusz=arkusz+(char)c;
//System.out.print((char)c);
}
// System.out.println(inp.toString());
System.out.println(arkusz.toLowerCase());
System.out.print("\n");
inp.close();

} catch (Exception e) {
System.out.println(e.toString());
}

10 sierpnia 2007

01 sierpnia 2007

Narzędzia Wiersza Poleceń do sprawdzenia zalogowania użytkownika

Poniższe polecenia należy wykonywać z wiersza poleceń: sprawdź użytkowników (narzędzie quser pokazuje aktywnych i rozłączonych użytkowników) oraz rozłącz (narzędzie tsdiscon rozłącza sesję – jest to zachowanie podobne do wyłączenia monitora, podczas gdy komputer pozostaje włączony. Opcja ta jest również dostępna z menu Start/Zamknij system. Aby wznowić sesję wystarczy ponownie zalogować się z tymi samymi danymi).

27 lipca 2007

Zmiana adresu na statyczny

@echo off
rem zmiana adresu ip
netsh interface ip set address name="nazwa_sieciowki" source=static addr=192.168.0.250 mask=255.255.255.0 gateway=192.168.0.2 1
rem zmaina adresu dns
netsh interface ip set dns name="nazwa_sieciowki" static addr=212.2.96.51 primary

Zamiana adresu IP na DHCP

@echo off
rem zmiana adresu ip na dhcp
netsh interface ip set address name="Nazwa_sieciowki" source=dhcp
rem zmiana dns na dhcp servera
netsh interface ip set dns name="Nazwa_sieciowki" source=dhcp

24 lipca 2007

Inny sposób zapisu do pliku[JAVA]

Istnieje również inny sposób zapisu do pliku taki jak:

RandomAccessFile save1;
save1 = new RandomAccessFile("test.txt","rw");
save1.writeBytes(line);


Zapis z koncem linii:
l = save1.length();
save1.seek(l);
RandomAccessFile save1;
save1 = new RandomAccessFile("test.txt","rw");
save1.writeBytes(line);

21 lipca 2007

Wyświetlanie obrazka w jLabel, jButton[JAVA]

w jaki sposób wyświetlić obrazek na jButtonie?
Oto przykład:
ImageIcon img = new ImageIcon("Grafika\\test.jpg");
jLabel1.setIcon(img);

20 lipca 2007

Jak wyświetlić jednorazowo daną formę [JAVA]

W jaki sposób można wyświetlić daną formę tworzoną dynamicznie przy naciśnięciu przycisku by nie tworzyło form więcej?
A oto przykład:
LokatorzyForm LokF = new LokatorzyForm();
if (!LokatorzyFormState) {
jDesktopPane1.add(LokF);
LokF.show();
LokatorzyFormState = true;
} else {
LokF.show();
}
jDesktopPane1.getDesktopManager().maximizeFrame(LokF);

19 lipca 2007

jInternalFrame maksymalizacja [JAVA]

A oto jak zmaksymalizować okno dla MDI w Javie

LokatorzyForm LokF = new LokatorzyForm();
jDesktopPane1.getDesktopManager().maximizeFrame(LokF);

09 lipca 2007

Kodowanie stringa [PHP]

function code($tekst,$password,$flag_code) {

$len_pass = strlen($password); // dlugosc klucza


for ($i = 0; $i < strlen($tekst); $i++) { //petla obiegajaca kodowany text

$byte_in = ord($tekst[$i]); //pobranie kolejnych liter textu


$byte_pass = ord($password[$i % $len_pass]); //pobranie kolejnej litert klucza


// funkcja kodujaca / dekodujaca

if ($flag_code == 1) { //sprawdzenie flagi (1 ma być kodowanie: 2 dekodowanie)

$byte_out = ($byte_in + $byte_pass) % 256;
//zakodowanie bajtu tekstu bajtem klucza i podzielenie tego modulo przez 256


} else {

$byte_out = (256 + ($byte_in - $byte_pass)) % 256;
//rozkodowanie bajtu tekstu zakodowanego bajtem klucza...

}

$tmp_str .= chr($byte_out);
//doklejenie roz/zakodowanego bajtu do zmiennej tymczasowej
//tmp_str (z zamianą zmiennej byte na char)


}

return($tmp_str); //wyprowadzenie rezultatu funkcji


}

Funkcja do usuwania tagów HTML

KOD:

function DelHTML(s: string): string; { Usuwanie tagów HTML }

var

i: Word;

tag: Shortint;

begin

Result:='';

tag := 0;

for i := 1 to length(s) do

begin

if s[i] = '<' then Inc(tag); if tag = 0 then Result := Result + s[i]; if s[i] = '>' then Dec(tag);

end;

end;

Kodowanie ciągu znaków [DELPHI]

Funkcja:
function koduj(tekst: string; password: string; flag_code: boolean):string; // funkcja z trzema parametrami zwracająca string
var i, len_pass: integer;
tmp_str: string;
byte_in, byte_out, byte_pass: byte; //deklaracja zmiennych
begin
len_pass := Length(password); //długość klucza
for i:=1 to Length(tekst) do //pętla "obiegająca" kodowany tekst
begin
byte_in := Ord(tekst[i]); //pobranie kolejnej litery kodowanego tekstu i zamiana na bajt
byte_pass := Ord(password[i mod len_pass]); //pobranie kolejnej litery klucza i zamiana na bajt
if flag_code then //sprawdzenie flagi (czy ma być kodowanie czy dekodowanie)
byte_out := (byte_in + byte_pass) mod 256 //zakodowanie bajtu tekstu bajtem klucza i podzielenie tego modulo przez 256
else
byte_out := (256 + (byte_in - byte_pass)) mod 256; //rozkodowanie bajtu tekstu zakodowanego bajtem klucza...
tmp_str:= tmp_str + Chr(byte_out); //doklejenie roz/zakodowanego bajtu do zmiennej tymczasowej tmp_str (z zamianą zmiennej byte na char)
end;
result := tmp_str; //wyprowadzenie rezultatu funkcji
end;

Użycie funkcji:

Dekoduj:

edit1.Text:=koduj(edit2.Text,'haslo_do_szyfrowania',false);


Koduj:

edit2.Text:=koduj(edit1.Text,'haslo_do_szyfrowania',true);

04 lipca 2007

Zapis do pliku PDF[DELPHI]

Jeśli chodzi o raport w rave reports to można to zrobić tak:

1.Umieść na formularzu komponenty RvProject1, RvSystem1, RvRenderPDF1, przycisk (Button).
2. Zmień właściwość Caption przycisku na:
Zapisz raport jako PDF
3. Ustaw właściwość Engine komponentu RvProject1 na RvSystem1.
4. Ustaw właściwość ProjectFile komponentu RvProject1 na plik raportu Raport.rav. (trzeba sobie wcześniej zrobic raport np w rave vusual designerze)
5. Oprogramuj zdarzenie onClick dla przycisku zapisującego raport do pliku *.pdf.

procedure TForm1.Button1Click(Sender: TObject);
begin
//przeznaczeniem raportu ma być plik
RvSystem1.DefaultDest := rdFile;
RvSystem1.DoNativeOutput := false;
//obiektem renderującym będzie komponent RvRenderPDF1
RvSystem1.RenderObject := RvRenderPDF1;
//plik zostanie zapisany pod nazwą plikpdf.pdf w katalogu projektu
RvSystem1.OutputFileName := 'plikpdf.pdf';
RvSystem1.SystemSetups := RvSystem1.SystemSetups - [ssAllowSetup];
//wywołanie metody Execute zapisze raport do pliku plikpdf.pdf
RvProject1.Execute;
end;

Zabicie procesu

Zabicie procesu

kod C#
Process[] ps = Process.GetProcesses();
foreach (Process p in ps)
if (p.StartInfo.FileName == znana_sciezka) {
//procedury wykonania
}

Jak pobrać zmienną systemową?

A w taki oto sposób:

IDictionary env = Environment.GetEnvironmentVariables();


A użytkownika:

String uname = Environment.UserName;