Ana Menü
· Ana Sayfa
· Dosyalar
· Dökümanlar
· Forum
· Günün Resmi
· Haber Arşivi
· WWW Linkleri
· Üye Listesi

     Forumlar

 strncpy ve strncpy_s
 Konu adi : Borland c++ Builder ile Amiral Batti
 Rady10 - YerliOyun
 Kabusta Kaybolmak
 Konsol da programı bekletmek
 Oyun programlama icin hangi programlama dilli ?
 flash! şanlıurfa bilgisayar oyununda(no rapid)
 Sevgilim Olur musun?
 Directx'e başlamak isteyenler bi bakın
 PSP programlama
 Flash tan php
 Bilgisyr oyunu yapmam için üniverstde hangi bölüme girmeliym
 www.arshiv.gen.ms
 Cimg.h ilgilenenler icin
 müttefik oyunu

Konu Disi
 Emraah
 Yeni sitemiz açıldı
 Kalp krizi durumunda ne yapılmalı?
 Oyun sektöründe hangi görevde çalışmak isterdiniz?
 Takım arkadaşı sorunu
 msn de renklı nıck
 pc hata veriyor ! YARDIM!!
 Gülmek isteyenler Buraya
 İnanılmaz hl 2 modu görüntüsü
 Computer Languages History

[ Forumlara Git ]


oyunyapimi.org: Forums

www.oyunyapimi.org :: Başlığı Görüntüle - ExitWindowsEx() Calismiyo!
 SSSSSS   AramaArama   Kullanıcı GruplarıKullanıcı Grupları   ProfilProfil   LoginLogin 

ExitWindowsEx() Calismiyo!

 
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar
Önceki başlık :: Sonraki başlık  
Yazar Mesaj
AhmedHan



Kayıt: Jun 01, 2005
Mesajlar: 7

MesajTarih: Tue Sep 27, 2005 2:27 pm    Mesaj konusu: ExitWindowsEx() Calismiyo! Alıntıyla Cevap Ver

Acizane program kodum :
Kod:
#define _WIN32_IE      0x0601
#define _WIN32_WINNT   0x0501
#include <windows.h>
#include <shellapi.h>   //for system tray and balloon tool-tips
#include <stdlib.h>      //for atoi() and _itoa()
#include <string.h>

HWND hbSetTimer, hbReset;
HWND hsT, hsHM, hsMS;
HWND heH, heM,  heS;
HWND hbShutdown, hbRestart, hbLogOff, hbForce;
HWND hWnd;

const UINT NID_ICOID = 500; //Randomly choosen
const UINT NID_CBMSG = 600; //Randomly choosen
NOTIFYICONDATA   nid;

BOOLEAN bShutdown=FALSE, bRestart=FALSE, bForce=FALSE;
BOOLEAN bAutoRun = FALSE;
char cWindowState;
DWORD dwEditStyle;
INT  iSecond, iMinute, iHour;
char szHour[3]="00", szMinute[3]="00", szSecond[3]="00";
UINT_PTR   IDT_TIMER;

LONG Height = 125;
LONG Width = 225;
char szClassName[] = "WindowsApp";

LRESULT   CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
VOID   CALLBACK TimerProcedure   (HWND, UINT, UINT,   DWORD);

