Komputer biurkowy HP Pro – problem z literą „ś”.

Witam.

Po bardzo długiej przerwie postanowiłem napisać krótki artykuł.

Od dłuższego czasu zajmuje się szeroko pojęta informatyka więc codziennie się muszę uczyć.

Dziś konfigurowałem komputer PC firmy HP seria Pro 3120MT.

Komputery te mają dziwną przypadłość że po domyślnej instalacji z Windows 7 Professional nie można używać skrótu „prawy alt + s”.

Niestety tu firma HP zachowała się trochę nieodpowiedzialnie nie dając żadnych informacji jak ten problem rozwiązać.

Aby to zrobić należy wejść w Menu start-> „Wszystkie programy” -> „Pomoc i narzędzia dla komputera PC”  i na skrócie „Informacje o pomocy technicznej dla komputera firmy HP” kliknąć prawym przyciskiem myszy wybierając właściwości. W sekcji „Skrót” znaleźć pole „Klawisz skrótu” i usunąć z niego wszystko. Później wystarczy tylko zastosować i już można korzystać z litery „ś”.

Pozdrawiam.

Opublikowano Blog | 2 komentarze

Walidacja numeru NIP/Regon

Witam,

Po długiej przerwie zamieszczam kod sprawdzający poprawność numeru NIP oraz REGON.

Życzę przyjemnego korzystania.

static public bool RegonValidate(string RegonValidate)
 {
 byte[] weights;
 ulong regon = ulong.MinValue;
 byte[] digits;

 if (ulong.TryParse(RegonValidate,out regon).Equals(false)) return false;

 switch( RegonValidate.Length )
 {
 case 7:
 weights = new byte[] { 2, 3, 4, 5, 6, 7 };
 break;

 case 9:
 weights = new byte[] { 8, 9, 2, 3, 4, 5, 6, 7 };
 break;

 case 14:
 weights = new byte[] { 2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8 };
 break;

 default:
 return false;
 }

 string sRegon = regon.ToString();
 digits = new byte[sRegon.Length];

 for (int i=0;i<sRegon.Length;i++)
 {
 if (byte.TryParse(sRegon[i].ToString(), out digits[i]).Equals(false)) return false;
 }

 int checksum = 0;

 for(int i=0;i<weights.Length;i++)
 {
 checksum += weights[i] * digits[i];
 }

 return (checksum % 11 % 10).Equals(digits[digits.Length-1]);

 }

static public bool NIPValidate(string NIPValidate)
 {
 const byte lenght = 10;

 ulong nip = ulong.MinValue;
 byte[] digits;
 byte[] weights = new byte[] { 6, 5, 7, 2, 3, 4, 5, 6, 7 };

 if (NIPValidate.Length.Equals(lenght).Equals(false)) return false;

 if (ulong.TryParse(NIPValidate,out nip).Equals(false)) return false;
 else
 {
 string sNIP = NIPValidate.ToString();
 digits = new byte[lenght];

 for (int i = 0; i < lenght; i++)
 {
 if (byte.TryParse(sNIP[i].ToString(), out digits[i]).Equals(false)) return false;
 }

 int checksum = 0;

 for (int i = 0; i < lenght - 1; i++)
 {
 checksum += digits[i] * weights[i];
 }

 return (checksum % 11 % 10).Equals(digits[digits.Length-1]);
 }

 }
Opublikowano Blog | 2 komentarze

Aktualizacja działu Programy

Dziś dodałem nowy program do działu Programy.

Jest to analogowy zegar napisany w języku C#.

Opublikowano Blog | Skomentuj

Aktualizacja program CPUMether

Dziś dodałem zaktualizowaną wersję programu CPUMether.
Poprawki obejmują:
– dodanie drugiego trybu wizualizacji,
– drobne zmiany kosmetyczne,
– optymalizacja kodu.

Zrzut ekranu programu CPUMether

Zrzut ekranu programu CPUMether

Opublikowano Blog | Skomentuj

Microsoft Excel – Makra wprowadzenie

Dziś postaram się opisać jedno z zagadnień związanych z makrami w programie Microsoft Excel 2007.

W moim poprzednim wpisie podałem kod makra „Słownie” do programu Excel, ale nie napisałem jak zrobić aby to makro było dostępne dla wszystkich arkuszy Excela w naszym komputerze. Poniżej postaram się dokładnie i krok po kroku wyjaśnić ten proces.

Ważne – aby dokonać poniższych czynności musimy posiadać uprawnienia administracyjne (XP/Vista).

1. Jeśli jesteś „szczęśliwym” posiadaczem systemu Microsoft Vista wykonaj poniższe kroki, użytkownicy systemu Windows  XP  moga przejść od razu do punktu nr 2:

klikamy na ikonę mój komputer i wchodzimy na dysk na którym zainstalowaliśmy system (lub program Microsoft Office 2007), w większości przypadków ścieżka powinna wyglądać tak: C:Program FilesMicrosoft OfficeOffice12, następnie szukamy pliku Excel.exe i klikamy na nim prawym przyciskiem myszy:

  • Uruchomienie programu Excel z prawami administratora

    Uruchomienie programu Excel z prawami administratora

2. Kiedy program Excel zostanie otwarty sprawdzamy czy istnieje plik: C:Program FilesMicrosoft OfficeOffice12XLSTARTpersonal.xlsm – jeśli istnieje otwieramy go jeśli nie: tworzymy.

Tworzenie pliku personal.xlsm

Tworzenie pliku personal.xlsm

3. Na początku ściągamy plik:  slownie.zip, rozpakowujemy a następnie przechodzimy do edytora Visual Basic <Alt+F11>, w sekcji „Project – VBAProject” szukamy pliku: personal.xlsm,  klikamy na wpisie prawy przycisk myszy i wybieramy -> „Import File”  gdzie wskazujemy uprzednio rozpakowany plik.

W celu ułatwienia sobie późniejszej pracy powinniśmy zmienić nazwę modułu w tym celu w sekcji „Properties – Module1” zmieniamy zmienna (Name) na odpowiednia dla nas nazwę (patrz poniższy obrazek).

Zmiana nazwy modułu

Zmiana nazwy modułu

4. To już koniec naszych przygotowań, teraz wystarczy tylko wkleić kod mojego makra (klawisz F7), oraz zapisać zmiany.

5. Jeśli podczas otwierania programu Excel otwiera się nam plik personal.xlsx to musimy wykonać następujące czynności:

Uruchomić program Excel jak w punkcje nr 1, następnie przejść na Wstążkę „Widok” i wybrać przycisk „Ukryj”, oraz zapisać zmiany.

6. Aby skorzystać z makra należy w komórce gdzie chcemy uzyskać liczbę słownie wpisać następujący tekst „=personal.xlsm!słownie(?)” gdzie ? = adres komórki lub wartość.

W razie problemów proszę o kontakt.

Opublikowano Microsoft Office, VB | Otagowano , , | Skomentuj

Aktualizacja

Dziś dodałem strony z napisamymi przez siebie programami -> Zobacz

Opublikowano Blog | Skomentuj

Tworzymy makro dla programu Microsoft Excel

Dziś umieszczę makro do programu Microsoft Excel które umożliwia konwersja zapisu liczbowego na zapis słowny. Poniżej umieszczam kod całego makra oraz plik xla do ściągniecia. Życzę miłego analizowania kodu i jak zwykle czekam na informacje o błędach i ewentualne sugestie na przyszłość.

'skrypt sciagniety ze strony www.grzegorzsurowiec.pl
Option Compare Binary 'typ porownania stringów: binarny
Option Explicit 'wymusza deklaracje zmiennych

'deklaracja zmiennych
Private Male As Variant
Private Nascie As Variant
Private Duze As Variant

'tworzenie metody
'parametr 'l' kwota z akrusza w formacie Currency

Function Słownie(ByVal l As Currency) As String

 'definicja zmiennych
 Dim S, temp As String
 Dim zl As Currency
 Dim g, i, gr, pos, j, koncowka As Integer
 'zmienna trzyma grupy cyfr -
 'na razie 4: tysiące, miliony, miliardy, biliony
 Dim rozdziel(0 To 3) As Variant

 'tworzenie tablic
 Male = Array( _
 Array("", "jeden", "dwa", "trzy", "cztery", "pięć", "sześć", _
 "siedem", "osiem", "dziewięć"), _
 Array("", "", "dwadzieścia", "trzydzieści", "czterdzieści", _
 "pięćdziesiąt", "sześćdziesiąt", "siedemdziesiąt", _
 "osiemdziesiąt", "dziewięćdziesiąt"), _
 Array("", "sto", "dwieście", "trzysta", "czterysta", "pięćset", _
 "sześćset", "siedemset", "osiemset", "dziewięćset") _
 )

 Nascie = Array("dziesięć", "jedenaście", "dwanaście", "trzynaście", _
 "czternaście", "piętnaście", "szesnaście", "siedemnaście", _
 "osiemnaście", "dziewiętnaście")

 Duze = Array( _
 Array("tysiąc", "tysiące", "tysięcy"), _
 Array("milion", "miliony", "milionów"), _
 Array("miliard", "miliardy", "miliardów"), _
 Array("bilion", "biliony", "bilionów") _
 )

 l = WorksheetFunction.Round(l, 2)  'zaokraglamy do groszy
 zl = WorksheetFunction.Floor(l, 1) 'zapisuje czesc całkowitą
 gr = (l - zl) * 100 'zapisujemy grosze

 S = CStr(zl) 'zmieniamy kwotę na stringa

 'inicjalizacja zmiennych potrzebnych do obsługi pętli
 i = 0
 g = 0
 'inicjuj grupę
 rozdziel(g) = Array(-1, -1, -1)

 For pos = Len(S) - 1 To 0 Step -1

 'zapisujemy jeden znak do odpowiedniej pozycji w grupie
 rozdziel(g)(i) = CByte(Mid(S, pos + 1, 1))

 'tworzymy nową grupę cyfr
 If i = 2 And pos > 0 Then
 g = g + 1 'nowy id grupy
 i = -1 'przy nastepnej petli i = 0
 rozdziel(g) = Array(-1, -1, -1) 'inicjujemy nową grupę
 End If

 i = i + 1
 Next

 S = "" 'czyscimy zmienna S ktora będzie "zbierała" kwotę słownie

 For i = 0 To g

 temp = ""

 For j = 2 To 0 Step -1 'poruszamy się po grupie od końca

 'analizujemy tylko wartości różne od -1
 If rozdziel(i)(j) > -1 Then

 If j = 1 Then
 'sprawdzamy czy środkowa cyfra nie jest cyfrą 1
 'aby wywołać tablicę NASCIE
 If rozdziel(i)(j) = 1 Then
 temp = temp & Nascie(rozdziel(i)(0)) & " "
 'czyścimy pierwszą liczbę w grupie bo już nie jest potrzebna
 rozdziel(i)(0) = -1
 Else:
 If rozdziel(i)(j) > 0 Then temp = temp & Male(j)(rozdziel(i)(j)) & " "
 End If
 Else:
 If rozdziel(i)(j) > 0 Then temp = temp & Male(j)(rozdziel(i)(j)) & " "
 End If

 End If

 Next

 'ostatnia cyfra z tysiaca jest zdefiniowana
 If rozdziel(i)(2) > -1 Then
 If i + 1 <= g Then 'jest nastepna grupa cyfr
 'ustalamy koncówkę dla tablicy DUZE

 'analizujemy pierwszą cyfrę w kolejnej grupie
 Select Case CByte(rozdziel(i + 1)(0))
 Case 1: koncowka = 0
 Case 2, 3, 4: koncowka = 1
 Case Else: koncowka = 2
 End Select

 'analizujemy drugą cyfrę w kolejnej grupie
 If rozdziel(i + 1)(0) = 1 Then
 koncowka = 2
 End If

 'jeśli następna grupa nie jest pusta dodaj wartość z tablicy DUZE
 If rozdziel(i + 1)(0) > 0 Or rozdziel(i + 1)(1) > 0 Or _
 rozdziel(i + 1)(2) > 0 Then
 'if i==0
 S = Duze(i)(koncowka) & " " & temp & S
 Else: S = temp & S
 End If
 Else: S = temp & S
End If

 Else: S = temp & S
 End If

 Next

 'wyświetl liczbę słownie
 Słownie = Trim(S) & " " & Format(CDbl(gr), "00") & "/100"
End Function

Plik Słownie.zip

Opublikowano Microsoft Office, VB | Otagowano , , , | 1 komentarz

Usuwanie danych EXIF

Wstęp

Dziś zamieszczam program którego działanie polega na czyszczeniu informacji EXIF zawartej w plikach JPG.

Głównym komponentem program jest aplikacja jhead, a samo działanie opiera się na przekazywaniu do niej odpowiednich komend.

Program został przetestowany na następujących systemach: Windows XP/ SP2/ SP3, Vista /SP1.

Instrukcja użytkowania:

Na wybranym pliku JPG należy kliknąć prawy przycisk myszy i wybrać opcję „Wyczyść plik”.

Jeśli ktoś znalazł jakiś błąd albo ma sugestie proszę o kontakt.

Pobieranie:

Aby pobrać program kliknij na link -> ExifRemover

Pozdrawiam.

Aktualizacja

Dziś tj. 12 stycznia 2009 dodałem nową poprawioną wersję programu.

Opublikowano Programy | Otagowano , | Skomentuj

Pierwszy program

Witam po dłuższej przerwie.

Dziś wrzucę takie malutkie narzędzie napisane w c# -> SimpleImageResizer

Działanie jak i cel programu jest prosty – służy on tylko i wyłącznie do zmiany wielkości (rozdzielczości) zdjęcia (format JPEG).

Proszę o opinie i sugestie.

Program do działania wymaga środowiska .NET Framework 2.0.

Pozdrawiam.

Opublikowano C#, Programy | Otagowano , , | Skomentuj

Modyfikacje skryptu WordPress

Witam.

Dziś zajmę się dopasowywaniem swojej strony która oparta jest o skrypt WordPress.

Podczas konfiguracji napotkałem na kilka problemów, o to one:

  1. News’y na stronie głównej pokazywane były w całej swojej długości, chodź pod każdym z nich był widoczny link „Wiecęj”.
  2. Po instalacji dodatku Google Syntax Highlighter for WordPress przy każdej zmianie trybu z „HTML” na Visual w edytorze TinyMCE wykasowaniu ulegał tag name=”code” co uniemożliwiało poprawne wyświetlanie kodu źródłowego.

1. Sposób wyświetlania news’ów:

Aby rozpocząć modyfikację strony musimy zalogować się do panelu administracyjnego i przejść do /Design/Theme Editor. Następnie musimy otworzyć następujące pliki:

  • index.php
  • archives.php
  • archive.php
  • category.php
  • search.php

Znaleść i zamienić kod: the_content() na the_excerpt().

Po tej zmianie powinniśmy mieć już krótkie news’y z możliwością pokazania ich całości.

2. Problem z Google Syntax Highlighter for WordPress.

Aby rozpocząć naprawę musimy zalogować się na serwer na którym hostowana jest nasza strona oraz wejść do folderu gdzie znajduje się skrypt WordPress.

Po udanym logowaniu przechodzimy do folderu: wp-includes/js/tinymce i szukamy pliku tiny_mce_config.php. Otwieramy plik i szukamy następującego tekstu:

// TinyMCE init settings
$initArray = array (

sprawdzamy czy w tablicy nie ma elementu: extended_valid_elements, jeżeli nie ma idziemy na koniec tablicy i dodajemy element: „‚extended_valid_elements’=> ‚pre[name|class]'”

Poniżej pokazuje jak wygląda przykładowa tablica po zmianie.

// TinyMCE init settings
$initArray = array (
	'mode' => 'none',
	'onpageload' => 'wpEditorInit',
	'width' => '100%',
	'theme' => 'advanced',
	'skin' => 'wp_theme',
	'theme_advanced_buttons1' => "$mce_buttons",
	'theme_advanced_buttons2' => "$mce_buttons_2",
	'theme_advanced_buttons3' => "$mce_buttons_3",
	'theme_advanced_buttons4' => "$mce_buttons_4",
	'language' => "$mce_locale",
	'spellchecker_languages' => "$mce_spellchecker_languages",
	'theme_advanced_toolbar_location' => 'top',
	'theme_advanced_toolbar_align' => 'left',
	'theme_advanced_statusbar_location' => 'bottom',
	'theme_advanced_resizing' => true,
	'theme_advanced_resize_horizontal' => false,
	'dialog_type' => 'modal',
	'relative_urls' => false,
	'remove_script_host' => false,
	'convert_urls' => false,
	'apply_source_formatting' => false,
	'remove_linebreaks' => true,
	'paste_convert_middot_lists' => true,
	'paste_remove_spans' => true,
	'paste_remove_styles' => true,
	'gecko_spellcheck' => true,
	'entities' => '38,amp,60,lt,62,gt',
	'accessibility_focus' => false,
	'tab_focus' => ':next',
	'content_css' => "$mce_css",
	'save_callback' => 'switchEditors.saveCallback',
	'wpeditimage_disable_captions' => $no_captions,
	'plugins' => "$plugins",
	// pass-through the settings for compression and caching, so they can be changed with "tiny_mce_before_init"
	'disk_cache' => true,
	'compress' => true,
	'old_cache_max' => '1', // number of cache files to keep
	'extended_valid_elements'=> 'pre[name|class]'
);

Zapisujemy zmiany i odswierzamy kilkukrotnie strone z edytorem lub czyścimi pamięć podręczną przeglądarki.

Aktualizacja: W najnowszej wersji tj. 2.7 problem już nie występuje.

Pozdrawiam.

Opublikowano Wordpress | Otagowano , | Skomentuj