понедельник, 25 января 2010 г.

Новый принтер HP P4515x выдает ошибку 49.4С27

Пришли два новых принтера HP P4515x. Один пришел в ноябре, другой - в декабре. Абсолютно одинаковые принтера, а работают по разному. Так вот, первый принтер выдает постоянно ошибку 49.4С27, независимо от интерфейса подключения. Оказывается куплены принтера с разницой в месяц,а  firmware у них разный. Тут и гадать не пришлось в чем дело. Иду на сайт HP http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=us&prodTypeId=18972&prodSeriesId=3558888&prodNameId=3558895&swEnvOID=54&swLang=33&mode=2&taskId=135&swItem=hv-61299-5 и качаю прошивку ) 04.049.3. Старая прошивка была 04.48.4. Вот так покупаешь новый принтер и уже голову ломаешь над ошибками.
Несколько замечаний по эксплуатации HP P4515.
Термоузел на одном принтере заменил на 400000 пробеге, на другом 225000. Второй принтер выдал ошибку 50.4 и отказался дальше  печатать пока не заменил термоузел (CB389-67901 Ремкомплект LJ P4014/4015/P4515 CB389A).
Так как  замечено, картриджи для HP P4515 выдают меньше копий, чем картриджи для HP 4350, попробывал в драйверах выставить Econome mode. Качество копий в таком режиме меня устраивает. Экономию нужно еще посчитать.
Добавляю вдогонку. В Econom mode существенно экономит тонер. С 15000 страниц до 20000. Советую пользоваться. Качество документов - приемлимое.

среда, 20 января 2010 г.

Удаление стандартных игр WIndows XP

Много есть вариантов в инете. Но я реализовал вот этот, вот по этой ссылке:
http://www.tek-tips.com/viewthread.cfm?qid=1070019&page=14.
Итак, идея проста,  для удаления воспользоваться утилиткой sysocmgr.

Dim Fso : Set Fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
sPrograms = WshShell.SpecialFolders("AllUsersPrograms")
If (Fso.FolderExists(sPrograms & "\Игры")) Then ' Create file for uninstalling games
Set f = Fso.CreateTextFile("c:\windows\inf\wmdtocm.txt", True)
f.WriteLine("[Components]")
f.WriteLine("freecell=off")
f.WriteLine("hearts=off")
f.WriteLine("minesweeper=off")
f.WriteLine("msnexplr=off")
f.WriteLine("pinball=off")
f.WriteLine("solitaire=off")
f.WriteLine("spider=off")
f.WriteLine("zonegames=off")
f.Close
WshShell.Run "sysocmgr.exe /i:c:\windows\inf\sysoc.inf /u:""c:\windows\inf\wmdtocm.txt"" /q", 1, True
Fso.DeleteFolder(sPrograms & "\Игры"), True
End If


Код практически такой же, как в оригинале, только изменена папка, где хранятся игры. В русской версии WindowsXP - это "\Игры".
Этот код сохраните в файл с расширением ".vbs". Допустим remove_games.vbs
Для того чтобы удалить игры со всех компьютеров домена, можно использовать групповую политику. Я включил этот скрипт в автозагрузку.
"Конфигурация компьютера->Конфигурация Windows->Сценарии (запуск завершение)->Автозагрузка." Это работает и можно использовать

среда, 13 января 2010 г.

WinToDos. Как сохранить данные в DOS кодировке.

Думаете задача неактуальная. Ошибаетесь. Вы знаете, что Сбербанк принимает файлы на зачисление на пластиковые карты в DOS формате. Информация на зачисление выгружается из "1С Кадры и Зарплата" в формате XML, после этого нужно получить DOS-файл со списком на зачисление.
Сейчас это делается на VBA в EXCEL. Я решил переписать на VB2008. Вот как функция перекодировки  выглядит на VBA (Авторство не моё):

W = "": D = ""
For I = 192 To 255: W = W & Chr$(I): Next
For I = 128 To 175: D = D & Chr$(I): Next
For I = 224 To 236: D = D & Chr$(I): Next

Public Function WinToDos(ByVal S As String, ByVal W As String, ByVal D As String) As String
Dim R As String
Sym = S: Ltext = Len(S)
If Ltext > 0 Then
For I = 1 To Ltext
k = InStr(W, Mid(S, I, 1))
If k > 0 Then
Mid(Sym, I, 1) = Mid(D, k, 1)
End If
Next I
End If
WinToDos = Sym
End Function

То есть понятно. Создается две строки. Одна содержит символы в Windows кодировке, другая в DOS. Первый параметр - строка,которую нужно перекодировать.Затем в цикле меняем один символ на другой.
Можно было использовать и этот код. Ну уж больно хотелось использовать возможности .NET.
И вот что получилось. Вот пример программы создающий файл с данными в DOS кодировке.

Imports System
Imports System.IO
Imports System.Text

Module Module1
Sub Main()
Dim Sym As String = "Привет от старых штиблет"
Dim encoding1 As Encoding = Encoding.GetEncoding(866)
Dim ioFile As New _
StreamWriter("c:\proba.txt", Boolean.Parse("False"), encoding1)
ioFile.WriteLine(Sym)
ioFile.Close()
End Sub
End Module

В файле proba.txt в DOS кодировке будет строчка "Привет от старых штиблет"

Gmer.exe снова помог

При включении сервер не появился в сети. Итак, приступаем к расследованию причин.  Оказалось, в устройствах компьютера в разделе "сетевые платы" плата Intel 82566DM помечена восклицательным знаком на фоне желтого круга. Устройство работает неверно. Пытаюсь установить драйвер снова. Не устанавливается. Удаляю плату . Удаляю драйвера. Все устанавливаю заново . Результат тот же. Итак я шаманил с часок, пока до меня не дошло, что возможно это вирус. Запускаю Gmer.exe. Сразу же бросается в глаза красным цветом выделенный процесс Net.exe.  Ну а дальше гашу этот процесс и удаляю файл, который его запускает. После этого все встаёт на свои места. В последнее время все чаще причиной разных проблем становяться вирусы. Поэтому, к самому распространенному совету по решению проблем "Перегрузись", я думаю, нужно еще добавить "Проверь на вирусы".