int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
   if (strlen(lpszArgument) == 9)
   {
      szHour[0]      = lpszArgument[3];
      szHour[1]      = lpszArgument[4];
      szMinute[0]      = lpszArgument[5];
      szMinute[1]      = lpszArgument[6];
      szSecond[0]      = lpszArgument[7];
      szSecond[1]      = lpszArgument[8];
      bAutoRun      = TRUE;
   }
   
    MSG messages;
    IDT_TIMER=100;   //A randomly choosen number. Actually I don't know how to use timers :)
    dwEditStyle = (DWORD) (GWL_EXSTYLE, WS_VISIBLE | WS_CHILD | ES_LEFT | ES_NUMBER | WS_TABSTOP);
   
    WNDCLASSEX WindowClass;
   WindowClass.cbSize         = sizeof (WNDCLASSEX);
   WindowClass.style         = CS_DBLCLKS;   
   WindowClass.lpfnWndProc      = WindowProcedure;
   WindowClass.cbClsExtra      = 0;
   WindowClass.cbWndExtra      = 0;
   WindowClass.hInstance      = hThisInstance;
   WindowClass.hIcon         = (HICON) LoadImage(NULL, "Icon.ico",   IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
   WindowClass.hCursor         = LoadCursor (NULL, IDC_ARROW);
   WindowClass.hbrBackground   = (HBRUSH) COLOR_BACKGROUND;
   WindowClass.lpszMenuName   = NULL;
   WindowClass.lpszClassName   = szClassName;
   WindowClass.hIconSm         = (HICON) LoadImage(NULL, "SmIcon.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
   
    if (!RegisterClassEx (&WindowClass)) return 0;
    hWnd = CreateWindowEx (
           0,
           szClassName,
           "Shutdown v1.0",
           WS_MINIMIZEBOX | WS_SYSMENU,
           CW_USEDEFAULT,
           CW_USEDEFAULT,
           Width,
           Height,
           HWND_DESKTOP,
           NULL,
           hThisInstance,
           NULL);
    ShowWindow(hWnd, nFunsterStil);
   
   LONG tLeft=5;
   LONG tTop=5;
   LONG tWidth=135;
   LONG tHeight=16;
      hsT = CreateWindowEx(
         0,
       "STATIC",
       "Remaining Time =",
       WS_VISIBLE | WS_CHILD | SS_LEFT | WS_TABSTOP,
       tLeft,
       tTop,
       tWidth,
       tHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
   LONG hLeft = tLeft + tWidth;
   LONG hTop=tTop;
   LONG hWidth=20;
   heH = CreateWindowEx(
         0,
       "EDIT",
       szHour,
       dwEditStyle,
       hLeft,
       hTop,
       hWidth,
       tHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
   LONG hmLeft = hLeft + hWidth;
   LONG hmTop=tTop;
   LONG hmWidth=5;
      hsHM = CreateWindowEx(
         0,
       "STATIC",
       ":",
       WS_VISIBLE | WS_CHILD | SS_LEFT | WS_TABSTOP,
       hmLeft,
       hmTop,
       hmWidth,
       tHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
   LONG mLeft = hmLeft + hmWidth;
   LONG mTop=tTop;
   LONG mWidth=20;
   heM = CreateWindowEx(
         0,
       "EDIT",
       szMinute,
       dwEditStyle,
       mLeft,
       mTop,
       mWidth,
       tHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
      
   LONG msLeft = mLeft + mWidth;
   LONG msTop=tTop;
   LONG msWidth=5;
      hsMS = CreateWindowEx(
         0,
       "STATIC",
       ":",
       WS_VISIBLE | WS_CHILD | SS_LEFT | WS_TABSTOP,
       msLeft,
       msTop,
       msWidth,
       tHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
   LONG sLeft = msLeft + msWidth;
   LONG sTop=tTop;
   LONG sWidth=20;
   heS = CreateWindowEx(
         0,
       "EDIT",
       szSecond,
       dwEditStyle,
       sLeft,
       sTop,
       sWidth,
       tHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
    LONG rsLeft=tLeft-7;
   LONG rsTop = tTop + tHeight + 5;
   LONG rsWidth=81;
   LONG rsHeight=16;
      hbShutdown = CreateWindowEx(
         0,
       "BUTTON",
       "Shutdown",
       WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | WS_TABSTOP,
       rsLeft,
       rsTop,
       rsWidth,
       rsHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   if (!bAutoRun) SendMessage(hbShutdown, BM_SETCHECK, BST_CHECKED, (LPARAM) NULL);
   
    LONG rrLeft = tLeft + rsWidth;
   LONG rrTop = rsTop;
   LONG rrWidth=66;
   LONG rrHeight=rsHeight;
      hbRestart = CreateWindowEx(
         0,
       "BUTTON",
       "Restart",
       WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | WS_TABSTOP,
       rrLeft,
       rrTop,
       rrWidth,
       rrHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
    LONG rlLeft = rrLeft + rrWidth;
   LONG rlTop = rsTop;
   LONG rlWidth=75;
   LONG rlHeight=rsHeight;
      hbLogOff = CreateWindowEx(
         0,
       "BUTTON",
       "Log-Off",
       WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON | WS_TABSTOP,
       rlLeft,
       rlTop,
       rlWidth,
       rlHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
    LONG cfLeft=tLeft;
   LONG cfTop = rrTop + rrHeight + 5;
   LONG cfWidth=200;
   LONG cfHeight=rsHeight;
      hbForce = CreateWindowEx(
         0,
       "BUTTON",
       "Force (Not recommended!)",
       WS_VISIBLE | WS_CHILD | BS_AUTOCHECKBOX | WS_TABSTOP,
       cfLeft,
       cfTop,
       cfWidth,
       cfHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
    LONG stLeft=tLeft;
   LONG stTop = cfTop + cfHeight + 5;
   LONG stWidth=100;
   LONG stHeight=25;
      hbSetTimer = CreateWindowEx(
         0,
       "BUTTON",
       "Set Timer",
       WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | WS_TABSTOP,
       stLeft,
       stTop,
       stWidth,
       stHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
   LONG brLeft = stLeft + stWidth + 5;
   LONG brTop=stTop;
   LONG brWidth=100;
   LONG brHeight=25;
      hbReset = CreateWindowEx(
         0,
       "BUTTON",
       "Reset",
       WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON | WS_TABSTOP,
       brLeft,
       brTop,
       brWidth,
       brHeight,
       hWnd,
       NULL,
       (HINSTANCE) GetWindowLong(hWnd, GWL_HINSTANCE),
       NULL);
   
   nid.cbSize            = sizeof(NOTIFYICONDATA);
   nid.hWnd            = hWnd;
   nid.uID               = NID_ICOID;
   nid.uFlags            = NIF_MESSAGE | NIF_TIP | NIF_INFO | NIF_ICON;
   nid.uCallbackMessage   = NID_CBMSG;
   nid.hIcon            = (HICON) LoadImage(NULL, "TrayIcon.ico",   IMAGE_ICON, 0, 0, LR_LOADFROMFILE);
   lstrcpy(nid.szTip,      "Double-Click To Maximize.");
   nid.dwState            = NIS_SHAREDICON;
   nid.dwStateMask         = NIS_SHAREDICON;
   lstrcpy(nid.szInfo,      "Doublelick to maximize...");
   nid.uTimeout         = 10;
   lstrcpy(nid.szInfoTitle,"Shutdown v1.0");
   nid.dwInfoFlags         = NIF_INFO;
   //nid.guidItem         = NULL;
   
   if (bAutoRun)
   {
      char cRequest   = lpszArgument[0];
      char cForce      = lpszArgument[1];
      cWindowState   = lpszArgument[2];
      
      switch (cRequest)
      {
         case 'S':
            lstrcpy(nid.szInfo,   "Shutdown will proceed after the countdown.");
            lstrcpy(nid.szInfoTitle,"Shutdown in progress!");
            bShutdown = TRUE;
            SendMessage(hbShutdown, BM_SETCHECK, BST_CHECKED, (LPARAM) NULL);
            break;
         case 'R':
            lstrcpy(nid.szInfo,   "Restart will proceed after the countdown.");
            lstrcpy(nid.szInfoTitle,"Restart in progress!");
            bRestart  = TRUE;
            SendMessage(hbRestart,  BM_SETCHECK, BST_CHECKED, (LPARAM) NULL);
            break;
         default:
            lstrcpy(nid.szInfo,   "Log-Off will proceed after the countdown.");
            lstrcpy(nid.szInfoTitle,"Log-Off in progress!");
            SendMessage(hbLogOff,   BM_SETCHECK, BST_CHECKED, (LPARAM) NULL);
            break;
      }
      
      switch (cWindowState)
      {
         case 'N':
            //Do nothing
            break;
         case 'M':
            ShowWindow(hWnd, SW_MINIMIZE);
            break;
         case 'S':
            Shell_NotifyIcon(NIM_ADD, &nid);
            ShowWindow(hWnd, SW_HIDE);
            break;
      }
      
      if (cForce == 'F')
      {
         bForce=TRUE;
         SendMessage(hbForce, BM_SETCHECK, BST_CHECKED, (LPARAM) NULL);
      }
      
      SendMessage(heH, WM_GETTEXT, (WPARAM) 3, (LPARAM) szHour);
      SendMessage(heM, WM_GETTEXT, (WPARAM) 3, (LPARAM) szMinute);
      SendMessage(heS, WM_GETTEXT, (WPARAM) 3, (LPARAM) szSecond);
      iHour  =atoi(szHour);
      iMinute=atoi(szMinute);
      iSecond=atoi(szSecond);
      
      SetTimer(hWnd, IDT_TIMER, 1000, (TIMERPROC) TimerProcedure);
      EnableWindow(hbSetTimer, FALSE);
   }
   
    while (GetMessage (&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
    return messages.wParam;
}

LRESULT CALLBACK WindowProcedure (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_COMMAND:
         if (HIWORD(wParam) == BN_CLICKED)
              {
            if      ((HANDLE) lParam == (HANDLE) hbSetTimer)
               {
                  SendMessage(heH, WM_GETTEXT, (WPARAM) 3, (LPARAM) szHour);
                  SendMessage(heM, WM_GETTEXT, (WPARAM) 3, (LPARAM) szMinute);
                  SendMessage(heS, WM_GETTEXT, (WPARAM) 3, (LPARAM) szSecond);
                  iHour  =atoi(szHour);
                  iMinute=atoi(szMinute);
                  iSecond=atoi(szSecond);
                  
                  SetTimer(hWnd, IDT_TIMER, 1000, (TIMERPROC) TimerProcedure);
                  EnableWindow(hbSetTimer, FALSE);
               }
            else if   ((HANDLE) lParam == (HANDLE) hbReset)
               {
                  KillTimer(hWnd, IDT_TIMER);
                  EnableWindow(hbSetTimer, TRUE);
               }
         }
            break;
        case WM_SYSCOMMAND:
         DefWindowProc (hWnd, message, wParam, lParam);
         if (wParam == SC_MINIMIZE)
         {
            Shell_NotifyIcon(NIM_ADD, &nid);
            ShowWindow(hWnd, SW_HIDE);      //Wild goose chase!
            ShowWindow(hWnd, SW_SHOWNORMAL);   //Sorry! Couldn't find a better way...
            ShowWindow(hWnd, SW_HIDE);
         }   
         break;
        case WM_DESTROY:
         KillTimer(hWnd, IDT_TIMER);
         Shell_NotifyIcon(NIM_DELETE, &nid);
            PostQuitMessage (0);
            break;
      case NID_CBMSG:
         if ((wParam == NID_ICOID) && (lParam == WM_LBUTTONDBLCLK))
         {
            ShowWindow(hWnd, SW_RESTORE);
            Shell_NotifyIcon(NIM_DELETE, &nid);
         }
         break;
      default:
            return DefWindowProc (hWnd, message, wParam, lParam);
    }
   
    return 0;
}

VOID CALLBACK TimerProcedure(HWND hWnd, UINT message, UINT idTimer, DWORD dwTime)
{
   if ((iHour==0) && (iMinute==0) && (iSecond==0))
   {
      KillTimer(hWnd, IDT_TIMER);
      
      if (!bAutoRun)
      {
         LRESULT lResult;
         
         lResult = SendMessage(hbShutdown, BM_GETCHECK, (WPARAM) NULL, (LPARAM) NULL);
         if (lResult == BST_CHECKED) bShutdown=TRUE; else bShutdown=FALSE;
         
         lResult = SendMessage(hbRestart, BM_GETCHECK, (WPARAM) NULL, (LPARAM) NULL);
         if (lResult == BST_CHECKED) bRestart=TRUE; else bRestart=FALSE;
         
         lResult = SendMessage(hbForce,    BM_GETCHECK, (WPARAM) NULL, (LPARAM) NULL);
         if (lResult == BST_CHECKED) bForce=TRUE; else bForce=FALSE;
      }
      
      UINT   uFlags;
      DWORD   dwReason = 0;
      if (bShutdown)
      {
         if (bForce)
         {
            uFlags      = EWX_POWEROFF | EWX_FORCE;
         }
         else
         {
            uFlags      = EWX_POWEROFF;
         }
      }
      else if (bRestart)
      {
         if (bForce)
         {
            uFlags      = EWX_REBOOT | EWX_FORCE;
         }
         else
         {
            uFlags      = EWX_REBOOT;
         }
      }
      else
      {
         if (bForce)
         {
            uFlags      = EWX_LOGOFF | EWX_FORCE;
         }
         else
         {
            uFlags      = EWX_LOGOFF;
         }
      }
      
      ExitWindowsEx((UINT) uFlags, (DWORD) dwReason);
      
      return;      
   }
   
   iSecond--;
   
   if (iSecond<0)
   {
      iSecond=59;
      iMinute--;
   }
   
   if (iMinute<0)
   {
      iMinute=59;
      if (iHour>0) iHour--;
   }
   
   _itoa(iHour,   szHour,   10);
   _itoa(iMinute, szMinute, 10);
   _itoa(iSecond, szSecond, 10);
   
   if (strlen(szHour) == 1)
   {
      szHour[1]   = szHour[0];
      szHour[0]   = '0';
      szHour[2]   = (char) NULL;
   }
   if (strlen(szMinute) == 1)
   {
      szMinute[1] = szMinute[0];
      szMinute[0] = '0';
      szMinute[2] = (char) NULL;
   }
   if (strlen(szSecond) == 1)
   {
      szSecond[1] = szSecond[0];
      szSecond[0] = '0';
      szSecond[2] = (char) NULL;
   }
   
   SendMessage(heH, WM_SETTEXT, (WPARAM) NULL, (LPARAM) szHour);
   SendMessage(heM, WM_SETTEXT, (WPARAM) NULL, (LPARAM) szMinute);
   SendMessage(heS, WM_SETTEXT, (WPARAM) NULL, (LPARAM) szSecond);
}


Program Windows XP'de hic bisey yapmiyor. Windows 2000'de ise sadece log-off yapabiliyor.
Bu benim yazdigim ilk Win32 programi ve calismamasi cok moral bozucu birsey!!!
API'nin duzgun calismamasinin sebebi ne olabilir?
Başa dön
Kullanıcı profilini gör
MD-C



Kayıt: Feb 26, 2003
Mesajlar: 1258
Nereden: Dünya.Türkiye(54)

MesajTarih: Tue Sep 27, 2005 7:45 pm    Mesaj konusu: Alıntıyla Cevap Ver

Doğru yapsam bile: Oturum kapanacaktır, PC değil! Bunun için farklı bir yol denemen gerek: Bu konuda MSDN'de bir yazı görmüştüm! (restart için)
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
AhmedHan



Kayıt: Jun 01, 2005
Mesajlar: 7

MesajTarih: Wed Sep 28, 2005 1:20 pm    Mesaj konusu: Alıntıyla Cevap Ver

Hayır, MSND'de fonksiyon tanıtılırken açıkça "PC kapanacaktır" deniyo.
Başa dön
Kullanıcı profilini gör
3ddreams



Kayıt: Nov 28, 2003
Mesajlar: 352
Nereden: İstanbul

MesajTarih: Wed Sep 28, 2005 7:12 pm    Mesaj konusu: Alıntıyla Cevap Ver

senin koda bakmadım ama işler win2000 de ve xp de değişiyor. win 98 de sorunsuz çalışacaktır senin kod. Xp veya win2000 için aşağıdaki kodu kullan.

Kod:

// Wkapan.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
      printf("kapan susam kapan");
   HANDLE hToken;
TOKEN_PRIVILEGES tkp;
 
// Get a token for this process.
 
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
 
// Get the LUID for the shutdown privilege.
 
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
 
tkp.PrivilegeCount = 1;  // one privilege to set   
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
 
// Get the shutdown privilege for this process.
 
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES)NULL, 0);
 
// Shut down the system and force all applications to close.

ExitWindowsEx(EWX_POWEROFF, 0) ;
return 0;
   
}




Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et MSN Messenger
MD-C



Kayıt: Feb 26, 2003
Mesajlar: 1258
Nereden: Dünya.Türkiye(54)

MesajTarih: Wed Sep 28, 2005 7:33 pm    Mesaj konusu: Alıntıyla Cevap Ver

3ddreams demiş ki:
senin koda bakmadım ama işler win2000 de ve xp de değişiyor....


Evet bende bunu anlatmaya çalıştım farklı bir dilde Smile
Başa dön
Kullanıcı profilini gör E-Posta'yı gönder Kullanıcının web sitesini ziyaret et
Mesajları göster:   
Yeni Başlık Gönder   Cevap Gönder    www.oyunyapimi.org Forum Ana Sayfası -> Programlama Dilleri ve Algoritmalar Tüm saatler GMT +2 Saat
1. sayfa (Toplam 1 sayfa)

 
Forum Seçin:  
Bu forumda yeni konular açamazsınız
Bu forumdaki mesajlara cevap veremezsiniz
Bu forumdaki mesajlarınızı değiştiremezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu forumdaki anketlerde oy kullanamazsınız


Powered by phpBB 2.x.x © 200x phpBB Group
Türkçe Çeviri : Onur Turgay & Erdem Çorapçıoğlu
Türkçe Düzenleme: Alexis Canver
Version 2.x.x of PHP-Nuke Port by Tom Nitzschner © 200x www.toms-home.com




Web site powered by PHP-Nuke
Web site engine\'s code is Copyright © 2002 by PHP-Nuke. All Rights Reserved. PHP-Nuke is Free Software released under the GNU/GPL license.
Sayfa Üretimi: 0.151 Saniye