Показаны сообщения с ярлыком Windows XP. Показать все сообщения
Показаны сообщения с ярлыком Windows XP. Показать все сообщения

пятница, 19 марта 2021 г.

Открытие документа в формате shs в Windows 10

 Если вам пришлось столкнуться с документами в формате файла shs (https://en.wikipedia.org/wiki/Shell_Scrap_Object_File), то его можно сконвертировать из формата shs в формат rtf при помощи программы QScrap2rtf. Формат shs начиная Windows Vista и заканчивая Windows 10 не поддерживается, но есть пользователи, которые со времен Windows XP до сих пор хранят документы в этих фрагментах. И поэтому без этой программы не обойтись. 

Качать QScrap2rtf отсюда (https://code.google.com/archive/p/scrap2rtf/downloads). 

Исходники (https://github.com/ivnish/qscrap2rtf)

суббота, 27 июля 2019 г.

Прячем VBS-скрипты в ресурсном файле Windows в приложениях на Delphi 7

Внимание! Данный пример был разработан в среде программирования Delphi 7 и под управлением Windows XP.

Я уже писал про совместное использование Delphi 7 и VBScripts, для чего это связка нужна и как ее использовать (http://notidealrunner.blogspot.com/2019/05/vbscripts-delphi.html). Возможно, вы тоже нашли в этом пользу использования. Единственное что мне не понравилось это то, что наши VBS-скрипты всегда необходимо таскать вместе с исполняемой частью программы. А что будет, если при выполнение программы, необходимых скриптов не окажется? Программа откажется работать или будет работать не так как вы задумывали. Или, если вы не хотите демонстрировать программный код VBS-скриптов, распространяемые вместе с исполняемой программой, то вам понадобится спрятать, каким-то образом, это код. Долго я пытался я найти решение как лучше спрятать VBS-скрипты. Единственным решением которое я нашел, это засунуть VBS-скрипт в ресурсный файл Windows и скомпоновать его с исполняемой программой. Единственный минус данного способа, это увеличение объема исполняемой программы, но и это можно обойти, я так предполагаю, скомпоновав данный ресурсный файл с динамической линкуемой dll – библиотекой, но в этом посте мы не будем рассматривать это способ.

Давайте приступим к созданию нового проекта. Создайте в среде Delphi 7 проект с именем p6.dpr. Основной модуль программы сохраните под именем p6_unit1.pas. Файл скрипта назовите sum.vbs и сохраните его в корне папки проекта p6. Код скрипта будет такой-же как и в проекте по этому посту http://notidealrunner.blogspot.com/2019/05/vbscripts-delphi.html.

On Error Resume Next
Function Sum(a,b)
 Sum = a + b
End function

Далее нам необходимо в каталоге проекта p6 создать файл ресурсов компиляции с именем sum.rc. Содержимое файла компиляции будет следующее:

VBSCRIPTS RCDATA sum.vbs

То есть мы в качестве ресурсов нашего приложения указываем наш файл VBS-скрипта.

Файл ресурсов компиляции sum.rc необходимо скомпилировать при помощи компилятора ресурсов brcc32.exe, этот компилятор ресурсов расположен в каталоге, где расположены бинарные файлы Delphi, у меня это каталог c:\Program Files\BORLAND\Delphi7\Bin\. Убедитесь, что данный каталог добавлен в переменную окружения Path. Запустите командную строку Windows, перейдите в каталог проекта и выполните команду компиляции ресурсов.

brcc32.exe sum.rc

В качестве результата в каталоге проекта вы получите файл ресурсов sum.RES, который необходимо в файле модуля p6_unit1.pas подключить. Смотрите код ниже:

var
  Form1: TForm1;
  ScriptString: String;

implementation

{$R *.dfm}
{$R sum.res}

На форму с именем Form1 необходимо перетащить компонент ScriptControl. Я уже писал, как установить данный компонент и задействовать его в проекте (Смотрите статью http://notidealrunner.blogspot.com/2019/05/vbscripts-delphi.html).

Перейдем к описанию кода проекта Delphi.


1. В обработчике создания формы мы обращаемся к потоку ресурсов нашего приложения типа TResourceStream с целью получить доступ к нашему пользовательскому ресурсу данных в формате RCDATA с именем VBSCRIPTS. Потом создаем пустой строковый поток типа TStringStream, в который мы будем копировать данные из потока ресурсов типа TResourceStream. Далее сохраняем данные из строкового потока в глобальную строковую переменную типа String с именем ScriptString. В конце работы обработчика мы освобождаем используемые потоки типа TResourceStream и типа TStringStream.

procedure TForm1.FormCreate(Sender: TObject);
var
  RS: TResourceStream;
  SS: TStringStream;
begin
  RS := TResourceStream.Create(hInstance, 'VBSCRIPTS', RT_RCDATA);
  SS := TStringStream.Create('');
  try
    SS.CopyFrom(RS, RS.Size);
    ScriptString := SS.DataString;
  finally
    FreeAndNil(SS);
    FreeAndNil(RS);
  end;
end;

2. Далее в обработчике нажатия кнопки мы загружаем скрипт из глобальной строковой переменной типа String с именем ScriptString и запускаем функцию Sum на исполнение.

procedure TForm1.Button1Click(Sender: TObject);
var
  varr, res:Variant;
  pPar:PSafeArray;
  SA : TSafeArrayBound;
  a: Integer;
  b: Integer;
  ValErrorCode: Integer;
begin
  Val(Edit1.Text, a, ValErrorCode);
  Val(Edit2.Text, b, ValErrorCode);
  try
    ScriptControl1.Language := 'VBScript';
    ScriptControl1.AddCode(ScriptString);
    SA.cElements := 2;
    pPar := SafeArrayCreate(varVariant, 1, SA);
    varr := VarArrayCreate([0, 1], varVariant);
    varr[0]:=a;
    varr[1]:=b;
    pPar:=PSafeArray(TVarData(varr).VArray);
    res:=ScriptControl1.Run('Sum',pPar);
    Label5.Caption := VarToStr(res);
  except
    on E: Exception do
      MessageDlg(PWideChar(E.Message), mtError, [mbOK], 0);
  end;
end;

3. Вот и все. Теперь исполняемый файл программы можно будет перемещать без VBS-скриптов.

Код модуля p6_unit1.pas

unit p6_unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, MSScriptControl_TLB;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Button1: TButton;
    ScriptControl1: TScriptControl;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ScriptString: String;

implementation

{$R *.dfm}
{$R sum.res}
uses ActiveX;

procedure TForm1.FormCreate(Sender: TObject);
var
  RS: TResourceStream;
  SS: TStringStream;
begin
  RS := TResourceStream.Create(hInstance, 'VBSCRIPTS', RT_RCDATA);
  SS := TStringStream.Create('');
  try
    SS.CopyFrom(RS, RS.Size);
    ScriptString := SS.DataString;
  finally
    FreeAndNil(SS);
    FreeAndNil(RS);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  varr, res:Variant;
  pPar:PSafeArray;
  SA : TSafeArrayBound;
  a: Integer;
  b: Integer;
  ValErrorCode: Integer;
begin
  Val(Edit1.Text, a, ValErrorCode);
  Val(Edit2.Text, b, ValErrorCode);
  try
    ScriptControl1.Language := 'VBScript';
    ScriptControl1.AddCode(ScriptString);
    SA.cElements := 2;
    pPar := SafeArrayCreate(varVariant, 1, SA);
    varr := VarArrayCreate([0, 1], varVariant);
    varr[0]:=a;
    varr[1]:=b;
    pPar:=PSafeArray(TVarData(varr).VArray);
    res:=ScriptControl1.Run('Sum',pPar);
    Label5.Caption := VarToStr(res);
  except
    on E: Exception do
      MessageDlg(PWideChar(E.Message), mtError, [mbOK], 0);
  end;
end;

end.

Код проекта p6.dpr

program p6;

uses
  Forms,
  p6_unit1 in 'p6_unit1.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Код VBS-скрипта sum.vbs

On Error Resume Next

Function Sum(a,b)
 Sum = a + b
End function

среда, 3 июля 2019 г.

Настройка общего доступа и доступа по админским шарам с Windows XP на Windows 10

Недавно решил попробовать перекинуть файлы из (comp1) Windows XP на (comp2) Windows 10, ввел на comp1 в адресной строке проводника ip адрес comp2 (192.168.1.3) и получил сообщение об ошибке «Указанное сетевое имя более недоступно» (смотрите рисунок 1). 


Рисунок 1. Сообщение об ошибке "Указанное сетевое имя более недоступно" в Windows XP

При этом сам ip адрес 192.168.1.3 пингуется. На форуме oszone.net нашел решение, что необходимо на Windows 10 включить протокол SMB 1.0. Для этого необходимо запустить «Панель управления», отобразить «Все элементы панели управления», запустить «Программы и компоненты» (смотрите цифру 1 на рисунке 2). Потом нажать на кнопку «Включение или отключение компонентов Windows» (смотрите цифру 2 на рисунке 2). 

Рисунок 2. Открытие окна "Компоненты Windows" в Windows 10

В окне «Компоненты Windows» найти и выбрать опции «Поддержка общего доступа к файлам SMB 1.0/CIFS», «Клиент SMB 1.0/CIFS», «Сервер SMB 1.0/CIFS» (смотрите рисунок 3). 

Рисунок 3. Включение поддержки SMB 1.0 в Windows 10

После этого необходимо перезагрузить компьютеры comp1 и comp2. Пробуем еще раз на компьютере comp1 ввести в адресной строке проводника ip адрес comp2 (192.168.1.3). Видим, что данное сообщение не появилось и открылось окно с общими папками, общими принтерами на компьютере comp2 с Windows 10, или пустое окно как у меня, если общих папок и общих принтеров нет (смотрите рисунок 4). 

Рисунок 4. Доступ к сетевым ресурсам Windows 10 из Windows XP

Мы рассмотрели настройку, касающуюся общего доступа на Windows 10. 

Теперь рассмотрим настройку доступа по админским шарам. Пробуем ввести на comp1 в адресной строке проводника ip адрес comp2 (\\192.168.1.3) вместе с админской шарой C$ (\\192.168.1.3\C$) и получим окно ввода логина и пароля (например: логин user, пароль user) пользователя (смотрите рисунок 5). 

Рисунок 5. Запрос логина и пароля при заходе на Windows 10 по админской шаре

Данный пользователь должен быть заведен на компьютере comp2 и иметь на данном компьютере права локального администратора, т.е. учетная запись должна находиться в группе «Администраторы». Пробуем ввести логин user и пароль user и получим сообщение о том что доступ запрещен. Почему так вышло, спросите вы? Ответ я нашел на этих сайтах ссылка 1, ссылка 2. Вкратце расскажу своими словами. Это потому-что Microsoft придумали новую развлекаловку под названием Remote UAC. Для учетных записей входящих в группу локальных администраторов доступ в Windows 10 закрыт и его необходимо открывать через реестр (То есть через реестр мы должны отключить этот Remote UAC). Правда для встроенной учетной записи локального администратора (Администратор) в Windows 10 доступ к админским шарам есть. Данная учетная запись по умолчанию отключена, поэтому ее нужно включить и задать пароль. Чтобы открыть доступ для учетных записей входящих в группу локальных администраторов (например, логин user) необходимо в Windows 10 запустить редактор реестра (редактор реестра запускается с правами администратора). Перейти в раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System (смотрите цифры 1,2 рисунка 6).

Рисунок 6. Отключаем Remote UAC через создания ключа реестра

В этом разделе создать параметр типа DWORD (32-бита) (смотрите цифру 3 рисунка 6) назвать его LocalAccountTokenFilterPolicy и присвоить ему значение 1 (смотрите цифру 4 рисунка 6). После этого необходимо перезагрузить компьютеры comp1 и comp2. Пробуем еще раз на компьютере comp1 ввести в адресной строке проводника ip адрес comp2 (\\192.168.1.3) вместе с админской шарой C$ (\\192.168.1.3\C$). В возникшем окне ввода логина и пароля вбиваем, например логин user, пароль user, видим, что доступ работает и нам открылся в проводнике список папок диска C на Windows 10 (смотрите рисунок 7). 

Рисунок 7. Открытая админская шара диска C$ Windows 10 из Windows XP

воскресенье, 3 марта 2019 г.

Заметки по Google Chrome

1. Если вы работаете в Google Chrome под Windows XP и вам каждый раз надоело наблюдать информационную панель при запуске браузера (Смотрите рисунок 1), что Google Chrome больше не будет обновляться в Windows XP и Windows Vista, по причине того что Microsoft их больше не поддерживает, то отключить данную информационную панель можно добавив в свойства ярлыка, из которого вы запускаете Google Chrome, параметр --disable-infobars (Смотрите рисунок 2).

Рисунок 1. Информационная панель в Windows XP

Рисунок 2. Свойства ярлыка Google Chrome и добавление параметра --disable-infobars 

2. У меня был такой случай что в Yandex Browser, который базируется на браузере Google Chrome, в окне предварительного просмотра печати не запоминал выбранный принтер, а постоянно указывал виртуальный принтер Save as PDF. Для этого случая было использовано решение отключить просмотр печати в Yandex Browser и задействовать окно системной печати Windows в котором по-умолчанию указан мой физический принтер. Задействовать окно системной печати Windows можно добавив в свойства ярлыка, из которого вы запускаете Yandex Browser, параметр --disable-print-preview (Смотрите рисунок 3).

Рисунок 3. Свойства ярлыка Google Chrome и добавление параметра --disable-print-preview

3. Еще одна полезная вещь, которую я обнаружил в Google Chrome это внутренняя страница Google Chrome на которой перечислены url-ы других внутренних страниц Google Chrome. Для открытия этой страницы введите в адресной строке адрес chrome://chrome-urls/. Смотрите рисунок 4.

Рисунок 4. Список URL-ов Google Chrome

понедельник, 11 февраля 2019 г.

Два способа пингануть компьютеры в сети по списку имен

Как-то была необходимость пропинговать компьютеры в сети по сетевым именам по заданному списку. Я нашел два способа в интернете.

1. Первый способ использовать cmd файл, который я нашел на сайте Microsoft. Я его немного модифицировал для себя.  На разделе D:\ необходимо создать папку cmd. В этой папке создать три файла, cmd файл с именем ping2.cmd, текстовый файл с именем computers.txt – в нем мы будем подавать список сетевых имен компьютеров, и текстовый файл с именем pingme.txt – здесь будет вывод результата пинга.

Код cmd файла - ping2.cmd
@echo off

set fnm=D:\cmd\computers.txt
set lnm=D:\cmd\pingme.txt

if exist %fnm% goto Label1

echo.
echo Cannot find %fnm%
echo.
Pause
goto :eof

:Label1
echo PingTest STARTED on %date% at %time% > %lnm%
echo ================================================= >> %lnm%
echo.
for /f %%i in (%fnm%) do call :Sub %%i
echo.
echo ================================================= >> %lnm%
echo PingTest ENDED on %date% at %time% >> %lnm%
echo ... now exiting
goto :eof

:Sub
echo Testing %1
set state=alive
ping -n 1 %1
for /f "delims=[] tokens=2" %%a in ('ping -4 -n 1 %1 ^| findstr [') do (
  set address=%%a
)
if errorlevel 1 set state=dead
if "%state%"=="dead" set address=Computer does not exist
echo %1 [%address%] is %state% >> %lnm%

2. Второй способ использовать программу PingInfoView от NirSoft. Скачать ее можно по этой ссылке.

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

Включение доступа к админским шарам с Windows 7 на Windows XP

Чтобы заработали доступы по админским шарам с Windows 7 на Windows XP, необходимо на Windows XP в локальных групповых политиках в Конфигурации компьютера – Конфигурация Windows – Параметры безопасности – в политике Сетевой доступ: модель совместного доступа и безопасности для локальных учетных записей выставить параметр безопасности с "Гостевая" - локальные пользователи проверяются как гости на "Обычная" - локальные пользователи проверяется по их учетным данным. И тогда после этого должен заработать вход по админским шарам с Windows 7 на Windows XP. Смотрите рисунок 1.

Рисунок 1. Настройка групповой политики

пятница, 11 мая 2018 г.

Включение окна приветствия при загрузке Windows XP

Возможно кому-то потребуется включить или отключить окно при загрузке Windows XP (смотрите рисунок 1). Картинка взята с этого сайта.

Рисунок 1. Окно с сообщением при старте Windows XP

Откройте редактор реестра и отредактируйте следующие разделы реестра:

Windows Registry Editor Version 5.00    
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system]  
"legalnoticecaption"=""  
"legalnoticetext"=""    

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]  
"LegalNoticeCaption"=""  
"LegalNoticeText"=""

Если оставить строковые параметры LegalNoticeCaption и LegalNoticeText пустыми, то окно с сообщением не будет выводится.   

пятница, 23 марта 2018 г.

Памятка. Последние (не точно последние) версии программ которые работают в Windows XP

1. Java RE 7u80
2. Chrome Browser 49.0.2623.112
3. Skype 7.36.0.150
- Чтобы Skype заработал необходимо чтобы на компьютере было установлено обновление WINDOWSXP-KB936929-SP3-X86-RUS и IE8-WindowsXP-x86-RUS
4. Tree Size Free 3.45.343
5. Daemon Tools Lite 4.40.2.0131
6. TeamSpeak 3.0.19.4
7. Microsoft Visual Studio 2010 Express
8. FileZilla 3.5.3
9. Firefox ESR 52.7.3
10. XAMPP 1.8.0
11. VLC Player 2.2.8 (Правильно работает всплывающая панель управления плеера в полноэкранном режиме)
12. LibreOffice 5.4.7.2
13. Gimp 2.8.22
14. WireShark 1.10.14
15. TortoiseHg 3.9.0
16. TeamViewer 13
17. Geany 1.27
18. foobar2000 1.3.17
19. RaidCall 8.2.0

воскресенье, 18 февраля 2018 г.

Microsoft Office Outlook 2010 ошибка Entry Point Not Found после установки kb4011273 или KB4011711 на Windows XP

Microsoft выпустило обновление безопасности kb4011273 которое ломает работу Microsoft Outlook 2010 под Windows XP SP3. При запуске Microsoft Outlook 2010 выдает сообщение об ошибке "Точка входа в процедуре CompareStringOrdinal не найдена в библиотеке DLL KERNEL32.dll.". Смотрите рисунок 1.

Рисунок 1. Ошибка Microsoft Outlook 2010 на Windows XP

После нажатия кнопки "OK" выдает сообщение OLMAPI32.DLL. Чтобы решить эту проблему удалите обновление kb4011273. 

пятница, 9 февраля 2018 г.

Удаленная установка 1С 8.3 в сайлент режиме под управлением Windows 7

0. Сетевое имя удаленного компьютера, например pc01.domain.ru (ip - 192.168.20.100)
1. Скопируйте дистрибутив 1c на удаленный компьютер через админскую шару (например d:\1c)
2. Команда установки 1с в silent режиме: d:\1c\setup.exe /S
3. Скачайте на свой компьютер программу PsExec.exe по ссылке https://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx с сайта Microsoft
4. Распакуйте на своем компьютере скаченный архив, например в директорию d:\cmd
5. Путь до программы PsExec.exe на вашем компьютере следующий: d:\cmd\PsExec.exe
6. Откройте командную строку, перейдите в директорию d:\cmd. Для этого введите команду перехода на другой раздел cd /d d:\cmd
7. Теперь выполните в командной строке следующую команду

PsExec.exe \\pc01.domain.ru -u administrator -p password cmd /c d:\1c\setup.exe /S

или

PsExec.exe \\192.168.20.100 -u administrator -p password cmd /c d:\1c\setup.exe /S

8. Убедитесь что на удаленном компьютере есть локальный администратор administrator с паролем password
9. Убедитесь что удаленный компьютер pc01.domain.ru (192.168.20.100) доступен по сети
10. Ждите завершение введенной команды

11. Заходим по по сети через админскую шару на удаленный компьютер и проверяем версию установленной 1С 8.3   

понедельник, 17 июля 2017 г.

Проблема с временными зонами Windwos XP и Windows 7

Всем уже известно, что поддержка Windows XP прекращена, но у многих еще используются компьютеры с этой операционной системой. Ну, наш балаган не исключение. Проблема следующая, если формировать сообщение "Собрание" в Outlook 2010 с Windows 7 и отправить это сообщение на компьютер с Windows XP в Outlook 2010, то время начала и окончания "Собрание" будет смещено на час. Это связано с тем, что время часовых поясов Windows 7 и Windows XP различаются, даже если у Windows 7 и Windows XP выстовлены один и тот же часовой пояс. Решили проблему следующим способом, экспортировали ветку реестра с временными зонами из Windows 7 и импортировали эти зоны в реестр Windows XP. С это момента временные зоны стали одинаковые Windows 7 и Windosw XP, и время начала и конца собрания в Outlook 2010 стали отображаться одинаково.


Путь в реестре к временных зон на Windows 7:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones

четверг, 9 февраля 2017 г.

Сканирование по сети с задержкой по времени на МФУ HP LaserJet M1214nf под Windows XP, Windows 7, Windows 7 64bit



Недавно столкнулся с проблемой под Windows XP, проявилась также под Windows 7 и Windows 7 64bit, что МФУ HP LJ M1214nf сканирует по сети с задержкой по времени. Т.е. сканировать МФУ начинала спустя полторы минуты с момента нажатия кнопки «Сканирование».  Так же, сама программа для сканирования, которая устанавливается вместе с драйверами, проявляет  зависания на полторы минуты, если зайти в параметры настройки сканирования, там, где меняется разрешение сканера.  IP адрес, маска подсети, шлюз были вбиты в МФУ вручную. Сначала думали на сеть, что она медленно работает, но потом эта версия отпала, когда мы подключили МФУ к другой сетевой розетке,  сканер так же начинал сканировать по сети с задержкой по времени. Хотя печать по сети начиналась сразу же.  Установка последней версии драйверов и последней версии прошивки не решило проблему. Сканирование проводилось при помощи Twain драйвера и при помощи Wia драйвера. Хотя через Wia драйвер сканировалось с меньшей задержкой по времени. Решение проблемы было найдено на форуме OSZone (http://forum.oszone.net/thread-143212.html). Нужно прописать в файл hosts, который расположен по следующему пути: C:\windows\system32\drivers\etc\hosts, правильный hostname МФУ, и используемый МФУ IP адрес, например, так:

192.168.0.51 NPI7DA316

После этой манипуляции МФУ начала сканировать по сети сразу без задержки по времени, как с Twain драйверами, так и с Wia драйверми. Видимо МФУ тратило время на определение своего hostname.

понедельник, 20 июня 2016 г.

AutoCAD 2010 запускается и сразу закрывается

Если AutoCAD 2010 запускается, показывается окно загрузки, показывается главное окно и после это сразу закрывается, то нужно переименовать файл CascadeInfo.cas в файл CascadeInfo.cas.bak и запустить AutoCAD 2010.

Для Windows XP файл расположен:
C:\Documents and Settings\All Users\Application Data\Autodesk\Adlm

Для Windows 7 файл расположен:
C:\ProgramData\Autodesk\Adlm

четверг, 20 декабря 2012 г.

Некоторые проблемы с антивирусом Kaspersky Workstation 6.0.4.1424

В данном посте мне бы хотелось рассказать о проблемах и их решениях связанных с антивирусом Kaspersky Workstation 6.0.4.1424 возникших в результате использования данного антивируса на нескольких компьютерах под управлением операционной системы Windows XP SP3.

  1. Первая проблема проявила себя когда на компьютере пропал интернет, т.е. все страницы в Internet Explorer (версии 7,8) разных версий, в других браузерах (Firefox, Opera), под разными учетными записями, не грузили и не отображали интернет ресурсы, хотя все внешние и внутренние ресурсы пинговались, как по ip-адресу, так и по имени. Сброс настроек IE давал положительный результат, т.е. интернет страницы грузились, но после перезапуска браузера вновь отказывались грузится. Проблема решилась отключением антивируса, а в дальнейшем его переустановкой. Если вы столкнулись с подобной проблемой, первым делом попробуйте отключить антивирус.

  2. Вторая проблема проявила себя когда компьютер полностью загрузившись, т.е. когда вход на рабочий стол под учетной записью пользователя выполнен. Пользователь начинал работать с системой, открывать окна, копировать файлы и т.д. Через несколько минут система выдавала синий экран смерти (BSOD) с кодом ошибки STOP: 0x0000008E в системном файле kl1.sys. Первым делом была найдена информация об ошибке 0x8E, по этой ошибке говорилось о возможной неисправности модулей оперативной памяти, о проблеме с жестким диском, о вирусах. Поковырявшись с памятью, проверив жесткий диск на плохие сектора и ошибок файловой системы от синего экрана так и не избавился. Потом нашел такой же (с одинаковой материнской платой, с одинаковым жестким диском) нормально работающий компьютер, вытащил с него жесткий диск и подключил к нему жесткий диск компьютера с синим экраном. Операционная система загрузилась, но через некоторое время был получен синий экран с тем же кодом ошибки 0x8E в системном файле kl1.sys. Из этого было решено, что проблема не связана с железом компьютера и жесткие диски был возвращены на свои родные места. Далее почитав про системный файл kl1.sys, оказалось файл относится к антивирусу Касперского. Следующим шагом была попытка удалить антивирус с компьютера, но синий экран появлялся в одно и тоже время когда нажималась кнопка удаления антивируса (антивирус удалялся стандартными средствами Windows XP через «Установку и удаления программ» в Панели управления). Далее было решено удалить системный файл kl1.sys, предварительно было найдено место расположения данного файла (C:\Windows\System32\drivers). Компьютер был загружен с LiveDVD и этот файл был благополучно перемещен с жесткого диска. После этих манипуляций операционная система была благополучно загружена, даже антивирус загрузился. Удаление файла kl1.sys дало возможность без синего экрана смерти удалить антивирус с компьютера пользователя. Больше синий экран не появлялся. Тут и сказочки конец. Скажу только одно, возможно, этот файл был установлен вместе с обновлениями к антивирусу, и эти обновления предназначались другой версии антивируса Касперского (7 или 8 версии), но это только предположения. Спишем всё на магию.

понедельник, 20 августа 2012 г.

Подключаем сканер Mustek 1248UB к компьютеру с Windows 7 32 bit


Первым делом необходимо скачать сам драйвер.
Здесь прямая ссылка на драйвер. Ещё две ссылки на сайты с драйверами на сканеры Mustek, где вы возможно сможете найти драйвер на ваше сканирующие устройство Mustek. Ссылка 1 и ссылка 2.

Распакуем его в любое удобное для себя место с помощью программы WinRAR или 7ZIP. У вас должен появится установочный файл Setup.exe. Запускаем этот файл. Ждем окончания установки. Перезагружаем компьютер. После перезагрузки нужно подключить USB кабель к компьютеру. На этом этапе, как написано во всех постах, которые мне пришлось найти в интернете, сканер должен подхватится семеркой и должно наступить счастье. Но я, почему-то, не вошел в число этих счастливчиков. Данный сканер автоматически не подхватил драйвера, которые я установил. Пробуем вручную указать папку куда установщик разместил файлы (C:\Program Files\Mustek 1248UB\Drivers\), но нет, устройство не подхватывается. Если посмотреть на процесс установки, то можно заметить, что установщик записывает что-то в C:\Windows\Temp\. Как мне удалось узнать это две папки WinXP и WinXP 64bit. Пробуем указать, в ручную, папку WinXP в свойствах драйвера устройства. На этот раз сканер подхватился и опознан семеркой.

Установка драйвера вручную:

1. Если кратко, то открываете Диспетчер устройств,
в Windows 7 по поиску в меню пуск, в Windows 8.1/10 нажмите сочетания клавиш Win + X и выбираете "Диспетчер устройств".

2. Находите в списке устройство Сканер Mustek 1248UB с восклицательным знаком или "Неизвестное устройство", жмете по нему правой кнопкой мыши и выбираете "Обновить драйвер..."

3. Нажимаете кнопку "Выполнить поиск драйверов на этом компьютере"

4. Нажимаете кнопку "Выбрать драйвер из списка уже установленных"

5. Указываете расположение файлов с расширением .inf в папку с драйверами сканера Mustek 1248 UB C:/Windows/Temp/WinXP64 для Windows 7/8.1/10 32 bit и C:/Windows/Temp/WinXP для Windows 7/8.1/10 64 bit.

6. Нажимаем кнопку ОК и устанавливаем драйвер вручную.

четверг, 12 июля 2012 г.

Как подружить Canon LBP-1120 и Office 2010?


Данная проблема проявляет себя на операционной системе Windows Xp Sp3 и у обладателей принтеров Canon LBP-1120, LBP-800 (Может и с другими моделями Canon). Скажем у вас дошли руки обновить Office 2003 или Office 2007 на новый Office 2010 (офис) и после обновления вы попытались распечатать, из офиса, на вышеуказанный принтер, документ и получили сообщение о закрытие документа с восстановлением имеющейся информации. Так же печать из Adobe Reader может сопровождаться сообщением о закрытие PDF-файла. Первым же решением может прейти переустановка драйверов принтера на новые драйвера с сайта производителя. Но нет, не помогает. Не буду вас мучить, и скажу, что разработчики Canon о нас подумали, и выпустили файл-заплатку, которая устраняет данную проблемку. Кто страдает данным недугом, на сайт Canon по этой ссылке:
Качаем, ставим, радуемся жизни.
Все идеи взяты с нижеуказанных сайтов.

Проблема с принтером HP DeskJet 1280

Как-то столкнулся с проблемой в принтере HP DeskJet 1280, которая заключалась в том, что принтер отказывался печатать, выдавая пустую страницу из любого приложения, с которого была необходимость вывести документ на печать. Так вот, данная проблема не решалась даже переустановкой на свежую версию драйверов. Все это наблюдалось под управлением Windows XP на разных персональных компьютерах, на которых тестировался принтер. В Интернете наткнулся на ветку форума, в которой обсуждалась данная проблема. Причина по которой принтер ведет себя так, является загрязнившийся датчик определения краев бумаги, он находится на движущейся подложке, где устанавливаются картриджи, справой стороны. Что можно попробовать сделать в этом случае:

- Почистить (протереть) загрязненный датчик.

- Установить драйвера от принтера HP DeskJet 1220. Принтеры схожи между собой, в принтер HP DeskJet 1220 нет датчика определения краев бумаги.

Данные решения взяты http://ddriver.ru/kms_forumd+topic+forum-15+ids-2246.html

Workout v.1.0.0



Workout – это программа выключит ваш компьютер в назначенное время и сообщит об этом за указанные минуты. Операционная система: Windows XP.

Функция GetSystemMetrics

Я не люблю много времени тратить на поиски информации о какой либо функции. Это конечно же может задеть вас как человека в этом плане ответственного, делающего все до победного конца.
По этому я буду разбирать данную функцию методом тыка, т.е. попробовал применить, посмотрел результат.
Первым делом поискать описание данной функции в help файле Delphi 7. Открываем строку поиска, вводим GetSystemMetrics и ожидаем в предвкушение результата. Ну что, есть что нибудь? У меня есть, возможно у вас тоже что-то найдется. Видим что все написано на английском, если у вас на русском, то вы первый обладатель справки по Delphi 7 на русском языке. Попробуем понять и прочесть то, что до нас хотели довести по этой функции составители документации. Ни чего не понятно? Загоним это в Google Translator.

Стало чуть проще. Данная функция получает метрики и конфигурационные настройки системы. Слово метрики не совсем понятно, возможно имеют в виду размеры. Переведем следующую строчку.
Получает ширину и высоту элементов экрана Windows. Все возвращает в пикселях. Так, может на примерах попонятней будет.
int GetSystemMetrics(
  int nIndex // Указываются параметр того, что мы хотим получить
);


syntax highlighted by Code2HTML, v. 0.9.1
Что мы можем из этого заключить? Функция в качестве аргумента передается параметр того что мы хотим получить (Например размеры экрана по x или у, количество кнопок у мыши и т.д.) результатом функция возвратит нам эти значения. Если функция завершится с ошибкой, она вернет ноль.
Так, ну что продолжим изучение на примере.
Предполагается что вы знакомы со средой Delphi 7 и легко сможете разобраться куда писать соответствущий код для достижения нужного нам результата. Попробую расписать подробно, но могу забыть что-нибудь.
Создадим новый VCL проект File -> New -> VCL Forms Applicatio - Delphi for Win32
Сохраним проект под любым удобным для вас именем File -> Save Project As.. И имя тебе будет ex_p1, модуль формы назовем ex_p1_unit.
С именем определились, теперь необходимо решить что выводить на нашу форму. Для на нашего примера вполне достаточно вывести размеры экрана и количество кнопок мыши. Остальные параметры вы можете вывести самостоятельно.
Для это нам потребуется четыре Label, и одна кнопка закрытия окна. Четыре Label мы расположим на одной панели с включенным свойством Align := alClient, кнопку мы расположим на второй панели с включенным Align := alBottom. Это кнопка типа TBitBtn c установленным свойством Kind := bkClose. У нашей формы Form1 меняем одно свойство BorderStyle := bsDialog.
У вас должно получиться что-то в этом духе:

Переходим к реализации кода.
Начнем с обработчика событий OnCreate. В этом обработчике, в основном, и будут производится все страшные манипуляции с функцией GetSystemMetrics.
Заведем три переменных для хранения результата возвращаемого функцией GetSystemMetrics:
  • для количества кнопок мыши (MouseButtonCount)
  • для количества пикселей экрана по x (XScreenResolution)
  • для количества пикселей экрана по y (YScreenResolution)
Параметры которые мы должный передать в GetSystemMetrics следующие:
  • для количества кнопок мыши (SM_CMOUSEBUTTONS)
  • для количества пикселей экрана по x (SM_CXSCREEN)
  • для количества пикселей экрана по y (SM_CYSCREEN)

procedure TForm1.FormCreate(Sender: Tobject);
var
  MouseButtonCount: Integer;
  XScreenResolution: Integer;
  YScreenResolution: Integer;
begin
  MouseButtonCount := GetSystemMetrics( SM_CMOUSEBUTTONS);
  XScreenResolution := GetSystemMetrics(SM_CXSCREEN);
  YScreenResolution := GetSystemMetrics(SM_CYSCREEN);
  Label4.Caption := IntToStr(MouseButtonCount);
  Label2.Caption := IntToStr(XScreenResolution) + ' X ' + IntToStr(YScreenResolution);
end;


syntax highlighted by Code2HTML, v. 0.9.1

На этом примере можно посмотреть и другие параметры.

Shutdown them all v.1.0.2


Shutdown them all v.1.0.2 — это программа, которая загружается вместе с Windows, располагаясь в системном трее, она позволяет иметь быстрый доступ к функциям выключения и перезагрузки вашего компьютера. Протестировано в Windows XP. В данной версии исправлена функциональная недоработка.