Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1

Оптимизироватиь код

15.04.2012, 17:31. Показов 3282. Ответов 52
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
void __fastcall TForm1::WMDeviceChange(TMessage& Message)
{
if (Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000) {
Beep();
int n; //ïðèñâîåíèå ïåðåìåííîé N òèïà integer
char DiskLabel[MAX_PATH];
DWORD dr = GetLogicalDrives(); // ôóíêöèÿ âîçâðàùàåò áèòîâóþ ìàñêó
for(int x = 1; x < 26; x++){ // ïðîõîäèìñÿ öèêëîì ïî áèòàì
n = ((dr>>x)&1); // óçíà¸ì çíà÷åíèå òåêóùåãî áèòà
if(n){ // åñëè åäèíèöà - äèñê ñ íîìåðîì x åñòü
AnsiString dl = AnsiString((char)(65+x))+"://"; // ïîëó÷àåì ëèòåðó äèñêà
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // óáèðàåì ïîêàç îøèáîê
bool ready = DirectoryExists(dl); // ïûòàåìcÿ îòêðûòü êîðíåâóþ äèðåêòîðèþ
{
if (ready)
{
UINT DriveType = GetDriveType((dl).c_str());  // ïîëó÷àåì òèï äèñêà
if(DriveType != DRIVE_CDROM){  // èñêëþ÷àåì CDROMû
if(DriveType != DRIVE_FIXED){  // èñêëþ÷àåì  HDD
if(DriveType != DRIVE_UNKNOWN){
if(DriveType != DRIVE_NO_ROOT_DIR){
GetVolumeInformation(dl.c_str(), DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0);
ComboBox1->Items->Add(String(dl + "//") + " [" + DiskLabel + "]");
// äëÿ îò÷åòà
dt = Now();// ôîðìàò äàòû
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - " + " Ïîäêëþ÷åí íàêîïèòåëü: " "(" + (dl) +")" + " "  + DiskLabel + "" );
{
if (Settings->CheckBox5->Checked== true)
{
Button1->Click();
}
{
if (Settings->CheckBox6->Checked== true)
{
Button5->Click();
}
{
if (Settings->CheckBox7->Checked== true)
{
Button2->Click();
}
{
if (Settings->CheckBox8->Checked== true)
{
Button3->Click();
}
{
if (Settings->CheckBox9->Checked== true)
{
Button4->Click();
}
{
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Помогите оптимизировать код и устранить варинг
C++
1
[C++ Warning] Unit1.cpp(102): W8004 'OldErrorMode' is assigned a value that is never used
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2012, 17:31
Ответы с готовыми решениями:

Очередной код с возможным вирусом. Как думаете этот код опасен?
&lt;?php // no direct access defined('_JEXEC') or die('Restricted access'); ?&gt; &lt;ul class=&quot;sections&lt;?php echo...

Как адаптировать код WMI под код Visual Studio 2010?
Доброе время суток всем. Подскажите пожалуйста для новичка, что бы можно было разобраться, как адаптировать код wmi под код visual studio...

Переделать исходный код. Код в Паскале,а нужно сделать его в Фортране
{$S+,R+} program arab_to_roman; uses crt; var n : word; ch : char; procedure convert(n : word);

52
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.04.2012, 18:54
Студворк — интернет-сервис помощи студентам
Научитесь писать "скобку под скобкой" или "скобку под её оператором"

http://ru.wikipedia.org/wiki/О... мирование)

Добавлено через 3 минуты
C++
1
2
3
4
5
6
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); 
bool ready = DirectoryExists(dl); 
{ // Откуда взялась эта скобка??? К чему она относится ??? 
if (ready)
{
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 19:01  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS);
Буду стараться 7 скобок ещё осталось)

Добавлено через 1 минуту
Avazart,

Не по теме:

а можно вам в личку скинуть код, вы поможете оптимизировать?

0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 19:20
Без скобок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
void __fastcall TForm1::WMDeviceChange(TMessage& Message)
{
  if (Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000) {
    Beep();
    int n; //присвоение переменной N типа integer
    char DiskLabel[MAX_PATH];
    DWORD dr = GetLogicalDrives(); // функция возвращает битовую маску
    for(int x = 1; x < 26; x++) { // проходимся циклом по битам
      n = ((dr>>x)&1); // узнаём значение текущего бита
      if(n) { // если единица - диск с номером x есть
        AnsiString dl = AnsiString((char)(65+x))+"://"; // получаем литеру диска
        WORD OldErrorMode;
        OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // убираем показ ошибок
        bool ready = DirectoryExists(dl); // пытаемcя открыть корневую директорию
        if (ready) {
          UINT DriveType = GetDriveType((dl).c_str());  // получаем тип диска
          if(DriveType != DRIVE_CDROM) { // исключаем CDROMы
            if(DriveType != DRIVE_FIXED) { // исключаем  HDD
              if(DriveType != DRIVE_UNKNOWN) {
                if(DriveType != DRIVE_NO_ROOT_DIR) {
                  GetVolumeInformation(dl.c_str(),
                                       DiskLabel,
                                       MAX_PATH,
                                       NULL,
                                       NULL,
                                       NULL,
                                       NULL,
                                       0);
                  ComboBox1->Items->Add(String(dl+"//")+
                                        " ["+DiskLabel+"]"); // String( - зачем ?
                  dt = Now();// формат даты
                  memo->Lines->Add(DateToStr(dt)+
                                   " "+
                                   TimeToStr(dt)+
                                   " "+
                                   " - "+
                                   " Подключен накопитель: " "("+
                                   (dl)+
                                   ")"+
                                   " "+
                                   DiskLabel+
                                   "" );
                  if (Settings->CheckBox5->Checked== true) {
                    Button1->Click();
                  }
                  if (Settings->CheckBox6->Checked== true) {
                    Button5->Click();
                  }
                  if (Settings->CheckBox7->Checked== true) {
                    Button2->Click();
                  }
                  if (Settings->CheckBox8->Checked== true) {
                    Button3->Click();
                  }
                  if (Settings->CheckBox9->Checked== true) {
                    Button4->Click();
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
1
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 19:30  [ТС]
Вот весь мой главный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "stdio.h"
#include <vcl.h>
#include <shellapi.h>
#include <windows.h>
#include "dstring.h"
#include "mmsystem.h"
#include <dbt.h>
#include <stdlib.h>
#include <Winbase.h>
#include "Registry.hpp"
#pragma package(smart_init)
#pragma link "trayicon"
#pragma resource "*.dfm"
TForm1 *Form1;
bool DeleteDir(AnsiString DirName);
TDateTime dt;
TIniFile* Ini =  new TIniFile(ExtractFilePath(Application->ExeName) + "settings.ini");
TStringList * List = new TStringList;
TStringList * List1 = new TStringList;
TStringList * List2 = new TStringList;
TStringList * List3 = new TStringList;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::WMDeviceChange(TMessage& Message)
{
if (Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000) {
int n; //присвоение переменной N типа integer
char DiskLabel[MAX_PATH];
DWORD dr = GetLogicalDrives(); // функция возвращает битовую маску
for(int x = 1; x < 26; x++){ // проходимся циклом по битам
n = ((dr>>x)&1); // узнаём значение текущего бита
if(n){ // если единица - диск с номером x есть
AnsiString dl = AnsiString((char)(65+x))+"://"; // получаем литеру диска
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // убираем показ ошибок
bool ready = DirectoryExists(dl); // пытаемcя открыть корневую директорию
if (ready)
{
UINT DriveType = GetDriveType((dl).c_str());  // получаем тип диска
if(DriveType != DRIVE_CDROM && // исключаем CDROMы
DriveType != DRIVE_FIXED &&  // исключаем  HDD
DriveType != DRIVE_UNKNOWN &&
DriveType != DRIVE_NO_ROOT_DIR)
{
PlaySoundW(L"alert.wav", 0, SND_ASYNC);
GetVolumeInformation(dl.c_str(), DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0);
ComboBox1->Items->Add(String(dl + "//") + " [" + DiskLabel + "]");
// для отчета
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - " + " Подключен накопитель: " "(" + (dl) +")" + " "  + DiskLabel + "" );
{
if (Settings->CheckBox5->Checked) Button1->Click();
if (Settings->CheckBox6->Checked) Button5->Click();
if (Settings->CheckBox7->Checked) Button2->Click();
if (Settings->CheckBox8->Checked) Button3->Click();
if (Settings->CheckBox9->Checked) Button4->Click();
}}}}}}}
//---------------------------------------------------------------------------
const bool RegisterShortCut(HWND hAppWnd, const TShortCut &sc_hotkey,
const int &iIdentifier) {
USHORT shKey = 0;
TShiftState Shift;
ShortCutToKey(sc_hotkey, shKey, Shift);
UINT iModifiers = 0;
if (Shift.Contains(ssShift)) {
iModifiers += MOD_SHIFT;
}
if (Shift.Contains(ssCtrl)) {
iModifiers += MOD_CONTROL;
}
if (Shift.Contains(ssAlt)) {
iModifiers += MOD_ALT;
}
return RegisterHotKey(hAppWnd, iIdentifier, iModifiers, shKey);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
Application->Terminate();
Close();//Закрытие программы
Application->ShowMainForm = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
TRegistry *reg=new TRegistry();     // присвоение указателя reg классу  TRegistry
reg->RootKey=HKEY_CURRENT_USER;   // открытие корневого каталога реестра HKEY_CURRENT_USER
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",0); // открытие ключа реестра
if(reg->ValueExists("FlashCleaner"))     // если значение FlashCleaner то
Settings->CheckBox1->Checked = True;     // галочка на CheckBox1 нажата
else                                     // иначе
Settings->CheckBox1->Checked = False;     // галочка на CheckBox1 снята
reg->CloseKey();                          // освобождение памяти- закрытие ключа реестра
delete reg;                               // удаление указателя reg
if (Settings->Visible)
{
return;
}
else
Settings->ShowModal();                   // открытие формы Settings
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Application->ShowMainForm = false;
ShowWindow(Handle,SW_HIDE); // Скрываем программу
ShowWindow(Application->Handle,SW_HIDE); // Скрываем кнопку с TaskBar'а}
ComboBox1DropDown(NULL);
ComboBox1->ItemIndex=0;
Edit1->Text = ComboBox1->Text.SubString(1, 4);
Image1->BringToFront();
Image2->BringToFront();
Image3->SendToBack();
Label1->Transparent = true;
//списки
if(!FileExists("log.txt"))
{
 List->Add("                             Утилита Flash Cleaner");
   List->SaveToFile("LOG.txt");
  }
if(!FileExists("spisok.txt"))
  {
    spisok->Memo1->Lines->Text=Trim(spisok->Memo1->Lines->Text);
    List1->Add(spisok->Memo1->Text);
    List1->SaveToFile("spisok.txt");
  }
if(!FileExists("spisok.ini"))
  {
    List2->Add(spisok->Memo2->Text);
    List2->SaveToFile("spisok.ini");
  }
  if(!FileExists("cleaner.bat"))
  {
    List3->Add(AVIR->Memo1->Text);
    List3->SaveToFile("cleaner.bat");
  }
delete List;
delete List1;
delete List2;
delete List3;
memo->Lines->LoadFromFile("LOG.txt");
memo->Perform(WM_VSCROLL, SB_BOTTOM, SB_THUMBTRACK);
// чтение CheckBox
Settings->CheckBox3->Checked = Ini->ReadBool("CheckBoxes", "CheckBox3",
Settings->CheckBox3->Checked);
Settings->CheckBox4->Checked = Ini->ReadBool("CheckBoxes", "CheckBox4",
Settings->CheckBox4->Checked);
Settings->CheckBox5->Checked = Ini->ReadBool("CheckBoxes", "CheckBox5",
Settings->CheckBox5->Checked);
Settings->CheckBox6->Checked = Ini->ReadBool("CheckBoxes", "CheckBox6",
Settings->CheckBox6->Checked);
Settings->CheckBox7->Checked = Ini->ReadBool("CheckBoxes", "CheckBox7",
Settings->CheckBox7->Checked);
Settings->CheckBox8->Checked = Ini->ReadBool("CheckBoxes", "CheckBox8",
Settings->CheckBox8->Checked);
Settings->CheckBox9->Checked = Ini->ReadBool("CheckBoxes", "CheckBox9",
Settings->CheckBox9->Checked);
Face->CheckBox1->Checked = Ini->ReadBool("Face", "Rus",
Face->CheckBox1->Checked);
Face->CheckBox2->Checked = Ini->ReadBool("Face", "Eng",
Face->CheckBox1->Checked);
Face->ComboBox1->ItemIndex=Ini->ReadBool("ComboBox1","ComboBox1",Face->ComboBox1->ItemIndex);
if(!FileExists("spisok.ini"))
  {
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
if (iam->Visible)
{
return;
}
else
iam->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString Path = Edit1->Text;
TSearchRec sear;
TStringList* ExtToDel= new TStringList();
TIniFile* Ini = new TIniFile(ExtractFilePath( Application->ExeName ) +"spisok.ini");
Ini->ReadSection("ext", ExtToDel);
for (int i = ExtToDel ->Count-1; i >= 0; i--)
{
if(FindFirst(Path + ExtToDel->Strings[i], faAnyFile, sear) == 0)
{
do
{
DeleteFile(Path+"\\"+sear.Name);
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Удален ярлык : "+Path+sear.Name+", размер: " +IntToStr(sear.Size)+" байт");
}
while(FindNext(sear) == 0);
}
FindClose(sear);
}
delete ExtToDel;
delete Ini;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
if (spisok->Visible)
{
return;
}
else
spisok->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString DirPath = Edit1->Text, FilePath;
WIN32_FIND_DATA StructFile;
HANDLE hSearch = FindFirstFile( (DirPath + "\\*.*").c_str(), &StructFile);
if(hSearch == INVALID_HANDLE_VALUE) {
}
else{
do{
FilePath = DirPath+ StructFile.cFileName;
if (StructFile.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Сняты атрибуты: "+FilePath);
SetFileAttributes(FilePath.c_str(), StructFile.dwFileAttributes ^ FILE_ATTRIBUTE_HIDDEN);
}
}
while ( FindNextFile(hSearch, &StructFile) );
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
char s[100];
strcpy(s, Edit1->Text.c_str());
AnsiString Path = s, FilePath;
ShellExecute (Handle, "open", s, NULL,NULL, SW_RESTORE);
dt = Now();// формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Открыт диск: "+Path);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
        AnsiString path = "\\\\.\\"+Edit1->Text+"\\autorun.inf";
        AnsiString DirPath = Edit1->Text;
        TStringList* ToDel = new TStringList();
        ToDel->LoadFromFile("Spisok.txt");
        AnsiString ObjectName;
        for (int i = ToDel ->Count-1; i >= 0; i--)
        {       if (!ToDel->Strings[i].IsEmpty())
                ObjectName = DirPath+ToDel->Strings[i];
                if (DirectoryExists)
                {
                  DeleteDir(ObjectName);
                  RemoveDir (ObjectName);
                }else
                (FileExists);
                DeleteFile (ObjectName);
        }
        delete ToDel;
RmDir(path);
}
//---------------------------------------------------------------------------
 
bool DeleteDir(AnsiString DirName)
{
TSearchRec sr;
if (DirName.Length())
 {
if (!FindFirst(DirName+"\\*.*",faAnyFile,sr))
   do
   {
      if (!(sr.Name=="." || sr.Name==".."))
      if (((sr.Attr & faDirectory) == faDirectory ) || (sr.Attr == faDirectory))
      {
         FileSetAttr(DirName+"\\"+sr.Name, faDirectory );
         DeleteDir(DirName+"\\"+sr.Name);
         RemoveDir(DirName + "\\"+sr.Name);
      }
      else
      {
         FileSetAttr(DirName+"\\"+sr.Name, 0);
         DeleteFile(DirName+"\\"+sr.Name);
      }
   }
   while (!FindNext(sr));
   FindClose(sr);
   }
   RemoveDir(DirName);
   return true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click(TObject *Sender)
{
if (iam->Visible)
{
return;
}
else
iam->ShowModal();;// открытие формы Iam
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
memo->Lines->SaveToFile("LOG.txt");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
if (AVIR->Visible)
{
return;
}
else
AVIR->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1DropDown(TObject *Sender)
{
ComboBox1->Items->Clear(); //Очистка строк в ComboBox1
int n; //присвоение переменной N типа int
DWORD dr = GetLogicalDrives(); // функция возвращает битовую маску
for(int x = 1; x < 26; x++){ // проходимся циклом по битам
n = ((dr>>x)&1); // узнаём значение текущего бита
if(n){ // если единица - диск с номером x есть
AnsiString dl = AnsiString((char)(65+x))+":"; // получаем литеру диска
WORD OldErrorMode;
OldErrorMode = SetErrorMode(SEM_FAILCRITICALERRORS); // убираем показ ошибок
bool ready = DirectoryExists(dl); // пытаемcя открыть корневую директорию
if (ready)
{
UINT DriveType = GetDriveType((dl).c_str());  // получаем тип диска
if(DriveType != DRIVE_CDROM && // исключаем CDROMы
DriveType != DRIVE_FIXED &&  // исключаем  HDD
DriveType != DRIVE_UNKNOWN &&
DriveType != DRIVE_NO_ROOT_DIR)
ComboBox1->Items->Add(dl+ "//");  //добовление двух слэшей}
}}}}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Select(TObject *Sender)
{
Edit1->Text = ComboBox1->Text.SubString(1, 4);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::TrayIcon1Restore(TObject *Sender)
{
ShowWindow(Handle,SW_SHOW);
ShowWindow(Application->Handle,SW_SHOW);
Application->ShowMainForm = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if (Settings->CheckBox3->Checked== true)
{
Action=caNone; // Прервать команду закрытия, далее новая команда
Application->ShowMainForm = false;
ShowWindow(Handle,SW_HIDE); // Скрываем программу
ShowWindow(Application->Handle,SW_HIDE); // Скрываем кнопку с TaskBar'а
}
}
void __fastcall TForm1::FormShow(TObject *Sender)
{
Settings->HotKey1->HotKey = Ini->ReadInteger(Settings->HotKey1->Name, "HotKey", Settings->HotKey1->HotKey);
RegisterShortCut(Application->Handle, Settings->HotKey1->HotKey,0x00F );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
if (Msg.message == WM_HOTKEY)
N1Click(NULL);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
ShowWindow(Handle,SW_SHOW);
ShowWindow(Application->Handle,SW_SHOW);
Application->ShowMainForm = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
AnsiString Path = Edit1->Text;
AVIR->Memo1->Lines->SaveToFile(Path +"Cleaner.bat");
dt = Now();// полный формат даты
memo->Lines->Add(DateToStr(dt) +" " + TimeToStr(dt) +" " + " - "+"Установлена защита на диск : "+Path);
AnsiString path = "\\\\.\\"+Edit1->Text+"\\autorun.inf";
MkDir(path);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCanResize(TObject *Sender, int &NewWidth,
      int &NewHeight, bool &Resize)
{
Resize = false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Label1Click(TObject *Sender)
{
if (iam->Visible)
{
return;
}
else
iam->ShowModal();// открытие формы Iam
}
//---------------------------------------------------------------------------
Хотелось бы его сделать компактнее...
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 20:48
Познакомьтесь с Formatter'ом уже, не утомляйте форумчан монотонными текстами.
Вот компактизированный и подправленный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
TForm1 *Form1;
bool DeleteDir( AnsiString DirName );
TDateTime dt;
TIniFile *Ini;
TStringList *List, *List1, *List2, *List3;
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent *Owner )
               : TForm( Owner ) {
    Ini = new TIniFile( ExtractFilePath( Application->ExeName ) + "settings.ini" );
    List = new TStringList;
    List1 = new TStringList;
    List2 = new TStringList;
    List3 = new TStringList;
}
// ---------------------------------------------------------------------------
__fastcall TForm1::~TForm1( ) {
    delete Ini;
    delete List;
    delete List1;
    delete List2;
    delete List3;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::WMDeviceChange( TMessage &Message ) {
    if ( Message.Msg == WM_DEVICECHANGE && Message.WParam == 0x8000 ) {
        char DiskLabel[MAX_PATH];
        WORD OldErrorMode;
        AnsiString dl;
        DWORD dr = GetLogicalDrives( );  // функция возвращает битовую маску
        for ( int x = 1; x < 26; x++ ) { // проходимся циклом по битам
            if ( ( dr >> x ) & 1 ) {     // узнаём значение текущего бита, если единица - диск с номером x есть
                dl = AnsiString( ( char )( 65 + x ) ) + "://"; // получаем литеру диска
                OldErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS ); // убираем показ ошибок
                if ( DirectoryExists( dl ) ) { // пытаемcя открыть корневую директорию
                    UINT DriveType = GetDriveType( dl.c_str( ) ); // получаем тип диска
                    if ( DriveType != DRIVE_CDROM && // исключаем CDROMы
                        DriveType != DRIVE_FIXED && // исключаем  HDD
                        DriveType != DRIVE_UNKNOWN &&
                        DriveType != DRIVE_NO_ROOT_DIR ) {
                        PlaySoundW( L"alert.wav", 0, SND_ASYNC );
                        GetVolumeInformation( dl.c_str( ), DiskLabel, MAX_PATH, NULL, NULL, NULL, NULL, 0 );
                        ComboBox1->Items->Add( String( dl + "//" ) + " [" + DiskLabel + "]" );
                        // для отчета
                        dt = Now( ); // формат даты
                        memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) +
                            " " + " - " + " Подключен накопитель: " "(" + ( dl ) +
                            ")" + " " + DiskLabel + "" );
                        if ( Settings->CheckBox5->Checked ) {
                            Button1->Click( );
                        }
                        if ( Settings->CheckBox6->Checked ) {
                            Button5->Click( );
                        }
                        if ( Settings->CheckBox7->Checked ) {
                            Button2->Click( );
                        }
                        if ( Settings->CheckBox8->Checked ) {
                            Button3->Click( );
                        }
                        if ( Settings->CheckBox9->Checked ) {
                            Button4->Click( );
                        }
 
                    }
                }
            }
        }
    }
}
// ---------------------------------------------------------------------------
const bool RegisterShortCut( HWND hAppWnd, const TShortCut &sc_hotkey,
    const int &iIdentifier ) {
    USHORT shKey = 0;
    TShiftState Shift;
    ShortCutToKey( sc_hotkey, shKey, Shift );
    UINT iModifiers = 0;
    if ( Shift.Contains( ssShift ) ) {
        iModifiers += MOD_SHIFT;
    }
    if ( Shift.Contains( ssCtrl ) ) {
        iModifiers += MOD_CONTROL;
    }
    if ( Shift.Contains( ssAlt ) ) {
        iModifiers += MOD_ALT;
    }
    return RegisterHotKey( hAppWnd, iIdentifier, iModifiers, shKey );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N2Click( TObject *Sender ) {
    Application->Terminate( );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N4Click( TObject *Sender ) {
    TRegistry *reg = new TRegistry( ); // присвоение указателя reg классу  TRegistry
    reg->RootKey = HKEY_CURRENT_USER;  // открытие корневого каталога реестра HKEY_CURRENT_USER
    reg->OpenKey( "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0 ); // открытие ключа реестра
    if ( reg->ValueExists( "FlashCleaner" ) ) { // если значение FlashCleaner то
        Settings->CheckBox1->Checked = True;
    }      // галочка на CheckBox1 нажата
    else { // иначе
        Settings->CheckBox1->Checked = False;
    }                 // галочка на CheckBox1 снята
    reg->CloseKey( ); // освобождение памяти- закрытие ключа реестра
    delete reg;       // удаление указателя reg
    if ( Settings->Visible ) {
        return;
    }
    else {
        Settings->ShowModal( );
    } // открытие формы Settings
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate( TObject *Sender ) {
    Application->ShowMainForm = false;
    ShowWindow( Handle, SW_HIDE );              // Скрываем программу
    ShowWindow( Application->Handle, SW_HIDE ); // Скрываем кнопку с TaskBar'а}
    ComboBox1DropDown( NULL );
    ComboBox1->ItemIndex = 0;
    Edit1->Text = ComboBox1->Text.SubString( 1, 4 );
    Image1->BringToFront( );
    Image2->BringToFront( );
    Image3->SendToBack( );
    Label1->Transparent = true;
    // списки
    if ( !FileExists( "log.txt" ) ) {
        List->Add( "                             Утилита Flash Cleaner" );
        List->SaveToFile( "LOG.txt" );
    }
    if ( !FileExists( "spisok.txt" ) ) {
        spisok->Memo1->Lines->Text = Trim( spisok->Memo1->Lines->Text );
        List1->Add( spisok->Memo1->Text );
        List1->SaveToFile( "spisok.txt" );
    }
    if ( !FileExists( "spisok.ini" ) ) {
        List2->Add( spisok->Memo2->Text );
        List2->SaveToFile( "spisok.ini" );
    }
    if ( !FileExists( "cleaner.bat" ) ) {
        List3->Add( AVIR->Memo1->Text );
        List3->SaveToFile( "cleaner.bat" );
    }
    memo->Lines->LoadFromFile( "LOG.txt" );
    memo->Perform( WM_VSCROLL, SB_BOTTOM, SB_THUMBTRACK );
    // чтение CheckBox
    Settings->CheckBox3->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox3",
        Settings->CheckBox3->Checked );
    Settings->CheckBox4->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox4",
        Settings->CheckBox4->Checked );
    Settings->CheckBox5->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox5",
        Settings->CheckBox5->Checked );
    Settings->CheckBox6->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox6",
        Settings->CheckBox6->Checked );
    Settings->CheckBox7->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox7",
        Settings->CheckBox7->Checked );
    Settings->CheckBox8->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox8",
        Settings->CheckBox8->Checked );
    Settings->CheckBox9->Checked = Ini->ReadBool( "CheckBoxes", "CheckBox9",
        Settings->CheckBox9->Checked );
    Face->CheckBox1->Checked = Ini->ReadBool( "Face", "Rus",
        Face->CheckBox1->Checked );
    Face->CheckBox2->Checked = Ini->ReadBool( "Face", "Eng",
        Face->CheckBox1->Checked );
    Face->ComboBox1->ItemIndex = Ini->ReadBool( "ComboBox1", "ComboBox1", Face->ComboBox1->ItemIndex );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N3Click( TObject *Sender ) {
    if ( iam->Visible ) {
        return;
    }
    else {
        iam->ShowModal( );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click( TObject *Sender ) {
    AnsiString Path = Edit1->Text;
    TSearchRec sear;
    TStringList *ExtToDel = new TStringList( );
    TIniFile *Ini = new TIniFile( ExtractFilePath( Application->ExeName ) + "spisok.ini" );
    Ini->ReadSection( "ext", ExtToDel );
    for ( int i = ExtToDel->Count - 1; i >= 0; i-- ) {
        if ( ! FindFirst( Path + ExtToDel->Strings[i], faAnyFile, sear ) ) {
            do {
                DeleteFile( Path + "\\" + sear.Name );
                dt = Now( ); // формат даты
                memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Удален ярлык : " + Path + sear.Name + ", размер: " + IntToStr( sear.Size ) + " байт" );
            } while ( ! FindNext( sear ) );
        }
        FindClose( sear );
    }
    delete ExtToDel;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N5Click( TObject *Sender ) {
    if ( spisok->Visible ) {
        return;
    }
    else {
        spisok->ShowModal( );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click( TObject *Sender ) {
    AnsiString DirPath = Edit1->Text, FilePath;
    WIN32_FIND_DATA StructFile;
    HANDLE hSearch = FindFirstFile( ( DirPath + "\\*.*" ).c_str( ), &StructFile );
    if ( hSearch != INVALID_HANDLE_VALUE ) {
        do {
            FilePath = DirPath + StructFile.cFileName;
            if ( StructFile.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN ) {
                dt = Now( ); // формат даты
                memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Сняты атрибуты: " + FilePath );
                SetFileAttributes( FilePath.c_str( ), StructFile.dwFileAttributes ^ FILE_ATTRIBUTE_HIDDEN );
            }
        } while ( FindNextFile( hSearch, &StructFile ) );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click( TObject *Sender ) {
    char s[100];
    strcpy( s, Edit1->Text.c_str( ) );
    ShellExecute( Handle, "open", s, NULL, NULL, SW_RESTORE );
    dt = Now( ); // формат даты
    memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Открыт диск: " + String( s ) );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click( TObject *Sender ) {
    AnsiString path = "\\\\.\\" + Edit1->Text + "\\autorun.inf";
    AnsiString DirPath = Edit1->Text;
    TStringList *ToDel = new TStringList( );
    ToDel->LoadFromFile( "Spisok.txt" );
    AnsiString ObjectName;
    for ( int i = ToDel->Count - 1; i >= 0; i-- ) {
        if ( !ToDel->Strings[i].IsEmpty( ) ) {
            ObjectName = DirPath + ToDel->Strings[i];
        }
        if ( DirectoryExists ) {
            DeleteDir( ObjectName );
            RemoveDir( ObjectName );
        }
        else {
            ( FileExists );
        }
        DeleteFile( ObjectName );
    }
    delete ToDel;
    RmDir( path );
}
// ---------------------------------------------------------------------------
bool DeleteDir( AnsiString DirName ) {
    TSearchRec sr;
    if ( DirName.Length( ) ) {
        if ( !FindFirst( DirName + "\\*.*", faAnyFile, sr ) )
            do {
                if ( !( sr.Name == "." || sr.Name == ".." ) )
                    if ( ( ( sr.Attr & faDirectory ) == faDirectory ) || ( sr.Attr == faDirectory ) ) {
                        FileSetAttr( DirName + "\\" + sr.Name, faDirectory );
                        DeleteDir( DirName + "\\" + sr.Name );
                        RemoveDir( DirName + "\\" + sr.Name );
                    }
                    else {
                        FileSetAttr( DirName + "\\" + sr.Name, 0 );
                        DeleteFile( DirName + "\\" + sr.Name );
                    }
            } while ( !FindNext( sr ) );
        FindClose( sr );
    }
    RemoveDir( DirName );
    return true;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Image1Click( TObject *Sender ) {
    if ( iam->Visible ) {
        return;
    }
    else {
        iam->ShowModal( );
    }; // открытие формы Iam
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery( TObject *Sender, bool &CanClose ) {
    memo->Lines->SaveToFile( "LOG.txt" );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N6Click( TObject *Sender ) {
    if ( AVIR->Visible ) {
        return;
    }
    else {
        AVIR->ShowModal( );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1DropDown( TObject *Sender ) {
    ComboBox1->Items->Clear( );      // Очистка строк в ComboBox1
    DWORD dr = GetLogicalDrives( );  // функция возвращает битовую маску
    for ( int x = 1; x < 26; x++ ) { // проходимся циклом по битам
        if ( ( dr >> x ) & 1 ) {     // если единица - диск с номером x есть
            AnsiString dl = AnsiString( ( char )( 65 + x ) ) + ":"; // получаем литеру диска
            WORD OldErrorMode;
            OldErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS ); // убираем показ ошибок
            if ( DirectoryExists( dl ) ) { // пытаемcя открыть корневую директорию
                UINT DriveType = GetDriveType( ( dl ).c_str( ) ); // получаем тип диска
                if ( DriveType != DRIVE_CDROM && // исключаем CDROMы
                    DriveType != DRIVE_FIXED && // исключаем  HDD
                    DriveType != DRIVE_UNKNOWN &&
                    DriveType != DRIVE_NO_ROOT_DIR ) {
                    ComboBox1->Items->Add( dl + "//" );
                } // добовление двух слэшей}
            }
        }
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Select( TObject *Sender ) {
    Edit1->Text = ComboBox1->Text.SubString( 1, 4 );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::TrayIcon1Restore( TObject *Sender ) {
    ShowWindow( Handle, SW_SHOW );
    ShowWindow( Application->Handle, SW_SHOW );
    Application->ShowMainForm = true;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormClose( TObject *Sender, TCloseAction &Action ) {
    if ( Settings->CheckBox3->Checked ) {
        Action = caNone; // Прервать команду закрытия, далее новая команда
        Hide( );
        ShowWindow( Application->Handle, SW_HIDE ); // Скрываем кнопку с TaskBar'а
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormShow( TObject *Sender ) {
    Settings->HotKey1->HotKey = Ini->ReadInteger( Settings->HotKey1->Name, "HotKey", Settings->HotKey1->HotKey );
    RegisterShortCut( Application->Handle, Settings->HotKey1->HotKey, 0x00F );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1Message( tagMSG &Msg, bool &Handled ) {
    if ( Msg.message == WM_HOTKEY ) {
        N1Click( NULL );
    }
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N1Click( TObject *Sender ) {
    Show( );
    ShowWindow( Application->Handle, SW_SHOW );
    Application->ShowMainForm = true;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click( TObject *Sender ) {
    AVIR->Memo1->Lines->SaveToFile( Edit1->Text + "Cleaner.bat" );
    dt = Now( ); // полный формат даты
    memo->Lines->Add( DateToStr( dt ) + " " + TimeToStr( dt ) + " " + " - " + "Установлена защита на диск : " + Edit1->Text );
    MkDir( String( "\\\\.\\" + Edit1->Text + "\\autorun.inf" ) );
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::FormCanResize( TObject *Sender, int &NewWidth,
    int &NewHeight, bool &Resize ) {
    Resize = false;
}
// ---------------------------------------------------------------------------
 
void __fastcall TForm1::Label1Click( TObject *Sender ) {
    if ( iam->Visible ) {
        return;
    }
    else {
        iam->ShowModal( );
    } // открытие формы Iam
}
// ---------------------------------------------------------------------------
Тут у вас явно какие-то очепятки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void __fastcall TForm1::Button3Click( TObject *Sender ) {
    AnsiString path = "\\\\.\\" + Edit1->Text + "\\autorun.inf";
    AnsiString DirPath = Edit1->Text;
    TStringList *ToDel = new TStringList( );
    ToDel->LoadFromFile( "Spisok.txt" );
    AnsiString ObjectName;
    for ( int i = ToDel->Count - 1; i >= 0; i-- ) {
        if ( !ToDel->Strings[i].IsEmpty( ) ) {
            ObjectName = DirPath + ToDel->Strings[i];
        }
        if ( DirectoryExists ) { // <---- ерунда
            DeleteDir( ObjectName );
            RemoveDir( ObjectName );
        }
        else {
            ( FileExists ); // <---- ерунда
        }
        DeleteFile( ObjectName );
    }
    delete ToDel;
    RmDir( path );
}
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 20:52  [ТС]
BRcr, спасибо
В этом коде удаляются папки и файлы со спсика
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 20:54
Чудно

А вот это что за зверь?
C++
1
2
3
        else {
            ( FileExists ); 
        }
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 21:01  [ТС]
C++
1
2
3
4
5
6
7
if ( DirectoryExists ) { // если это папка
            DeleteDir( ObjectName ); //удаляем содежимое папки
            RemoveDir( ObjectName); //удаляем саму папку
        }
        else {   //иначе
            ( FileExists ); //это файл и удаляем файл
        }
А ввот что это
C++
1
2
3
4
5
6
__fastcall TForm1::~TForm1( ) {
    delete Ini;
    delete List;
    delete List1;
    delete List2;
    delete List3;
Builder ругается уж очень

Ну вот что вышло, настройки хранятсяв ini файле, кроме 1 (Запускать с Windows) он в реестре FC.rar
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 22:22
Цитата Сообщение от EdarGp Посмотреть сообщение
А ввот что это
Это деструктор класса формы. Засуньте в его объявление, в секцию public эту строчку:
C++
1
__fastcall ~TForm1( );
Теперь о смешном. Что именно по вашему делает вот эта строчка?
C++
1
( FileExists ); //это файл и удаляем файл
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 22:27
Вам бы только поржать .
FileExists()
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 22:28  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Теперь о смешном. Что именно по вашему делает вот эта строчка?
Функция FileExists проверяет существование файла, функция возвращает True, если данный файл существует. ...
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 22:35
EdarGp, да, но использование:
C++
1
2
3
4
AnsiString filename = "sample.txt";
if (FileExists(filename)) {
  ShowMessage("File Exists");
}
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 22:36
Ну если функция, тогда уж лучше так, наверно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    for ( int i = ToDel->Count - 1; i >= 0; i-- ) {
        if ( !ToDel->Strings[i].IsEmpty( ) ) {
            ObjectName = DirPath + ToDel->Strings[i];
        }
        if ( DirectoryExists( ObjectName ) ) { 
            DeleteDir( ObjectName );
            RemoveDir( ObjectName );
        }
        else if ( FileExists( ObjectName ) ){
             DeleteFile( ObjectName );
        }        
    }
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
15.04.2012, 22:39  [ТС]
C++
1
[Linker Error] Unresolved external '__fastcall TForm1::~TForm1()' referenced from D:\FC\UNIT1.OBJ
Ошибочка при
Цитата Сообщение от BRcr Посмотреть сообщение
Это деструктор класса формы. Засуньте в его объявление, в секцию public эту строчку:Код C++
1 __fastcall ~TForm1( );
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 22:41
BRcr, поскольку директория - тот же файл, можете просто добавить проверку атрибута, и ограничиться одним удалением .
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
15.04.2012, 22:51
Вот так и никаких ошибок:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
public:     // User declarations
    __fastcall TForm1(TComponent* Owner);
    __fastcall ~TForm1();
};
 
__fastcall TForm1::TForm1( TComponent *Owner )
               : TForm( Owner ) {
}
 
__fastcall TForm1::~TForm1( ) {
 
}
Сделайте Project->Clean Project... или поудаляйте объектные файлы(*.obj).

LK, могу.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.04.2012, 23:02
и ограничиться одним удалением .
format c: и ну его программировать!!!
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
15.04.2012, 23:07
тогда уж
C++
1
system(AnsiString("format c").c_str());
0
Почемучка)
 Аватар для Ddv122
1244 / 304 / 30
Регистрация: 23.12.2010
Сообщений: 2,001
Записей в блоге: 1
16.04.2012, 00:21  [ТС]
BRcr, можете ещё этот оптимизировать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include "Unit2.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Registry.hpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
bool DeleteDir(AnsiString DirName);
TSettings *Settings;
TRegistry *reg=new TRegistry(); //Ñîçäàëè îáüåêò êëàññà TRegistry
TIniFile* Ini2 = new TIniFile(ExtractFilePath( Application->ExeName ) +"settings.ini");
 
//---------------------------------------------------------------------------
__fastcall TSettings::TSettings(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox1Click(TObject *Sender)
{
if(CheckBox1->Checked)
{
TRegistry *reg = new TRegistry();
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);
reg->WriteString("FlashCleaner",Application->ExeName);
reg->CloseKey();
}
else
{
TRegistry *reg = new TRegistry();
reg->RootKey=HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",true);
reg->DeleteValue("FlashCleaner");
reg->CloseKey();
}
}
void __fastcall TSettings::CheckBox2Click(TObject *Sender)
{
if(CheckBox2->Checked)
{
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
if (reg)
{
reg->RootKey = HKEY_LOCAL_MACHINE;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\policies\\Explorer\\", true);
reg->WriteInteger("NoDriveTypeAutoRun",0x000000ff);
reg->CloseKey();
}
delete reg;
}
else
{
reg->RootKey = HKEY_CURRENT_USER;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\policies\\Explorer\\", true);
reg->WriteInteger("NoDriveTypeAutoRun",0x000000ff);
reg->CloseKey();
}
}
void __fastcall TSettings::Button1Click(TObject *Sender)
{
Close();        
}
//---------------------------------------------------------------------------
void __fastcall TSettings::HotKey1Change(TObject *Sender)
{
Ini2->WriteInteger(HotKey1->Name, "HotKey", HotKey1->HotKey);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox4Click(TObject *Sender)
{
if (CheckBox4->Checked== true)
{
Form1->TrayIcon1->Visible= false; // Ñêðûâàåì èêîíêó ñ òðåÿ
}
else
Form1->TrayIcon1->Visible= true; // Ñêðûâàåì èêîíêó ñ òðåÿ
Ini2->WriteBool("CheckBoxes", "CheckBox4", CheckBox4->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox3Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox3", CheckBox3->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::Button2Click(TObject *Sender)
{
Form1->memo->Clear(); //Î÷èñòêà ïîëÿ memo
TStringList* LOG = new TStringList();
LOG->SaveToFile("LOG.txt");
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox5Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox5", CheckBox5->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox6Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox6", CheckBox6->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TSettings::CheckBox7Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox7", CheckBox7->Checked);
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::CheckBox8Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox8", CheckBox8->Checked);
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::CheckBox9Click(TObject *Sender)
{
Ini2->WriteBool("CheckBoxes", "CheckBox9", CheckBox9->Checked);
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::Button3Click(TObject *Sender)
{
Face->ShowModal();// îòêðûòèå ôîðìû
}
//---------------.------------------------------------------------------------
 
 
void __fastcall TSettings::FormActivate(TObject *Sender)
{
Image1->BringToFront();
Image2->SendToBack();
Label1->Transparent = true;
Label2->Transparent = true;
}
//---------------------------------------------------------------------------
 
void __fastcall TSettings::Button4Click(TObject *Sender)
 
{
DeleteFile(ExtractFilePath( Application->ExeName )+"settings.ini");
}
 
//---------------------------------------------------------------------------
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
16.04.2012, 02:29
EdarGp, пока не будете хотя бы нормально форматировать код, лично я и палец не подниму, а то ваше поведение уже попахивает наглостью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2012, 02:29
Помогаю со студенческими работами здесь

Слишком длинный типовой код в UserForm VBA. Как сократить код?
Программа выдает ошибку о слишком длинном коде. 1. Есть форма, в форме Multipage с 30 вкладками, на каждой вкладке 20 кнопок. 2. Тексты...

Составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код
составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код

Надо написать код программы (код есть оформить в маткад не могу_
Видео файл меньше весит чем картинка :D Вот этот код If r1=X0 then g4(r1)=... Как его записать чтобы маткад его воспринял ?

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт ошибку. ...

Перевести ассемблерный код TASM в программный код для архитектуры ARM
Необходимо программный код перевести в программный код языка ассемблер для архитектуры ARM, учитывая синтаксис, структуру программы и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru